2017r3 Release Notes

From Xojo Documentation

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

(December 5, 2017)

Xojo 2017 Release 3 has over 170 changes and improvements. This release continues our focus on 64-bit improvements with the major new feature being that the IDE is now 64-bit to give you better performance and memory usage.

Xojo 2017 Release 3 features:

  • 64-bit IDE on Windows, macOS and Linux
  • Support for XojoScript on ARM
  • 64-bit iOS Debugging
  • 64-bit Windows apps can specify supported Windows versions and security level
  • 64-bit apps now work with Reports
  • SQLite updated to 3.20.1
  • WebTextArea.CueText property
  • Security improvements (OpenSSL 1.1.0e)

Download Xojo today.

Release Notes

Bug Fixes (109 cases)

Case Area Description
49461 Build Changes made to Launch Screens now properly appear when you run the iOS app.
49680 Build Building iOS applications now strips “detritus” off of provisioning profiles to avoid code signing errors.
42815 Compiler The Windows IDE can now properly link hundreds of classes when building for 64-bit Windows.
49890 Compiler Fixed a regression that caused failed assertions in the linkers due to invalid imports.
49538 Crashes & Assertions » Crash Fixed a crash with MemoryBlock.ColorValue under 64-bit that could happen when reading from the last 4 bytes of the MemoryBlock.
49887 Crashes & Assertions » Crash Importing an ICNS file no longer causes a crash.
50241 Crashes & Assertions » Failed Assertion Text projects checked on from one VCS on one OS to one using a different line ending can cause lots of blanks lines and subsequent reads of text projects to fail in odd ways.

This case fixes a couple spots where this could occur so reading text projects is less vulnerable to odd check out issues from VCS systems.

49355 Crashes & Assertions » IDE Unhandled Exception Stopping a debug run no longer causes an nil object exception.
49519 Crashes & Assertions » IDE Unhandled Exception Dragging a second instance of a web dialog onto a web page no longer creates a control array initially.
49847 Crashes & Assertions » IDE Unhandled Exception The autosave when running a project in the debugger now uses less memory as the project is directly written to temporary files rather than first stored into memory blocks.
50015 Crashes & Assertions » IDE Unhandled Exception Autocomplete of Runtime exception no longer causes an exception in an IDE script

Note that Runtime exception will NOT autocomplete either (which is by design for now)

48190 Database Plugins MySQLCommunityServer no longer crashes preparing a SQLStatement when the results contains a MediumInt column.
49147 Debugger Debug runs clean up correctly when ended.
8813 Framework » All Tooltips on macOS now hide correctly instead of persisting.
42969 Framework » All JSONItems with Circular References will now raise a JSONException with an error code 14 when serializing instead of a StackOverflowException in the middle of the framework code.
48608 Framework » All Returning True from DragEnter and DragOver now correctly prevents the drop.
48841 Framework » All JSONItem.Lookup now returns string values with the encoding set to UTF8 just as JSONItem.Value does.
49026 Framework » All Exceptions raised in a thread now call the app's UnhandledException event instead of silently ignoring it.
49039 Framework » All Overflow issue in profiler has been corrected.

Incorrect calculation of percentage of run time in exported profile text files is obviously impacted and should be correct now.

49311 Framework » All Collapsing a ListBox row now sets the expanded state correctly before calling user code.
49470 Framework » All RGBSurface.Transform no longer affects alpha channel on Windows and Linux.
49720 Framework » All Fixed a spurious OutOfBoundsException with MemoryBlock.ColorValue on 64-bit when there are fewer than 8 bytes left in the MemoryBlock.
49630 Framework » Linux Picture.CopyColorChannels no longer aborts with an undefined symbol error for Console builds on Linux ARM.
49632 Framework » Linux Xojo.IO.FolderItem no longer crashes on iterating non-existent paths.
50221 Framework » Linux TextField center and right aligned text is now correctly offset.
43004 Framework » Macintosh (Cocoa) ListBox help tags now function on 64-bit macOS.
47605 Framework » Macintosh (Cocoa) Text on reports now draws properly for 64-bit apps.
49310 Framework » Macintosh (Cocoa) Listbox ctrl+click and right-click on a hierarchical widget now behaves consistently when a contextual menu is presented.
49672 Framework » Macintosh (Cocoa) The IDE no longer logs warnings about ignoring key bindings when running on macOS 10.12.
33446 Framework » Web WebTextField.AppendText now works properly when the field already contains text.
39130 Framework » Web WebMoviePlayer URLs are now trimmed before sending them to the browser.
43452 Framework » Web WebPopupmenu now get focus when SetFocus is called.
43881 Framework » Web Web Drag & Drop no longer raises an OutOfBoundsException if one of the origin coordinates couldn't be determined.
45295 Framework » Web WebCanvas no longer throws a JavaScript exception when included on a WebContainer that has been created but not yet embedded and the user zooms the browser view.
45613 Framework » Web Setting WebTimer.Visible no longer causes a javascript error.
46179 Framework » Web Non-Web controls placed on WebContainers no longer cause an IllegalCastException in the web framework.
46965 Framework » Web Non-Web controls placed on WebContainers no longer cause an IllegalCastException in the web framework.
47820 Framework » Web WebControl.HelpTag now correctly handles line endings.
47866 Framework » Web WebTextField.CueText is now correctly escaped.
48987 Framework » Web Setting a WebListbox.CellPicture to Nil no longer raises a NilObjectException.
49719 Framework » Web Session.LanguageCode now has its encoding set to ASCII instead of being Nil.
49881 Framework » Web Calling Session.Quit again disconnects browsers from your app.
19616 Framework » Windows Submenus can now be disabled when there are no child items.
48799 Framework » Windows Drag rectangles no longer look faded out depending on the size of the DragItem rect.
49271 Framework » Windows Assigning an empty string to the Clipboard now removes the Text clipboard format from the Windows clipboard so that other clipboard formats (like pictures) can be treated as the primary source.
49330 Framework » Windows Toolbar icons are now properly resized for the DPI scale.
49332 Framework » Windows Toolbar text captions now automatically adjusts their size when the DPI scale changes.
49415 Framework » Windows Xojo.Net.HTTPSocket requests on Windows that trigger AuthenticationRequired now properly clears the contents before a follow-up request is initiated with the correct authentication.
49767 Framework » Windows A control initiating a popup menu (or potentially other scenarios where a new window is displayed) now properly receives its MouseUp event.
49183 IDE Dragging IDE windows around behaves a lot better even with thousands of controls in a layout. Dragging IDE windows between screens may still see the pinwheel as the entire representation has to be rebuilt to account for resolution switches. Using container controls to limit the number of controls on a single window is still strongly encouraged.
49048 IDE » Auto Complete Extension methods in external modules now also autocomplete.
49353 IDE » Auto Complete Fixed a typo in the Syntax Help description for Variant.ColorValue.
49932 IDE » AutoLayout Property value “Todo” is no longer set on top and bottom constraints.
17052 IDE » Code Editor Altering the Inspector Behavior for classes that have instances on layouts get changes to the Inspector Behavior pushed to subclasses and instances on layouts. Note that this will not overwrite existing instances property values but any changes to Inspector Behavior visibility will be propagated.
46838 IDE » Code Editor Folding a block of code then deleting an empty line above using the “delete key” (not backspace) now works.
48814 IDE » Code Editor Automatic code reformatting takes effect when you click away from a line.
48965 IDE » Code Editor Syntax tip area resizes as gutter width changes for code editor line numbers.
49566 IDE » Code Editor Windows IDE code editor now refreshes properly after each key press.
49712 IDE » Code Editor Typing “declare sub” followed by a return no longer causes an exception when the code cleaner is on.
50108 IDE » Debugger Can debug to either a 32-bit or 64-bit stub.
49718 IDE » Error & Warning Panel Exception when copying from the error report has been fixed.
49272 IDE » FileIO Tab stops don’t come and go when saving a text project in some cases with control sets.
50119 IDE » FileIO Images export as expected and can subsequently be imported as well
49001 IDE » Find & Replace Search results are added to the tab history as you click through them so that back/forward work properly.
49852 IDE » Find & Replace Replacing the array size on an array property declaration no longer also adds a default value.
49387 IDE » Inspector Focus is retained in the property editor that caused the inspector to need to be rebuilt. This fixes a regression in r2 and 2.1
49489 IDE » Inspector When an item is not compatible with anything (all flags disabled) we write out "false" for the compatibility flags instead of a blank string which means "compatible with everything”.
49526 IDE » Inspector Renaming a delegate then collapsing the group row for delegates no longer erroneously results in the group row not being expandable.
49563 IDE » Inspector Switching from 32-bit to 64-bit display settings for structures immediately redisplays the structure with recomputed sizes.
49588 IDE » Inspector If the scope menu gets focus via the keyboard and you press shift-tab the focus now moves backwards.
49614 IDE » Inspector MenuBar selection in Inspector, such as from the App or Window object, no longer includes a useless separator on Windows.
49675 IDE » Inspector Controls that have a font setting panel in the inspector can now have the font size set.

Also see related case 50221.

49686 IDE » Inspector Cue Text and Text properties appear in consistent group for WebTextField, WebTextArea and WebSearchField.
49770 IDE » Inspector You can now clear the iOS Entitlements field (in iOS Advanced Build Settings) if it had a value from previous versions. If it did not have a value, then this field is hidden as you should be using the Entitlement properties instead.
50217 IDE » Inspector The Windows-only setting that include runtime dlls has had its label shortened.
48834 IDE » Layout Editor External web containers no longer get dragged in at the wrong size.
49358 IDE » Layout Editor Using the Browse item the iOS Tab Layout dialog and the SegmentedControl editors for iOS and desktop works now properly loads an Image.
49438 IDE » Layout Editor Containers draw themselves properly when on another view and do not draw “unknown” icons for non-UI controls.
50089 IDE » Layout Editor Canvases with their backdrop property set to an image which is missing individual resolutions now render properly in the Layout Editor.
49753 IDE » Library Checked item in Library group selector is consistent with what group is actually showing.
49755 IDE » Library Group selector on Library no longer remains selected.
49398 IDE » Licensing Upgrade license dialog no longer cuts off the last words.
37469 IDE » Menu Editor If you create a menu item array in the IDE, the indexes of the items are set properly.
48764 IDE » Miscellaneous Closing the debug app tab no longer leaves another tab named the name of the app being debugged.
48798 IDE » Miscellaneous Project Choose window now remembers its position and size. It will position itself fully on a single screen if you drag it to be partially on two different screens.
49043 IDE » Miscellaneous Run Remote is now always enabled, regardless of the build settings.
49105 IDE » Miscellaneous Windows with a background image set now draw correctly in the Layout Editor when resized instead of leaving artifacts.
49264 IDE » Miscellaneous If an event definition with the name of the selected event already exists then you can’t create another.
49323 IDE » Miscellaneous IDE Script Editor updates scrollbars as the windows is resized.
49444 IDE » Miscellaneous Recent items menu has distinct portion of paths showing across ALL entries with files having the same name.
49507 IDE » Miscellaneous Progress dialog shows up on the same screen as the window that created it.
49682 IDE » Miscellaneous Image Sets can’t be made external since the items they contain already are external.
49757 IDE » Miscellaneous Clear field indicator shows up as soon as there is content.
50485 IDE » Miscellaneous Extra blank lines in property definitions are ignored correctly and no longer cause what appears to be project corruption.
49192 IDE » Navigator Fixed a graphical glitch in Filter field.
49193 IDE » Navigator Cancel button again appears when something is entered in the Navigator Filter field.
49738 IDE » Navigator Entering a period as the first or only character in the Navigator filter field no longer causes an exception.
50155 IDE » Rendering Undefined string constants, when used, no longer cause compilation to fail but are used as if they were the literal value (as desktop does).
49260 IDE » Report Editor Report controls honor locks, and save and restore properly.
50068 IDE » Report Editor Fonts on reports are the right size.
49623 IDE » Scripting IDE Script Editor window uses the same kind and size of toolbar as the main window.
13860 IDE » Style Editor Web style editor now fully supports undo and redo.
41065 IDE » Web Page Editor Changes to web check boxes, web list boxes, web text controls and web pop up menus using the layout editor inline editors are done as actions so they can be undone.
49828 Lingua Lingua no longer scrolls back to the top of the list when the list is scrolled down and a row is selected when only non-localized strings are shown.
47382 Remote Debugger Stub 64-bit and ARM Console debuggers are now included.
48869 Remote Debugger Stub Linux Remote Debugger Stub is now built with 2017r2.1.
50122 Remote Debugger Stub Mac and Linux 64-Bit Debugger Stubs save preferences again.
50192 Remote Debugger Stub Unnecessary edit copy sub menu removed.

Changes (27 cases)

Case Area Description
49462 Database Plugins Updated SQLiteDatabase plugin to SQLite 3.20.1.
49625 Debugger Xcode 9 is now supported for building and debugging iOS applications.
40987 Framework » All Framework has been updated to use OpenSSL 1.1.0e.
49678 Framework » All Framework has been updated to use Crypto++ 5.6.5.
50092 Framework » All AutoDiscovery, EasyTCPSocket, EasyUDPSocket events and methods now use Int32 for command parameters for compatibility with 64-bit.
49756 Framework » Web App.HandleURL and App.HandleSpecialURL now have the Connection: close header set.
43702 Framework » Windows Windows 8.1 and Windows 10 are included in the Windows manifest file.
50275 IDE iOS plist entry for UIRequiredDeviceCapabilities specifies arm64.
48951 IDE » AutoLayout Autolayout rule editor has a priority column for easier viewing of rules.
49350 IDE » Build Automation Build Target Script Steps has line number toggle.
50306 IDE » Build Automation When controlling the IDE using the IDECommunicator, the IDE will no longer show a dialog when the SaveFile command is issued if the IDE version is older than the project version.
45050 IDE » Code Editor Code editor highlights matching blocks by drawing their “block matching lines” in blue and slightly fatter than the rest of the block matching lines.
48464 IDE » FileIO The IDE now renames and deletes any obsolete files in text projects.

This will:

- rename the items (folders and files)
- remove all the files
- try and remove all the folders if they have been completely emptied (there are no user added items in the folder, such as ones they added from the Finder)
- otherwise this will leave the renamed folder in place 
- write the items and all subitems in the new location
50291 IDE » Inspector iOS devices are now grouped by iOS version and sorted alphabetically by device name in the Simulator Device menu.
49496 IDE » Language Reference The IDE now creates a unique folder for the temporary files needed for the LR and cleans it up on quit.
49136 IDE » Miscellaneous LSMinimumSystemVersion is written as 3 numeric parts as Apple indicates.
49340 IDE » Miscellaneous IDE logging now prefixes items with [Xojo] instead of [RB].
49840 IDE » Miscellaneous When projects have the same names the recent menu item will contain the part of the path that differ so it’s easier to distinguish which one is which.
48942 IDE » Picture Previewer The first picture added to a new Image Set is also checked for being 72 PPI and consistent PPI horizontally and vertically as the other elements are.
40915 IDE » Structure Editor Projects from older IDEs that do not have a structure alignment attribute set will automatically get one added so they retain their old behavior when the compiler switches to natural alignment by default.
47787 Installer Windows uninstaller now deletes folders created in the user's AppData\Roaming directory.
49168 Installer Plugins, Templates and Scripts folders are now made user writable by the Windows installer.
49829 Lingua Searching for a localization string by constant will now match partial strings.
50198 Miscellaneous Ptr.Class no longer autocompletes as it is a remnant of a feature never released.
48542 Remote Debugger Stub The 32-Bit macOS Desktop Debugger Stub has been removed as our supported macOS targets are now all 64-Bit. You can still debug 32-bit apps using the 64-bit Desktop Debugger Stub.
49991 Remote Debugger Stub Desktop and Console Debugger stubs have been rebuilt with 2017r2.1 resulting in a speed boost.

New Items (5 cases)

Case Area Description
47951 Framework » Web WebTextArea now has a CueText property which displays on all supported browsers except IE9 (because it's not supported).
48641 IDE » Miscellaneous Windows 64-bit desktop apps now display manifest settings in the Windows Build Settings (Advanced tab) for allowed Windows versions and user privileges.

Windows: Set the specific versions of Windows your app supports. All are selected by default. Run As: The default is “Invoker”. You can also set to “Highest Available” or “Administrator” if you app requires additional permissions, such as to access the firewall or install a service.

11187 Lingua Added a Scripting folder so that users can use XojoScript for manipulating translated text. The available context methods are: DefaultText (Read-only) contains the default text for the current constant, TranslatedText (Read/Write) contains the translated text for the current constant, ShowDialog is implemented identically to the IDEScripting version.
41210 XojoScript XojoScript is now available in ARM builds.

Docs and Examples (36 cases)

Case Area Description
42089 Documentation HTMLViewer.UserAgent page now notes that changing the property has no effect on Windows with the WebKit renderer.
44232 Documentation Added PostgreSQLDatabase.AppName property to docs.
47635 Documentation ListBox.ColumnCount page now shows correct maximum of 256.
49716 Documentation Fixed a code error in User Guide UDP topic:
49734 Documentation Clarified sample code on Raise doc page.
50186 Documentation Wiki sidebar Migrating to Xojo Framework link updated.
48948 Documentation » Miscellaneous Improved formatting of User Guide pages. Added Prev/Next links to the bottom of each page. Added table of contents to top of pages in desktop browsers with a link to generate PDF for the page. On mobile browsers, the table of contents is hidden.
49266 Documentation » Miscellaneous The SQLiteBackup example now finds the DB on macOS when it is run before the project is saved.
29699 Documentation » User's Guide Subclassing Controls page in User Guide now describes how property values get set for subclassed controls (
47803 Documentation » User's Guide User Guide Layout Editor page now mentions control parenting that occurs when you drag one control onto another.
48891 Examples Text sent in SimpleChat example project is now properly encoded so it displays correctly when chatting between Windows and Mac.
49195 Examples EmailSSLExample updated to use TLSv1.
49263 Examples Examples/Communication/Internet/YouTube now uses WebKit renderer so that the videos display and play properly.
49285 Examples Examples/Desktop/Controls/ListBox/ListBoxOverOnEvents added to demonstrate ListBox.DragOverRow, DropObjectOnRow events and ShowDropIndicator property.
49294 Examples Examples/Advanced/Declares/WindowOpacity now works for macOS 64-bit and Linux GTK3.
49305 Examples Examples/Desktop/ContainerControls/TabbedWebBrowser now properly closes browser tabs.
49314 Examples Examples/Platform-Specific/Linux/GetDefaultControlSize now works with GTK+ 3 and 64-bit.
49322 Examples Examples/Platform-Specific/Windows/CommandLink updated for HiDPI and 64-bit.
49498 Examples Added Examples/iOS/Declares/TextFieldBorder to show how to remove/change an iOSTextField border.
49520 Examples File->Close now also closes the Window in addition to removing it from the Recent Items (Examples/Desktop/Menus/WindowMenu ).
50383 Examples Fixed typo in FileBrowser example.
46561 Language Reference » Documentation Read-only properties now appear in Italic for all new Dev Center pages.
47971 Language Reference » Documentation Added Len and LenB functions to String page.
48006 Language Reference » Documentation Updated markup for #If…#Endif page so that it gets imported into built-in LR.
48715 Language Reference » Documentation For ListBox.HeadingIndex, removed “obsolete” note since this property is still useful.
48767 Language Reference » Documentation Added DragItem.MacData and MacDataAvailable to the Deprecations page as they’ve been deprecated since 2005r1.
49113 Language Reference » Documentation XojoScript.CompilerError and CompilerWarning pages now link to appropriate Scripting Errors and Scripting Warning pages in Dev Center.
49118 Language Reference » Documentation UnsupportedFormatException page now has correct Name in Class Summary.
49232 Language Reference » Documentation Added back the SSLv23 constant to SSLSocket, SSLSocket.ConnectionType and WebApplication.Security pages.
49239 Language Reference » Documentation Fixed typo on Dev Center Xojo.Core page (essentiall should be essentially).
49256 Language Reference » Documentation Gmail note on SMTPSocket now refers you to SMTPSecureSocket.
49396 Language Reference » Documentation Added “unix time” and “timestamp” to the search index so that they display the Xojo.Core.Date page in search results.
49397 Language Reference » Documentation Added link to docs for FieldType values for GasReport and ListBoxReport examples.
49687 Language Reference » Documentation Fixed typo on PopUpMenu.Change event page.
50145 Language Reference » Documentation The link for FolderItem.MacFSRef is no longer duplicated and works properly.