2018r1 Release Notes

From Xojo Documentation

You are currently browsing the old Xojo documentation site. Please visit the new Xojo documentation site!

(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.

Download Xojo today.

Release Notes

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 & 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'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'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”
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:$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…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: * * * *
25102 Language Reference » Documentation Added several new ListBox pages to the User Guide: * * * *
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
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 ( 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.