2018r3 Release Notes

From Xojo Documentation

(October 23, 2018)

Xojo 2018 Release 3 is now available with over 120 changes and improvements.

Major changes include:

  • macOS Mojave Dark Mode support for the Xojo IDE and your own apps
  • Windows improvements:
    • Now using native Label control for better performance
    • More accurate text rendering
  • Incremental Compilation for 64-bit and ARM enables faster debug builds
  • iOS projects now work with Xcode 10 and iOS 12 Simulator
  • SQLite updated to 3.24.0
  • New Documentation Wiki

Release Notes

Bug Fixes

15507BuildMade it so that nonrelease and stage code are retrieved from bulit-in constants. You can access these as App.NonReleaseVersion and App.StageCode. Note that CFBundleVersion remains unchanged.
53515BuildFixed an issue where iOS projects couldn't be built on macOS 10.14.
53695BuildA constant in Major Version, Minor Version, Bug Version or Non Release Version no longer causes a compilation error when then compiling for any target. Note there are related issues still to solve noted in case 53709 and 53710.
11079Build Pipeline (IDE)Missing external scripts are reported like other missing files.
53197CompilerCurrency operations with Integers are now treated as Currency type.
53286CompilerAddressed an issue where a project with a large number of classes targeting macOS 64-bit could fail with a linker error.
53031Crashes & Assertions » IDE Unhandled ExceptionUndoing a delete no longer raises a NilObjectException.
15632Database PluginsField schema skips deleted columns when returning the field list on PostgreSQL.
37806Database PluginsPostgreSQLDatabase no longer blocks other threads while executing a prepared statement, assuming the MultiThreaded property is set of course.
45928Database PluginsMySQLCommunityServer: TinyInt columns now returns negative values correctly for prepared statements.
53064Database PluginsMySQLCommunityServer: Getting the StringValue from a DatabaseField no longer returns garbage for unsigned smallints.
23056DebuggerSingles display with more precision in the debugger so small differences in magnitude are shown.
52902DebuggerPtr's properly shows as 32 or 64-bit depending on the target.
53325DebuggerDebugging static variables for 64-bit Window targets no longer crashes.
41715Framework » AllPicture.RGBSurface no longer leaks a reference in Console apps.
53126Framework » AllUsing RectControl.DrawInto while a ContainerControl is being constructed now works again.
49221Framework » LinuxPushButton Action event is now correctly raised on multi-touch touchscreens.
51999Framework » LinuxTextField no longer ignores initial font size and style.
52311Framework » LinuxPopupMenu control no longer automatically resizes to fit content.
53121Framework » LinuxControls on an initially hidden Groupbox are no longer incorrectly positioned.
53231Framework » LinuxText color on Labels now honor the initial TextColor property instead of defaulting to the system text color.
53271Framework » LinuxControls on a TabPanel are now offset correctly on open.
53414Framework » LinuxDrawing Ovals, with a fractional width and/or height, now works correctly.
53509Framework » LinuxTextField’s selected text retains the default selection text color as long as the text remains the default black.
36834Framework » Macintosh (Cocoa)Fixed a Mac toolbar crash which could occur when removing an item or changing properties around the time of a mouse click.
42025Framework » Macintosh (Cocoa)On macOS, windows with their FullScreen property set to False can no longer be made full screen by the user.
52409Framework » Macintosh (Cocoa)Listbox header now uses the correct text color.
53241Framework » Macintosh (Cocoa)Worked around a crash where macOS sometimes cannot load the print progress window when the application is run from some SMB shares.
53340Framework » Macintosh (Cocoa)Listbox vertical scrollbar thumb can now extend all the way to the bottom of the Listbox again when the Listbox is embedded within a ContainerControl.
31388Framework » WindowsBevelButton focus ring no longer overlaps the caption.
38198Framework » WindowsNon-transparent ContainerControls now correctly paints their BackColor (if set).
52217Framework » WindowsOptimized Windows UI performance by reducing the use of Direct2D drawing where possible, for example we are now using a native Win32 Label instead of relying on Direct2D.
52917Framework » WindowsEven though an invisible control typically doesn't receive paint events, there are situations that can trigger it but we no longer invoke the Paint event in those situations.
52928Framework » WindowsA Transparent control (like a Canvas) on a GroupBox, no longer flickers when the Transparent control repaints.
52947Framework » WindowsCalling ClearRect on a clipped graphics no longer prevents further drawing.
53179Framework » WindowsPlugin SDK: Draw/FillPolygon graphics functions now correctly respect the REALSetGraphicsOrigin settings on Windows.
53233Framework » WindowsFixed a DrawString miscalculation when printing at > 96 DPI.
53249Framework » WindowsDragging a MessageDialog window from one monitor to another with different scale factors no longer shrinks the dialog size to 0.
53273Framework » WindowsA MoviePlayer on a ContainerControl no longer remains hidden on Windows when it should be visible.
53361Framework » WindowsSome controls were not being clipped properly when DrawInto was used. This affected the Windows IDE in that some controls were overdrawing their bounds (like the Label control).
53485Framework » WindowsListbox.CellBackgroundPaint/CellTextPaint drawing is now offset correctly when DrawInto is used.
53592Framework » WindowsFixed an issue where editing the name of a method would crash the Windows IDE when the method name field lost focus.
53641Framework » WindowsListbox: Overwriting the cell content in CellTextPaint no longer ends up in an infinite invalidation/paint loop.
48804IDEProgress dialogs should be visible again.
52984IDEExternal method declarations no longer handle ByVal incorrectly.
52988IDEFixed a typo in a connect to IDE debugging error message.
53026IDELower panels for find, errors and messages are visible again. The messages pane was changed to a text area to simplify the code, to make Linux, Windows and MacOs code paths the same, and to gain some speed when users use high volumes of DebugLog calls.
53343IDEYou can now use attribute values that are signed numbers.
38465IDE » Auto CompleteCustom menu item properties are shown in autocomplete.
45400IDE » Auto CompleteAutocomplete properly completes parameters that follows the first one with a default value.
53247IDE » Code EditorTick marks and line numbers in the editor gutter are now the same color as the user selected source code color.
53007IDE » DebuggerRemoval of the debug app is using the native file manager API on macOS and so should be much quicker on all volume types.
53013IDE » FileIOImporting an image set saved as text works better, although there are still ways in which there can be issues: 1) the save info is peculiar to the system it is created on - so moving from one machine to another (i.e. Mac to Windows) may result in this not being useful; 2) the fullpath is not cross platform so moving from one machine to another (i.e. mac to windows) may result in this not being useful; 3) the relative path may be different from the project you are importing the item from so it is still possible that image sets may not import the various images that make them up.
52829IDE » Find & ReplaceSearching for a property value that’s in a member of a control array behaves properly when you search then select that instance.
53222IDE » Find & ReplaceSearch and replace of method declarations properly updates the Navigator to avoid exceptions.
53093IDE » Image EditorDropping in a 2x or 3x image when you have missing images won’t reset the base sizes unless the 2x or 3x would be of a different base size.
52887IDE » InspectorSubclasses of PushButtons no long ignore their height as set in the Inspector Behavior.
52945IDE » InspectorThe properties reported as being sometimes misplaced (width, left, top, and height) are in the correct spots in the Inspector.
52948IDE » InspectorReturn values that are arrays - single or multi dimensional - are handled properly.
53236IDE » Language Reference#If and other directives like it work better in the side bar of the LR and when clicked on in various examples in the LR.
52579IDE » Layout EditorControl locking changes get undone / redone and are visible in the locking Inspector.
53196IDE » Layout EditorCaption no longer overlays close button on popovers.
52507IDE » LibraryCustom web controls using the Web SDK scale their assigned icon for the large icon view in the Library.
53190IDE » Menu EditorConverting a menu from being a member of a menu to a top level menu entry shows the right properties.
51835IDE » MiscellaneousWindows IDE: Adding a new tab (when none exists) no longer causes artifacts to appear temporarily. This was mainly seen when running a project as that would add a new tab.
52486IDE » MiscellaneousText selection color is retained as expected.
52589IDE » MiscellaneousReloading an iOS project no longer results in a "saving will lose data" warning when saving.
52647IDE » MiscellaneousLLVM Linking errors now make more sense if more than one is reported at a time.
52700IDE » MiscellaneousTooltip shows the location of all kinds of external items not just classes and modules.
52949IDE » MiscellaneousWindows IDE no longer flickers when switching between tabs.
53341IDE » MiscellaneousImplement Interface window uses the right text color for the selected row.
53554IDE » MiscellaneousActiveX generated code no longer has missing #endif lines.
51892IDE » NavigatorSharpen up the orb for scope backgrounds on selected row in the Navigator when on HiDPI screens.
51944IDE » NavigatorDrag image in Navigator is HiDPI-aware and draws less fuzzy on HiDPI screens.
53246IDE » PreferencesInactive text shows up as expected.
52234IDE » ProfilerProfiling 64-bit Console/Web apps now works.
52597IDE » Report EditorFixed a Report Editor NilObjectException.
53368IDE » ScriptingFileDescription (and many other app settings) can be set from an IDE script. Refer to the list attached to this case or the IDE Scripting docs for PropertyValue.
52637Remote Debugger StubDesktop Remote Debugger Stub correctly deletes the previous app when decompressing a new version again.
79 Bug Fixes


52891Database PluginsSQLite plugin has been updated to 3.24.0.
52448Framework » AllSetting a windows bounds using a rectangle no longer circumvents MinWidth and MinHeight.
52534Framework » AllRemoved Window.Graphics and Canvas.Graphics properties. Use the Paint event for drawing.
52819Framework » Macintosh (Cocoa)On macOS Labels, TextFields and TextAreas are now set to the automatic system colors to get the correct appearance on light and dark modes when text is set to opaque black (0,0,0,255) and backgrounds set to opaque white (255, 255, 255, 255).
52845Framework » Macintosh (Cocoa)On macOS, FillColor, TextColor and FrameColor now map to system colors so custom controls can do the right thing in "dark mode".
53173IDEMessages panel uses the same font and size as the code editor.
45376IDE » AutoLayoutThe IDE tries to make a better guess at which edge to use when you select the relative to item. If you're editing the top constraint then the top of the relative to item will be selected. If you edit the bottom then the bottom will be selected. And so on.
53009IDE » Code EditorCode editor better supports dark mode and retains its functionality when a user loads a specific color theme.
53136IDE » Code EditorClean gremlins also replaces characters like an non-breaking space (Windows = alt+space, macOS = option+space) as gremlins and replace them with the chosen replacement character.
53171IDE » Code EditorWhen you select a method from the method popup if it’s derived from a super class the suitable call to "super" will be inserted much like it currently is for constructors and destructors.
53262IDE » Code EditorIDE font settings take a scale so code measuring text size (height and width) is much more accurate, especially on Windows.
53080IDE » Error & Warning PanelWhen showing warnings and errors after analyzing a project the panel its titled "Warnings & Errors”.
52738IDE » FileIOFor the situation for when you don’t have a license installed (but do have licenses) and hit save you can download licenses and hit save again and the project will save as in the right format and where expected.
53226IDE » FileIOTrying to import a module as external that contains other classes and/or modules will display a dialog saying that this can’t be done and the item will instead be internally added to the project.
5315IDE » MiscellaneousAs you select different colors in the code editor preferences pane the code editors showing are updated so you can see the effect of the color selections right away. Note that they do not change live as you select different colors in the color picker itself - you have to select the color and select OK in the color picker for the change to occur.
15432IDE » MiscellaneousYou can now copy text from Messages panel.
52896IDE » MiscellaneousYou can multiselect several warnings in the bottom Errors panel.
52130MiscellaneousConsole Unhandled exception message now ends with a newline.
18 Changes

New Items

51391CompilerSession-based incremental compilation is now available for LLVM/64-bit targets. This means each Run after the first only recompiles what has changed, leading to faster debug times.
53144CompilerEnabled Xcode 10 signing and iOS 12 simulator support.
52391Framework » Macintosh (Cocoa)Mac Framework now supports macOS 10.14 Mojave Dark Mode.
53015Framework » Macintosh (Cocoa)Added a new AppearanceChanged event which fires when a user switches between Light and Dark mode on macOS Mojave.
52669Framework » WebThe minimum available sockets are now configurable using the command-line option "--minsockets" for standalone web apps.
51337Framework » WindowsUpdated text rendering on Windows to use the GDI-compatible text renderer, which matches the text for Win32 controls for better consistency.
52798Framework » WindowsLabel controls on Windows now use the native Win32 control.
52973Framework » iOSIDE now adds a default plist entry for NSCameraUsageDescription.
53120IDE » Build AutomationIDEs launched with the environment variable XOJO_AUTOMATION set to TRUE will now skip the Feedback Crash dialog and the Restore Previous Project dialog so the build automation process doesn't get paused.
52735IDE » Code EditorThere's a new contextual menu available that will write a single #pragma unused line for each parameter to a method, event or computed property setter.
52912IDE » MiscellaneousAdded SupportsDarkMode desktop project property.
11 New Items

Docs and Examples

1266DocumentationClarified usage of constants for AddressBookData.
53110DocumentationUpdated PostgreSQLDatabase.ReceivedNotification page to indicate the Extra parameter can receive a payload from another system.
53389DocumentationWindow.MenuBarVisible notes now correctly describe behavior when False (OFF).
53593DocumentationAdded missing EndOfLine.OSX property to EndOfLine docs.
52432Documentation » User's GuideSystem.DebugLog pages now note that you can use the Messages panel in the IDE to view the log output.
52366ExamplesSet Windows build to x86-64 in ScriptImaging XojoScript project.
52367ExamplesFixed Label size in Interactive Shell example.
52900ExamplesFixed EELogo path location in Eddie’s Electronics web app.
53529ExamplesFixed Declares in Platform-Specific/Windows/SetWindowIcon example for 64-bit.
53696ExamplesFixed transparency for Examples/Desktop/ContainerControls/ContainerControlExample.
51569Language Reference » DocumentationRemoved extra “Text” in list of types that work with SortWith.
52697Language Reference » DocumentationBitwiseAnd, BitwiseOr and BitwiseXor pages added since they behave differently than the similar methods in Bitwise module.
53644Language Reference » DocumentationTargetMachO shown in docs.
13 Docs and Examples