2018r1

Released on April 17, 2018.

Xojo 2018 Release 1 has over 270 changes and improvements. This release continues our focus on 64-bit improvements with the major focus on Microsoft Windows.

Xojo 2018 Release 1 features:

  • Windows IDEs can now Run and Debug 64-bit Windows applications.

  • Windows framework updates to reduce flicker.

  • iOS builds now use iOS 11 SDK and support iPhone X screens.

  • You can now display server statistics for your Xojo Cloud servers.

  • WebFileUploader has many improvements, including: Drag&Drop, multiple file selection, filtering, upload progress, supports files > 2GB.

Bug fixes (198 cases)

Case

Area

Description

51328

Build

Windows version editor is not clipped off.

38529

Compiler

Fixed a failed assertion that would occur when using currency constants.

42189

Compiler

Fixed a compiler failed assertion that would occur when doing pointer subtraction on a 64-bit target.

47822

Compiler

Currency comparison works correctly under 64-bit.

49306

Compiler

Fixed a failed assertion in SubprocessPOSIX.cpp that could happen if all code generation processes failed to launch.

50288

Compiler

Fixed a failed assertion that would occur when passing Nil when expecting a PString, WString, or WindowPtr.

50665

Compiler

Windows IDE no longer pre-compiles plugins unnecessarily.

50698

Crashes & Assertions : Failed Assertion

Running a project that contains compilable items named with one of Windows reserved file names no longer fails.

49895

Crashes & Assertions : IDE Unhandled Exception

Dragging more than one script file onto the IDE no longer causes an exception.

51126

Crashes & Assertions : IDE Unhandled Exception

If autosave cannot write it no longer causes an exception and will instead warn the user that it has failed.

51440

Crashes & Assertions : IDE Unhandled Exception

Copy paste and delete of web style with background colors no longer causes stack overflow exception.

51472

Crashes & Assertions : IDE Unhandled Exception

Selecting a Using clause and pressing any keys that would edit code (inserting text, deleting etc) no longer causes an exception.

51475

Crashes & Assertions : IDE Unhandled Exception

Moving style with background colors into a folder no longer causes a stack overflow exception.

51668

Crashes & Assertions : IDE Unhandled Exception

A non-privileged user trying to save a script to a location they do not have write access to no longer causes the IDE to generate an exception.

34037

Database Plugins

MSSQLServerDatabase no longer crashes on SQLSelect when the result contains multiple result sets. This can happen with #temp tables in a stored procedure for example.

42544

Database Plugins

SQLiteDatabase now yields to other threads while SQLite is busy performing a long operation. Please see the ThreadYieldInterval property to control how often it yield.

50685

Database Plugins

Importing a SQLite Database (via drag and drop) now connects to the database properly.

51358

Database Plugins

SQLiteDatabase: When compiling a prepared statement fails, we now return the error that SQLite reports, instead of a custom 'unable to prepare' error message.

13276

Debugger

The debuggers listbox viewer has column headings that match the way columns are referred to in listbox methods, like the Cell and CellTag methods, where they are 0-based not 1-based.

15972

Framework : All

With ListBox.DragReorderRows enabled it is now possible to drag and drop at the end of a folder when the Listbox isn't positioned exactly on the left border of the window.

19158

Framework : All

Container controls have a DoubleBuffer property that can be set at design time or runtime to reduce flicker when scrolling. This only takes effect on Windows.

41711

Framework : All

Fixed precision loss when dividing Currency values, also the results are now rounded properly, and will now raise overflow exceptions if the result cannot be represented.

45954

Framework : All

Converting floating point to unsigned integer types now works correctly under 64-bit.

46572

Framework : All

Xojo.Core.TimeZone.SecondsFromGMT: fixed miscalculation of daylight savings time on Windows/Linux.

46836

Framework : All

Waiting on a Mutex, that is eventually released, now properly resumes execution instead of continuing to block the app.

48021

Framework : All

Fixed a failed assertion in RuntimeThread.cpp that could be triggered by a specific sequence of raising exceptions and plugins yielding to other threads.

50650

Framework : All

Drawing to a Graphics object whose backing has been destroyed (for example if the Graphics object came from a Picture and that Picture was destroyed before the Graphics object was) a NilObjectException is now raised instead of crashing.

50669

Framework : All

JSONItem no longer fails to parse JSON strings when the application's language is set to Japanese.

50928

Framework : All

HTMLViewer no longer displays internal properties in the debugger.

51325

Framework : All

Text ToHex/ToOctal/ToBinary now correctly converts negative numbers.

46161

Framework : Linux

RuntimeException.Stack now works correctly on 64-bit programs.

46585

Framework : Linux

Linux IDE: viewing string properties in the debugger no longer crashes.

49369

Framework : Linux

Raspberry Pi font attributes for controls now works consistently.

49401

Framework : Linux

Controls placed on a non-Transparent ContainerControl are properly clipped on Linux.

50280

Framework : Linux

Application.ExecutableFile and GetFolderItem(*) now correctly return the resolved alias path if the app was started from a short-cut.

50613

Framework : Linux

Listbox.AddRow no longer crashes when adding additional columns that contain checkboxes in them.

50936

Framework : Linux

Labels no longer automatically selects all the text when Selectable is enabled.

50945

Framework : Linux

HighlightColor now returns the correct color on CentOS 7.

51091

Framework : Linux

SpecialFolder.Desktop, Documents, Music, Pictures, and Movies now correctly return the localized path.

49586

Framework : Macintosh

Listbox no longer crashes when quitting app while a cell is still in edit mode.

50220

Framework : Macintosh (Cocoa)

PushButton.Push now invokes the user's Action handler even if there's a modal dialog presented in front of the button's window.

50846

Framework : Macintosh (Cocoa)

ToolTip.Show now appears in the correct position on screen and wraps appropriately.

18426

Framework : Web

WebTextField.KeyPressed now fires when the period (.) key is pressed.

19275

Framework : Web

WebMoviePlayer now shows native HTML5 video controls on all supported browsers.

37367

Framework : Web

WebMoviePlayer now uses the native HTML5 video player for all browsers.

38479

Framework : Web

Refactored KeyDown and KeyUp handling so that certain keys that were being omitted will now be correctly fired.

46086

Framework : Web

WebMoviePlayer now uses the built-in HTML5 video player on all browsers.

46929

Framework : Web

WebLabels and WebLinks whose MultiLine property is set to True will now refresh their appearance when visibility is set to True so text changes made while the control was invisible will appear correctly.

49418

Framework : Web

WebMoviePlayer no longer interferes with other controls when placed on a WebContainer.

50127

Framework : Web

Pulling a URL from a WebFile with no attached session no longer warns about there being no session context.

50214

Framework : Web

Windows Standalone Web apps running with an SSL certificate no longer require the certificate to contain the prefix Debug.

50273

Framework : Web

WebFileUploader no longer fails when filenames contain ampersands or apostrophes.

50359

Framework : Web

WebFileUploader no longer fails when the total size of the files > 2GB.

50776

Framework : Web

WebMoviePlayer now honors right and bottom locks.

50809

Framework : Web

WebMapViewer no longer calls into the Google Maps API more than once per browser session.

50810

Framework : Web

WebMapViewer now stores the Latitude and Longitude provided when calling GoToLocation.

50832

Framework : Web

Hid the malformed progress bar which appeared on the web app launch screen when displayed on a Retina/HiDPI screen.

51143

Framework : Web

Web framework 'raw' tags now support more than one set in the same string.

51242

Framework : Web

WebImageViews whose Picture property is defined by an Image object will now transfer the image that best matches the resolution of the current session when behaving as the source of a drag and drop operation.

51525

Framework : Web

Web offline ping URLs have been changed to an absolute URL so they include the script name for CGI apps.

22987

Framework : Windows

FolderItem.Exists now reports correctly for the root level folder of a network share.

30624

Framework : Windows

When scrolling a listbox, the CellBackgroundPaint event is now called for all visible cells.

31791

Framework : Windows

Made it so when an ActiveX control is added all its code is wrapped in #if / #endif to make the code not executed on non-Windows platforms.

43749

Framework : Windows

MSSQLServerDatabase no longer crashes in 64-bit builds when running a SQLSelect statement and closing the subsequent RecordSet.

44999

Framework : Windows

Showing a Modal window now properly deactivates the main window.

46398

Framework : Windows

Labels are no longer redrawn when tabbing through controls.

46520

Framework : Windows

Listbox focus ring now correctly moves to the selected item when set using Listbox.Selected.

46942

Framework : Windows

Windows/Linux: Adjusted the position of the TextField for editable cells in a Listbox so that the TextField better aligns with the text for the default case.

47182

Framework : Windows

Listbox.InvalidateCell no longer invalidates the entire row on Windows.

47503

Framework : Windows

Listbox no longer scrolls badly at fractional DPI scale factors when the DefaultRowHeight is odd.

48186

Framework : Windows

Listbox: painting the cell's background no longer produces pixel cracks between rows at fractional DPI scales.

49643

Framework : Windows

Canvas.Scroll now redraws the childs control properly.

49651

Framework : Windows

Assigning a negative value to Graphics.TextSize no longer raises a failed assertion.

50137

Framework : Windows

Setting BinaryStream.Position to -1 now moves the position to the end of the stream (as documented), instead of throwing an IOException.

50296

Framework : Windows

Showing a Modal Window now properly deactivates its parent window.

50484

Framework : Windows

MouseMove event now only fires if the mouse cursor has actually moved, which matches the behavior on macOS and Linux.

50531

Framework : Windows

Listbox no longer shows a 1px white line when handling CellBackgroundPaint.

50574

Framework : Windows

Val now consistently converts 64-bit hex/binary/octal values as 64-bit integers instead of 32-bit when app is built as 64-bit.

50672

Framework : Windows

Setting the TextSize of a TextArea control no longer resets the TextColor.

50707

Framework : Windows

When running app from command line, an OpenDocument event no longer fires if no parameters were passed.

50813

Framework : Windows

DrawPolygon/FillPolygon now respects the origin offsets (these can be modified by Plugin controls via the REALSetGraphicsOrigin function call).

50842

Framework : Windows

BevelButton: Caption is now aligned properly when an icon is set and the DPI scale factor is greater than 100%.

50847

Framework : Windows

Printing no longer crashes on older Windows operating systems that do not support printing with Direct2D.

51011

Framework : Windows

No longer get a NilObjectException when using the HTMLViewer as it cleans up temporary files on Windows.

51044

Framework : Windows

Deleting a top-level menu on Windows no longer crashes.

51064

Framework : Windows

Graphics: TextUnit.Pixel is no longer incorrectly treated as if its unit were in points at > 100% DPI scale factors.

51072

Framework : Windows

An OpenDialog returning a file from an external device no longer returns Nil.

51117

Framework : Windows

BevelButton menu arrow now respects the DPI scale factor when drawn.

51246

Framework : Windows

Shell command now accepts unicode input.

51281

Framework : Windows

Fixed an issue where a clipped graphics would use the wrong transform matrix.

51371

Framework : Windows

DrawInto no longer crashes when passed a clipped graphics.

51572

Framework : Windows

Fixed a loss of precision issue when converting some mouse coordinates. This fixes an issue where the MouseDrag event no longer fires if the mouse didn't move after MouseDown, this occasionally happened at fractional HiDPI scale factors depending on the mouse location.

51582

Framework : Windows

We now honor the documentation and no longer attempt to hide MenuItems on Windows. Supporting this made the entire menu render text in classic theme mode.

42747

Framework : iOS

An incorrect iOSSQLiteDatabase.SQLSelect statement no longer causes iOS app to crash.

50611

IDE

When closed, Project windows disappear immediately.

50655

IDE

Made it so that the 'choose a project window' (template chooser) is in the window menu so that if you open it, switch to another project, you can get back to the choose project window by selecting it from the window menu (which you can't do easily right now).

50840

IDE

Extraneous separators are no longer part of various contextual menus.

51322

IDE

The IDE should redraw better and have fewer compositing artifacts on OS X 10.9.

6996

IDE : Auto Complete

RuntimeException now autocompletes when defining a variable in a Catch statement.</press>

16645

IDE : Auto Complete

Autocomplete presents the initial grey text completion properly.

36702

IDE : Auto Complete

System.Cursors, as well as other items in the System module, autocomplete as expected.

37446

IDE : Auto Complete

System.log and System.Cursors autocomplete properly.

40039

IDE : Auto Complete

System module autocompletes properly.

45511

IDE : Auto Complete

System.GetNetworkInterface auto completes properly.

45712

IDE : Auto Complete

All the new color constants (black, gray, lightgray, purple, yellow, etc.) autocomplete.

50654

IDE : Auto Complete

Plugins extension methods autocomplete as expected.

50745

IDE : Auto Complete

Autocomplete popup is just the right size.

51542

IDE : Auto Complete

Parameters are always properly located and so show up in autocomplete results when editing the body of a method.

51555

IDE : Auto Complete

Autocomplete following the use of IsA includes interfaces.

50599

IDE : Build Automation

Undoing the removal of a file from a Copy File Step refreshes the list.

51203

IDE : Build Automation

Build Scripts properly report that they are debug builds in scripts run before the Build step.

5431

IDE : Code Editor

Fixed a long standing and hard to track down bug in the code editor where if you have a long method, edited it, then tried to select you would get this weird bouncing behaviour and not be able to select past the current screen full of code

23130

IDE : Code Editor

Proper summary for color members shows.

26366

IDE : Code Editor

Double clicking methods, menu handlers, constants or other 'header rows' no longer opens a tab that does not then move to have that group as the root item.

26884

IDE : Code Editor

Syntax Help at the bottom of the Code Editor updates as you move the insertion point with the keyboard.

30177

IDE : Code Editor

Classes cannot be given illegal names using search and replace.

31508

IDE : Code Editor

IDE Script editor unsaved changes indicator is now cleared after saving.

36875

IDE : Code Editor

With autocomplete, the Declare word can now be used either at the beginning of a declare or following Soft. Note that this, like the other verbs that can only be used in a declare, does not mean that it suggests things in the correct syntactic order just that it will now suggest it after typing'soft”.

50244

IDE : Code Editor

The debugger highlight now scrolls properly left/right as you scroll the editor horizontally.

50279

IDE : Code Editor

Selecting a block by clicking on the code folding lines works properly when line numbers are shown.

50543

IDE : Code Editor

Right clicking on #if, #else, #elseif, #end and #pragma now go to the right language reference page.

50549

IDE : Code Editor

Shift-returns now scrolls back to the left margin so you can see what was just inserted.

50653

IDE : Code Editor

Autocompletion of an element of an array presents the right autocompletion options.

50988

IDE : Code Editor

Block matching lines are drawn continuously and not anti-aliased so there are no gaps.

51004

IDE : Code Editor

Shift-return completes blocks in a context sensitive manner.

51026

IDE : Code Editor

Pasted text is not handled immediately but when the insertion point moves, or would move in the case of a multiline paste. This way pasting into a quoted string or comment no longer has the standardize format applied to it incorrectly.

51202

IDE : Code Editor

Summary of things improved in the code editor: made changes to how code items cache their set of local vars to improve speed, better caching and updating of using clauses, makes it so lines that start with 'catch' and 'exception' are considered as declaring local variables which they weren't before, sped up class name lookup.

51208

IDE : Code Editor

Caret no longer shows through the line number gutter on Windows.

51266

IDE : Code Editor

Fixed a typo in the help area below the code editor when reporting compile errors and warnings.

51359

IDE : Code Editor

Other keyboard navigation keys cause the code cleaner to execute properly.

51372

IDE : Code Editor

Code lines that are automatically updated with Standardize Format are now always saved properly.

51458

IDE : Code Editor

Windows IDE: For non-ligature fonts in the code editor, the text no longer shifts when selecting text.

51470

IDE : Code Editor

Auto and Variant highlight in the keyword color like other intrinsic data types do.

51580

IDE : Code Editor

Text now indents and aligns as expected especially when using a fixed width font. Proportional fonts are always going to be problematic just by their very nature.

50638

IDE : Constant Editor

Dynamic label no longer shows when creating a color constant as it's not really needed.

50627

IDE : Debugger

Running console apps on Linux when the project has spaces in the name works again.

51314

IDE : Debugger

Viewing text properties and variables no longer has the tabs placed so far left they are clipped off.

51511

IDE : FileIO

Projects that use the initial value with backslash characters in them would erroneously set this value to increasingly long text values.

50511

IDE : Find &amp; Replace

The enum editor no longer reloads several times when you open it.

49785

IDE : Icon Editor

Fixed a bug when building apps for macOS so that they now include the correct 2x versions of the 16, 32, 128 and 256 pixel icons.

45783

IDE : Inspector

Changes to Shared Build settings: - 'Long Version' is renamed as 'Copyright' in the Shared build settings - 'Short Version' is renamed 'Version' in the Shared build settings - 'Package Info' is renamed 'Description' in the Shared build settings and add new accessors for GUI and Console apps so - App.Version gives back the short version (ShortVersion still works) - App.Copyright gives back the long Version (LongVersion still works) - App.Description gives back packageInfo (PackageInfo still works) IDE Scripts can set and get these values as well. Note that this does not alter old behavior on each OS. For instance, PackageInfo never returned any value on macOS, so Description doesn't either.

49902

IDE : Inspector

Can use a constant once again to set a boolean property.

50341

IDE : Inspector

Inspector uses “Behavior” spelling for headers rather than “Behaviour”.

50667

IDE : Inspector

Lines draw in the IDE as expected.

50951

IDE : Inspector

Fixed up the handling of names changes in menu items so that the first time there is a duplicate name both the existing item and newly renamed item both get index values (as neither would have had one). The next time there is a new item renamed to an already existing name it gets the 'next' index (one larger than the highest one used so far). And these fixes mean that simply renaming an item will not get an index of 0 assigned.

50964

IDE : Inspector

You can assign a private sibling as the super of a public sibling inside a module.

50984

IDE : Inspector

Ellipsis are no longer stripped from the default value of a property.

51027

IDE : Inspector

If you have hidden the Inspector and during a debug run click the “edit code” pencil on the toolbar the inspector is not forced to be visible.

51285

IDE : Inspector

Compat flags set on an external item, like a module, are properly retained.

51316

IDE : Inspector

Inspector sections are in expected order.

51432

IDE : Inspector

New web controls properly show their initial style as “None” .

50601

IDE : Menu Editor

Dragging tool items in a web toolbar no longer causes the IDE to crash on Windows.

51465

IDE : Menu Editor

Dragging a menu off the menu bar no longer leaves it off the menu bar. It will pop back up to its correct horizontal position in the overall menu bar as it should.

11492

IDE : Miscellaneous

inspector behaviour does not sort when writing to text projects.

49796

IDE : Miscellaneous

User set menu shortcuts can be in these locations: * Application Data > Xojo > Xojo <version> > Overrides > Keyboard shortcuts (for ONE user for ONE specific version) * Documents > Xojo > Overrides > Keyboard shortcuts (for ONE user for all versions that support this functionality) * SharedDocuments > Xojo > Overrides > Keyboard shortcuts (for all users for all versions that support this functionality) This override of shortcuts will be located and used in the order listed above. More specific settings override more general ones. </version>

49916

IDE : Miscellaneous

APFS volumes now correctly retain tags (and other meta data like extended attributes, ACLs, custom icons, and some other low level metadata) since we've moved to a newer API for atomically swapping files.

49950

IDE : Miscellaneous

When the IDE creates a tar.gz file to send to a remote stub the tar.gz file is cleaned up properly.

49973

IDE : Miscellaneous

Plugin compiling dialog always appear in front of IDE window.

49979

IDE : Miscellaneous

Extract Superclass dialog minimum dimensions have been fixed.

50373

IDE : Miscellaneous

“Return” is properly cased in the Getter when creating a computed property from a regular one.

50463

IDE : Miscellaneous

Closing the preferences window doesn't show minimized windows.

50617

IDE : Miscellaneous

The Super Class browser is no longer case sensitive.

50722

IDE : Miscellaneous

Warnings about deprecated / removed connection types for SSLSockets and its subclasses show in all project types.

50741

IDE : Miscellaneous

Project Chooser window opens centered on a brand new install.

50913

IDE : Miscellaneous

Window menu check mark is next to front most window as expected. This may be a project window, script window, or the new project window.

50926

IDE : Miscellaneous

If the active tab is one from an item in the spill over tab menu that item in the spill over menu will have a check mark next to it.

50937

IDE : Miscellaneous

Extract Method dialog on Linux resizes controls appropriately and resizes the dialog accordingly to fit these resized controls.

51148

IDE : Miscellaneous

In the Window menu, the correct item now has the checkmark.

32801

IDE : Navigator

Selection rectangle no longer moves down and away from the actual item selected when you resize the source list.

37502

IDE : Navigator

Duplicated items no longer show up at the top of the list but are placed after the item being duplicated.

44363

IDE : Navigator

The dark grey line over the Navigator is properly disabled.

50227

IDE : Navigator

Changing Navigator preferences now updates the appearance as soon as possible.

50228

IDE : Navigator

Changing Navigator preferences now updates the appearance as soon as possible.

50556

IDE : Navigator

Computed properties no longer sometimes incorrectly show “default values” as a field in the Inspector.

50636

IDE : Navigator

Made it so if you have a tab that is locked to a folder containing classes you can edit any of the contained classes without the IDE switching tabs.

50910

IDE : Navigator

Removing an event handler from a control array really does remove it.

50990

IDE : Navigator

You can now Undo a delete/cut of a module or folder that contains project items.

51243

IDE : Navigator

Adding a build step to a build target by right clicking on the target when it is not the selected row works as expected. The build step is added to the row right clicked.

51486

IDE : Navigator

Using copy paste to duplicate constants no longer ends up with constants with duplicated names.

50462

IDE : Plugins

Fixed odd typo in spelling of “Encoding”.

51093

IDE : Plugins

A change in the case of the title of a window will update the layout editor properly.

49841

IDE : Preferences

Capitalization on labels on preferences panes updated to be more consistent across panes.

50230

IDE : Preferences

All open palettes close when you switch from palettes to ones embedded in the window.

50499

IDE : Preferences

Remote Debug Hosts in preferences no longer has IP address column truncated for longer addresses.

50151

IDE : Rendering

Web controls and layouts that use the new color or boolean constants render out properly.

50450

IDE : Report Editor

Error about non-UTF-8 name when subclassing report controls no longer occurs.

50330

IDE : Scripting

No longer get an exception when opening an IDE script while an IDE script window is already open.

50782

IDE : Scripting

IDE Script shortcuts work properly on Windows and Linux.

51298

IDE : Scripting

Access to constants down paths more than one level deep work as expected. You can read and write the default value for constants.

51302

IDE : Scripting

Access to properties down paths more than one level deep work as expected. You can read and write the default value for properties.

51382

IDE : Scripting

NewMethod no longer creates methods with wrong name and scope when supplied proper parameters.

51621

IDE : Scripting

IDEScripting's CloseProject closes the right project.

20968

IDE : Window Editor

Inspector appears as expected every time.

49813

Plugin SDK

Linux plugins that use GTK text controls no longer crashes when key is pressed.

51816

Plugin SDK

Updated header to fix an undefined behavior warning/error.

50713

Remote Debugger Stub

Remote Debugging a console app to Linux now properly launches the app again.

51424

Remote Debugger Stub

A 64-bit stub can correctly receive either a 32 or 64-bit app from the IDE. 32-bit stubs only receive 32-bit versions. Previously, since 64-bit debugging was not possible on Windows, only 32-bit versions would ever be sent to remotes regardless of whether the remote was running on a 32 or 64-bit version of Windows.

Changes (35 cases)

Case

Area

Description

49549

Compiler

The compiler now uses LLVM 6 internally.

51034

Database Plugins

Updated SQLIteDatabase plugin to 3.21.0.

51522

Database Plugins

SQLite has been updated to 3.22.0.

45159

Debugger

The IDE can now debug 64-bit Windows applications.

34575

Framework > All

JSONItem.Value now accepts String, Number and Boolean arrays.

49771

Framework > All

EraseBackground property no longer shows in inspector for Canvas and ContainerControls.

51677

Framework > Linux

32-bit x86 Linux builds no longer depend on libunwind.

15654

Framework > Web

WebListbox now honors Up and Down keys to allow users to navigate with the keyboard.

32009

Framework > Web

The type of WebUploadedFile.Size has been changed from Double to UInt64.

50125

Framework > Web

When launching a standalone web app from the command line the app will now write an error and quit if the specified SSL certificate does not exist or is not readable.

50328

Framework > Web

Support for Internet Explorer 9 has been removed from the web framework.

50395

Framework > Web

All browsers that support EventSource server events now use it instead of long polling.

50467

Framework > Web

Web applications will now show an error and quit if the network interface specified on the command line is greater than the number of available interfaces.

50474

Framework > Web

Internet Explorer 9 support has been removed.

50524

Framework > Web

HandleURL and HandleSpecialURL now have their Date headers set by default.

50774

Framework > Web

WebMoviePlayer no longer uses the Flash player to play videos in browsers that do not support HTML5 video.

49860

Framework > Windows

Updated to support per monitor awareness v2 that was introduced in the Creators Update. This fixes many of the Win32 control issues on a per-monitor setup, but even on a single monitor setup where the user would switch DPIs without logging out. Some highlights: - All menus create in Per Monitor v2 contexts will be scaling on a per-monitor fashion - Win32 dialogs now automatically respond to DPI changes - Various Win32 controls have improved DPI scaling behavior in Per Monitor v2 contexts - Theme handles opened in the context of a Per Monitor v2 window will operate in terms of the DPI associated with that window

50351

Framework > iOS

iOSLabel now defaults to black.

36745

IDE > Code Editor

Read only projects display the this project is read only dialog when trying to edit code on a read only project.

51484

IDE > Code Editor

New installs on Windows will default to using Consolas instead of System for the coding font.

12659

IDE > Constant Editor

macOS now uses a sheet window for the multiline editor for individual constant instance values. Windows and Linux use a modal dialog that restores its position.

49417

IDE > Debugger

Both the IP address and name of the remote are now shown when transferring to a remote debugger stub.

50178

IDE > Icon Editor

Updated ICNS support. This also removes some restrictions so that ICNS files can be partially imported on Windows and Linux where the elements use PNG and JPEG2000.

49903

IDE > Inspector

Can use a constant once again to set a boolean property.

11617

IDE > Miscellaneous

Open Existing File and Recent Items are in the Windows tray item menu.

49751

IDE > Miscellaneous

Old projects load with controls transparent (unless it was set otherwise). Newly added controls will default to not being transparent.

50443

IDE > Miscellaneous

Updated autosave to not do another save if the project has not changed since the last time it was autosaved.

50709

IDE > Miscellaneous

N/A

50425

IDE > Navigator

External non-Xojo items will always open in the default external editor (using FolderItem.Launch).

50835

IDE > Navigator

Control rows in the Navigator that are plugins will use the correct icons.

51589

IDE > Preferences

Drag and drop of a theme file to preferences pane now works, but only on macOS at the moment. Related Case #51629.

51630

IDE > Preferences

An error in how the IDE was writing filetype sets made this not work as expected on Windows. That has been corrected in another case.

51773

Plugin SDK

Added an example to the Plugins SDK to demonstrate how to host WPF controls in Xojo.

51312

Remote Debugger Stub

Desktop Remote Debugger&#39;s default computer name is now set using the hostname.

New items (29 cases)

Case

Area

Description

31055

Framework > All

SQLiteDatabase now has support for AES-256 encryption.

49565

Framework > All

Added Transparent property to RectControl. This property is mainly useful on Windows to avoid additional overhead if you know your layout does not require Transparency.

50090

Framework > All

Enabling DoubleBuffer on a ContainerControl now composites the control on Windows, allowing for moving/scrolling controls to appear less flickery.

50120

Framework > Linux

Updates to support Wayland backend, and others besides X11. As with any backends (in combination with differing versions of GTK+), mileage may vary in what works and what doesn&#39;t. Currently the major differences noticeable in the Wayland backend are: - Cannot restrict to a maximum size of a resizable window - Getting the Window left/top will return 0, conversely setting the Left/Top will not move the window

14484

Framework > Web

Added UploadProgress event to WebFileUploader.

15374

Framework > Web

WebFileUploader now supports drag and drop.

15375

Framework > Web

Added boolean MultiSelect property to WebFileUploader to allow users to select more than one file at a time.

18541

Framework > Web

WebMoviePlayer now has a separate Stop command. Instead of having to use the Play command to toggle the playing state.

19753

Framework > Web

Added CancelUpload method to WebFileUploader.

22287

Framework > Web

WebMoviePlayer now has Played, Stopped, VolumeChanged, PositionChanged and DurationChanged events.

29983

Framework > Web

WebMoviePlayer now has a separate Stop method instead of having to use the Play command to toggle the playing state.

32040

Framework > Web

Added Filter property to WebFileUploader to allow filtering on specific Mime Types.

41401

Framework > Web

Added a Filter property to the WebFileUploader for specifying accepted mime types.

51101

Framework > Web

WebFileUploader now has an UploadTimeout property.

13468

Framework > Windows

All UI controls now have the possibility to be Transparent, see the new RectControl.Transparent property.

47001

Framework > Windows

Reduced flicker on Windows by moving to a Psuedo-Transparency model (much like MS WinForms does). Please avoid partially overlapped controls with this new model.

51213

IDE

Creating a new project when running the IDE on macOS will default to setting the macOS Build Architecture to 64-bit.

51578

IDE > Build Automation

The list of constants available in a build script is now the following: CurrentBuildLocation - string, CurrentBuildLocationNative - string, CurrentBuildTarget - integer, CurrentBuildAppName - string, CurrentBuildTargetIs32Bit - boolean, CurrentBuildTargetIs64Bit - boolean, CurrentBuildTargetIsIntel - boolean, CurrentBuildTargetIsARM - boolean, CurrentBuildTargetIsWindows - boolean, CurrentBuildTargetIsMacOS - boolean, CurrentBuildTargetIsLinux - boolean, CurrentBuildTargetIsXojoCloud - boolean, CurrentBuildTargetIsDesktop - boolean, CurrentBuildTargetIsConsole - boolean, CurrentBuildTargetIsWeb - boolean, CurrentBuildTargetIsIOS - boolean, PreBuild - boolean, DebugBuild - boolean

27328

IDE > Code Editor

Find in selection works once again.

51682

IDE > Code Editor

Made it so users can, as part of a Xojo color theme, override the system selected text highlight color and inactive text color.

51173

IDE > FileIO

For Text projects a warning is given if the manifest is missing critical information or has been edited in a way that its malformed in a way it can't be opened properly.

51238

IDE > Layout Editor

Internal plugin controls properly inherit their properties from their supers meaning that things like Transparent is now generally available on RectControl subclasses

51290

IDE > Miscellaneous

If you try to run a 32 bit app on a 64 bit linux distro that does not have required 32 bit libs the IDE detects this and tells you why the debug run failed to start.

51299

IDE > Miscellaneous

New projects default to being 64 bit for Linux.

50652

IDE > Navigator

Made it so that when you click on an item contained by another (such as a code item like a method, constant, property, etc contained by a class, layout, etc.) one of the contextual men items is to open the container in a new tab. This is particularly handy when you've applied a filter and want top open the item in a new editor.

51447

IDE > Scripting

Export of localizable values is scriptable using IDE scripting syntax like this:

If ExportLocalizableValues(english, /Users/username/Desktop/untitled folder/english.xojo_locale) Then

Print *success”

Else

Print *fail”

End If

The names of the languages are as presented in the popup menus in the IDE for exporting. The path to the destination is a native path and so is necessarily platform specific. The destination file will be created or overwritten if it already exists. This can fail if the path to the destination does not exist or the language is not in the list of known languages the IDE supports.

51622

IDE > Scripting

CloseProject now has two forms: CloseProject with no parameters behaves just as always and will prompt for saving if the project has changed. CloseProject(true) also behaves this way. CloseProject(False) closes all windows that the project has open but does not prompt to save any changes.

40124

IDE > Xojo Cloud > Statistics

Xojo Cloud Statistics are now available in the IDE.

Docs and examples (34 cases)

Case

Area

Description

40065

Documentation

Improved Operator_Convert notes and sample code: http://developer.xojo.com/operator-overloading$Operator_Convert

50735

Documentation

Updated comment and formatting for String.LTrim sample code.

50784

Documentation

Updated ComboBox docs to indicate the height on Windows is controlled by the font size.

50829

Documentation

Updated TextArea.Styled and StyledText properties to better note that Windows/Mac are always styled.

51013

Documentation

Fixed sample code usage of RandomInt on While&hellip;Wend page.

51295

Documentation

Added clarification to pages for Window.SetFocus and ClearFocus.

51334

Documentation

System Requirements now note that OS X 10.9 is deprecated.

51375

Documentation

Updated Serial doc pages to note that you have to call Reset/Open after changing properties in order for them to take effect.

51454

Documentation

Equals doc page now has a related link to StrComp.

51466

Documentation

Fixed typo on TargetConsole entry.

50760

Documentation > Miscellaneous

Updated iOS device and App Store deployment docs for Xcode 9.

50607

Examples

Reporting examples now properly find the database when run before saving the project.

51031

Examples

Added missing localization string for SearchLabel to Eddie's Electronics desktop project.

12357

Language Reference > Documentation

Added several new ListBox pages to the User Guide: * http://developer.xojo.com/userguide/list-box-usage * http://developer.xojo.com/userguide/listbox-drag-and-drop * http://developer.xojo.com/userguide/list-box-hierarchical * http://developer.xojo.com/userguide/listbox-sourcelist

25102

Language Reference > Documentation

Added several new ListBox pages to the User Guide: * http://developer.xojo.com/userguide/list-box-usage * http://developer.xojo.com/userguide/listbox-drag-and-drop * http://developer.xojo.com/userguide/list-box-hierarchical * http://developer.xojo.com/userguide/listbox-sourcelist

49619

Language Reference > Documentation

Changed parameter on Writeable page to “text As String” to match what the IDE creates for you when you add the interface to a class.

50161

Language Reference > Documentation

Removed duplicate line of code in RecordSet page example. Changed Dev Center page name to http://developer.xojo.com/recordset.

50179

Language Reference > Documentation

OpenDialog.MultiSelect property no longer shows unnecessary platform limitations.

50267

Language Reference > Documentation

IOException page now shows correct Xojo.IO.IOException name in the class summary.

50506

Language Reference > Documentation

Classic TextInputStream sample code now has “t.Close” in a more useful place.

50544

Language Reference > Documentation

On Conditional Compilation page Syntax section, #Else now appears after #ElseIf.

50546

Language Reference > Documentation

Compiler Constants page (http://developer.xojo.com/compiler-constants) now groups things by type to make them easier to find.

50547

Language Reference > Documentation

Fixed typo on Variant page.

50609

Language Reference > Documentation

ReDim docs now use Redim to match IDE standardize format syntax.

50898

Language Reference > Documentation

Fixed a typo in an example on the Redim page.

51015

Language Reference > Documentation

StringShape.Text page now indicates you can display multiple lines.

51268

Language Reference > Documentation

Added missing WebListBox.DataSource property and pages for DataSource and DataCell to Dev Center.

51407

Language Reference > Documentation

Split page updated to remove out-of-date bug note.

51469

Language Reference > Documentation

DragOverRow, and many others, no longer have duplicate entries.

51477

Language Reference > Documentation

If operator link works as expected.

51518

Language Reference > Documentation

Removed duplicate SelLength and SelStart properties on TextArea page.

51594

Language Reference > Documentation

Thread.DebugIdentifier is now documented.

51745

Language Reference > Documentation

Updated delegate page to point to Dev Center as intended.