2018r3 Release Notes

From Xojo Documentation

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

(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 (79 cases)

Case Area Description
15507 Build Made 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.
53515 Build Fixed an issue where iOS projects couldn't be built on macOS 10.14.
53695 Build A 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.
11079 Build Pipeline (IDE) Missing external scripts are reported like other missing files.
53197 Compiler Currency operations with Integers are now treated as Currency type.
53286 Compiler Addressed an issue where a project with a large number of classes targeting macOS 64-bit could fail with a linker error.
53031 Crashes & Assertions » IDE Unhandled Exception Undoing a delete no longer raises a NilObjectException.
15632 Database Plugins Field schema skips deleted columns when returning the field list on PostgreSQL.
37806 Database Plugins PostgreSQLDatabase no longer blocks other threads while executing a prepared statement, assuming the MultiThreaded property is set of course.
45928 Database Plugins MySQLCommunityServer: TinyInt columns now returns negative values correctly for prepared statements.
53064 Database Plugins MySQLCommunityServer: Getting the StringValue from a DatabaseField no longer returns garbage for unsigned smallints.
23056 Debugger Singles display with more precision in the debugger so small differences in magnitude are shown.
52902 Debugger Ptr's properly shows as 32 or 64-bit depending on the target.
53325 Debugger Debugging static variables for 64-bit Window targets no longer crashes.
41715 Framework » All Picture.RGBSurface no longer leaks a reference in Console apps.
53126 Framework » All Using RectControl.DrawInto while a ContainerControl is being constructed now works again.
49221 Framework » Linux PushButton Action event is now correctly raised on multi-touch touchscreens.
51999 Framework » Linux TextField no longer ignores initial font size and style.
52311 Framework » Linux PopupMenu control no longer automatically resizes to fit content.
53121 Framework » Linux Controls on an initially hidden Groupbox are no longer incorrectly positioned.
53231 Framework » Linux Text color on Labels now honor the initial TextColor property instead of defaulting to the system text color.
53271 Framework » Linux Controls on a TabPanel are now offset correctly on open.
53414 Framework » Linux Drawing Ovals, with a fractional width and/or height, now works correctly.
53509 Framework » Linux TextField’s selected text retains the default selection text color as long as the text remains the default black.
36834 Framework » Macintosh (Cocoa) Fixed a Mac toolbar crash which could occur when removing an item or changing properties around the time of a mouse click.
42025 Framework » Macintosh (Cocoa) On macOS, windows with their FullScreen property set to False can no longer be made full screen by the user.
52409 Framework » Macintosh (Cocoa) Listbox header now uses the correct text color.
53241 Framework » Macintosh (Cocoa) Worked around a crash where macOS sometimes cannot load the print progress window when the application is run from some SMB shares.
53340 Framework » 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.
31388 Framework » Windows BevelButton focus ring no longer overlaps the caption.
38198 Framework » Windows Non-transparent ContainerControls now correctly paints their BackColor (if set).
52217 Framework » Windows Optimized 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.
52917 Framework » Windows Even 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.
52928 Framework » Windows A Transparent control (like a Canvas) on a GroupBox, no longer flickers when the Transparent control repaints.
52947 Framework » Windows Calling ClearRect on a clipped graphics no longer prevents further drawing.
53179 Framework » Windows Plugin SDK: Draw/FillPolygon graphics functions now correctly respect the REALSetGraphicsOrigin settings on Windows.
53233 Framework » Windows Fixed a DrawString miscalculation when printing at > 96 DPI.
53249 Framework » Windows Dragging a MessageDialog window from one monitor to another with different scale factors no longer shrinks the dialog size to 0.
53273 Framework » Windows A MoviePlayer on a ContainerControl no longer remains hidden on Windows when it should be visible.
53361 Framework » Windows Some 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).
53485 Framework » Windows Listbox.CellBackgroundPaint/CellTextPaint drawing is now offset correctly when DrawInto is used.
53592 Framework » Windows Fixed an issue where editing the name of a method would crash the Windows IDE when the method name field lost focus.
53641 Framework » Windows Listbox: Overwriting the cell content in CellTextPaint no longer ends up in an infinite invalidation/paint loop.
48804 IDE Progress dialogs should be visible again.
52984 IDE External method declarations no longer handle ByVal incorrectly.
52988 IDE Fixed a typo in a connect to IDE debugging error message.
53026 IDE Lower 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.
53343 IDE You can now use attribute values that are signed numbers.
38465 IDE » Auto Complete Custom menu item properties are shown in autocomplete.
45400 IDE » Auto Complete Autocomplete properly completes parameters that follows the first one with a default value.
53247 IDE » Code Editor Tick marks and line numbers in the editor gutter are now the same color as the user selected source code color.
53007 IDE » Debugger Removal of the debug app is using the native file manager API on macOS and so should be much quicker on all volume types.
53013 IDE » FileIO Importing 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.
52829 IDE » Find & Replace Searching for a property value that’s in a member of a control array behaves properly when you search then select that instance.
53222 IDE » Find & Replace Search and replace of method declarations properly updates the Navigator to avoid exceptions.
53093 IDE » Image Editor Dropping 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.
52887 IDE » Inspector Subclasses of PushButtons no long ignore their height as set in the Inspector Behavior.
52945 IDE » Inspector The properties reported as being sometimes misplaced (width, left, top, and height) are in the correct spots in the Inspector.
52948 IDE » Inspector Return values that are arrays - single or multi dimensional - are handled properly.
53236 IDE » 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.
52579 IDE » Layout Editor Control locking changes get undone / redone and are visible in the locking Inspector.
53196 IDE » Layout Editor Caption no longer overlays close button on popovers.
52507 IDE » Library Custom web controls using the Web SDK scale their assigned icon for the large icon view in the Library.
53190 IDE » Menu Editor Converting a menu from being a member of a menu to a top level menu entry shows the right properties.
51835 IDE » Miscellaneous Windows 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.
52486 IDE » Miscellaneous Text selection color is retained as expected.
52589 IDE » Miscellaneous Reloading an iOS project no longer results in a "saving will lose data" warning when saving.
52647 IDE » Miscellaneous LLVM Linking errors now make more sense if more than one is reported at a time.
52700 IDE » Miscellaneous Tooltip shows the location of all kinds of external items not just classes and modules.
52949 IDE » Miscellaneous Windows IDE no longer flickers when switching between tabs.
53341 IDE » Miscellaneous Implement Interface window uses the right text color for the selected row.
53554 IDE » Miscellaneous ActiveX generated code no longer has missing #endif lines.
51892 IDE » Navigator Sharpen up the orb for scope backgrounds on selected row in the Navigator when on HiDPI screens.
51944 IDE » Navigator Drag image in Navigator is HiDPI-aware and draws less fuzzy on HiDPI screens.
53246 IDE » Preferences Inactive text shows up as expected.
52234 IDE » Profiler Profiling 64-bit Console/Web apps now works.
52597 IDE » Report Editor Fixed a Report Editor NilObjectException.
53368 IDE » Scripting FileDescription (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.
52637 Remote Debugger Stub Desktop Remote Debugger Stub correctly deletes the previous app when decompressing a new version again.

Changes (18 cases)

Case Area Description
52891 Database Plugins SQLite plugin has been updated to 3.24.0.
52448 Framework » All Setting a windows bounds using a rectangle no longer circumvents MinWidth and MinHeight.
52534 Framework » All Removed Window.Graphics and Canvas.Graphics properties. Use the Paint event for drawing.
52819 Framework » 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).
52845 Framework » Macintosh (Cocoa) On macOS, FillColor, TextColor and FrameColor now map to system colors so custom controls can do the right thing in "dark mode".
53173 IDE Messages panel uses the same font and size as the code editor.
45376 IDE » AutoLayout The 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.
53009 IDE » Code Editor Code editor better supports dark mode and retains its functionality when a user loads a specific color theme.
53136 IDE » Code Editor Clean 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.
53171 IDE » Code Editor When 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.
53262 IDE » Code Editor IDE font settings take a scale so code measuring text size (height and width) is much more accurate, especially on Windows.
53080 IDE » Error & Warning Panel When showing warnings and errors after analyzing a project the panel its titled "Warnings & Errors”.
52738 IDE » FileIO For 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.
53226 IDE » FileIO Trying 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.
5315 IDE » Miscellaneous As 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.
15432 IDE » Miscellaneous You can now copy text from Messages panel.
52896 IDE » Miscellaneous You can multiselect several warnings in the bottom Errors panel.
52130 Miscellaneous Console Unhandled exception message now ends with a newline.

New Items (11 cases)

Case Area Description
51391 Compiler Session-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.
53144 Compiler Enabled Xcode 10 signing and iOS 12 simulator support.
52391 Framework » Macintosh (Cocoa) Mac Framework now supports macOS 10.14 Mojave Dark Mode.
53015 Framework » Macintosh (Cocoa) Added a new AppearanceChanged event which fires when a user switches between Light and Dark mode on macOS Mojave.
52669 Framework » Web The minimum available sockets are now configurable using the command-line option "--minsockets" for standalone web apps.
51337 Framework » Windows Updated text rendering on Windows to use the GDI-compatible text renderer, which matches the text for Win32 controls for better consistency.
52798 Framework » Windows Label controls on Windows now use the native Win32 control.
52973 Framework » iOS IDE now adds a default plist entry for NSCameraUsageDescription.
53120 IDE » Build Automation IDEs 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.
52735 IDE » Code Editor There'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.
52912 IDE » Miscellaneous Added SupportsDarkMode desktop project property.

Docs and Examples (13 cases)

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