2017r3 Release Notes

From Xojo Documentation

(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

49461BuildChanges made to Launch Screens now properly appear when you run the iOS app.
49680BuildBuilding iOS applications now strips “detritus” off of provisioning profiles to avoid code signing errors.
42815CompilerThe Windows IDE can now properly link hundreds of classes when building for 64-bit Windows.
49890CompilerFixed a regression that caused failed assertions in the linkers due to invalid imports.
49538Crashes & Assertions » CrashFixed a crash with MemoryBlock.ColorValue under 64-bit that could happen when reading from the last 4 bytes of the MemoryBlock.
49887Crashes & Assertions » CrashImporting an ICNS file no longer causes a crash.
50241Crashes & Assertions » Failed AssertionText 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.
49355Crashes & Assertions » IDE Unhandled ExceptionStopping a debug run no longer causes an nil object exception.
49519Crashes & Assertions » IDE Unhandled ExceptionDragging a second instance of a web dialog onto a web page no longer creates a control array initially.
49847Crashes & Assertions » IDE Unhandled ExceptionThe 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.
50015Crashes & Assertions » IDE Unhandled ExceptionAutocomplete 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)
48190Database PluginsMySQLCommunityServer no longer crashes preparing a SQLStatement when the results contains a MediumInt column.
49147DebuggerDebug runs clean up correctly when ended.
8813Framework » AllTooltips on macOS now hide correctly instead of persisting.
42969Framework » AllJSONItems 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.
48608Framework » AllReturning True from DragEnter and DragOver now correctly prevents the drop.
48841Framework » AllJSONItem.Lookup now returns string values with the encoding set to UTF8 just as JSONItem.Value does.
49026Framework » AllExceptions raised in a thread now call the app's UnhandledException event instead of silently ignoring it.
49039Framework » AllOverflow 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.
49311Framework » AllCollapsing a ListBox row now sets the expanded state correctly before calling user code.
49470Framework » AllRGBSurface.Transform no longer affects alpha channel on Windows and Linux.
49720Framework » AllFixed a spurious OutOfBoundsException with MemoryBlock.ColorValue on 64-bit when there are fewer than 8 bytes left in the MemoryBlock.
49630Framework » LinuxPicture.CopyColorChannels no longer aborts with an undefined symbol error for Console builds on Linux ARM.
49632Framework » LinuxXojo.IO.FolderItem no longer crashes on iterating non-existent paths.
50221Framework » LinuxTextField center and right aligned text is now correctly offset.
43004Framework » Macintosh (Cocoa)ListBox help tags now function on 64-bit macOS.
47605Framework » Macintosh (Cocoa)Text on reports now draws properly for 64-bit apps.
49310Framework » Macintosh (Cocoa)Listbox ctrl+click and right-click on a hierarchical widget now behaves consistently when a contextual menu is presented.
49672Framework » Macintosh (Cocoa)The IDE no longer logs warnings about ignoring key bindings when running on macOS 10.12.
33446Framework » WebWebTextField.AppendText now works properly when the field already contains text.
39130Framework » WebWebMoviePlayer URLs are now trimmed before sending them to the browser.
43452Framework » WebWebPopupmenu now get focus when SetFocus is called.
43881Framework » WebWeb Drag & Drop no longer raises an OutOfBoundsException if one of the origin coordinates couldn't be determined.
45295Framework » WebWebCanvas 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.
45613Framework » WebSetting WebTimer.Visible no longer causes a javascript error.
46179Framework » WebNon-Web controls placed on WebContainers no longer cause an IllegalCastException in the web framework.
46965Framework » WebNon-Web controls placed on WebContainers no longer cause an IllegalCastException in the web framework.
47820Framework » WebWebControl.HelpTag now correctly handles line endings.
47866Framework » WebWebTextField.CueText is now correctly escaped.
48987Framework » WebSetting a WebListbox.CellPicture to Nil no longer raises a NilObjectException.
49719Framework » WebSession.LanguageCode now has its encoding set to ASCII instead of being Nil.
49881Framework » WebCalling Session.Quit again disconnects browsers from your app.
19616Framework » WindowsSubmenus can now be disabled when there are no child items.
48799Framework » WindowsDrag rectangles no longer look faded out depending on the size of the DragItem rect.
49271Framework » WindowsAssigning 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.
49330Framework » WindowsToolbar icons are now properly resized for the DPI scale.
49332Framework » WindowsToolbar text captions now automatically adjusts their size when the DPI scale changes.
49415Framework » WindowsXojo.Net.HTTPSocket requests on Windows that trigger AuthenticationRequired now properly clears the contents before a follow-up request is initiated with the correct authentication.
49767Framework » WindowsA control initiating a popup menu (or potentially other scenarios where a new window is displayed) now properly receives its MouseUp event.
49183IDEDragging 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.
49048IDE » Auto CompleteExtension methods in external modules now also autocomplete.
49353IDE » Auto CompleteFixed a typo in the Syntax Help description for Variant.ColorValue.
49932IDE » AutoLayoutProperty value “Todo” is no longer set on top and bottom constraints.
17052IDE » Code EditorAltering 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.
46838IDE » Code EditorFolding a block of code then deleting an empty line above using the “delete key” (not backspace) now works.
48814IDE » Code EditorAutomatic code reformatting takes effect when you click away from a line.
48965IDE » Code EditorSyntax tip area resizes as gutter width changes for code editor line numbers.
49566IDE » Code EditorWindows IDE code editor now refreshes properly after each key press.
49712IDE » Code EditorTyping “declare sub” followed by a return no longer causes an exception when the code cleaner is on.
50108IDE » DebuggerCan debug to either a 32-bit or 64-bit stub.
49718IDE » Error & Warning PanelException when copying from the error report has been fixed.
49272IDE » FileIOTab stops don’t come and go when saving a text project in some cases with control sets.
50119IDE » FileIOImages export as expected and can subsequently be imported as well
49001IDE » Find & ReplaceSearch results are added to the tab history as you click through them so that back/forward work properly.
49852IDE » Find & ReplaceReplacing the array size on an array property declaration no longer also adds a default value.
49387IDE » InspectorFocus is retained in the property editor that caused the inspector to need to be rebuilt. This fixes a regression in r2 and 2.1
49489IDE » InspectorWhen 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”.
49526IDE » InspectorRenaming a delegate then collapsing the group row for delegates no longer erroneously results in the group row not being expandable.
49563IDE » InspectorSwitching from 32-bit to 64-bit display settings for structures immediately redisplays the structure with recomputed sizes.
49588IDE » InspectorIf the scope menu gets focus via the keyboard and you press shift-tab the focus now moves backwards.
49614IDE » InspectorMenuBar selection in Inspector, such as from the App or Window object, no longer includes a useless separator on Windows.
49675IDE » InspectorControls that have a font setting panel in the inspector can now have the font size set. Also see related case 50221.
49686IDE » InspectorCue Text and Text properties appear in consistent group for WebTextField, WebTextArea and WebSearchField.
49770IDE » InspectorYou 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.
50217IDE » InspectorThe Windows-only setting that include runtime dlls has had its label shortened.
48834IDE » Layout EditorExternal web containers no longer get dragged in at the wrong size.
49358IDE » Layout EditorUsing the Browse item the iOS Tab Layout dialog and the SegmentedControl editors for iOS and desktop works now properly loads an Image.
49438IDE » Layout EditorContainers draw themselves properly when on another view and do not draw “unknown” icons for non-UI controls.
50089IDE » Layout EditorCanvases with their backdrop property set to an image which is missing individual resolutions now render properly in the Layout Editor.
49753IDE » LibraryChecked item in Library group selector is consistent with what group is actually showing.
49755IDE » LibraryGroup selector on Library no longer remains selected.
49398IDE » LicensingUpgrade license dialog no longer cuts off the last words.
37469IDE » Menu EditorIf you create a menu item array in the IDE, the indexes of the items are set properly.
48764IDE » MiscellaneousClosing the debug app tab no longer leaves another tab named the name of the app being debugged.
48798IDE » MiscellaneousProject 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.
49043IDE » MiscellaneousRun Remote is now always enabled, regardless of the build settings.
49105IDE » MiscellaneousWindows with a background image set now draw correctly in the Layout Editor when resized instead of leaving artifacts.
49264IDE » MiscellaneousIf an event definition with the name of the selected event already exists then you can’t create another.
49323IDE » MiscellaneousIDE Script Editor updates scrollbars as the windows is resized.
49444IDE » MiscellaneousRecent items menu has distinct portion of paths showing across ALL entries with files having the same name.
49507IDE » MiscellaneousProgress dialog shows up on the same screen as the window that created it.
49682IDE » MiscellaneousImage Sets can’t be made external since the items they contain already are external.
49757IDE » MiscellaneousClear field indicator shows up as soon as there is content.
50485IDE » MiscellaneousExtra blank lines in property definitions are ignored correctly and no longer cause what appears to be project corruption.
49192IDE » NavigatorFixed a graphical glitch in Filter field.
49193IDE » NavigatorCancel button again appears when something is entered in the Navigator Filter field.
49738IDE » NavigatorEntering a period as the first or only character in the Navigator filter field no longer causes an exception.
50155IDE » RenderingUndefined string constants, when used, no longer cause compilation to fail but are used as if they were the literal value (as desktop does).
49260IDE » Report EditorReport controls honor locks, and save and restore properly.
50068IDE » Report EditorFonts on reports are the right size.
49623IDE » ScriptingIDE Script Editor window uses the same kind and size of toolbar as the main window.
13860IDE » Style EditorWeb style editor now fully supports undo and redo.
41065IDE » Web Page EditorChanges 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.
49828LinguaLingua 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.
47382Remote Debugger Stub64-bit and ARM Console debuggers are now included.
48869Remote Debugger StubLinux Remote Debugger Stub is now built with 2017r2.1.
50122Remote Debugger StubMac and Linux 64-Bit Debugger Stubs save preferences again.
50192Remote Debugger StubUnnecessary edit copy sub menu removed.
108 Bug Fixes


49462Database PluginsUpdated SQLiteDatabase plugin to SQLite 3.20.1.
49625DebuggerXcode 9 is now supported for building and debugging iOS applications.
40987Framework » AllFramework has been updated to use OpenSSL 1.1.0e.
49678Framework » AllFramework has been updated to use Crypto++ 5.6.5.
50092Framework » AllAutoDiscovery, EasyTCPSocket, EasyUDPSocket events and methods now use Int32 for command parameters for compatibility with 64-bit.
49756Framework » WebApp.HandleURL and App.HandleSpecialURL now have the Connection: close header set.
43702Framework » WindowsWindows 8.1 and Windows 10 are included in the Windows manifest file.
50275IDEiOS plist entry for UIRequiredDeviceCapabilities specifies arm64.
48951IDE » AutoLayoutAutolayout rule editor has a priority column for easier viewing of rules.
49350IDE » Build AutomationBuild Target Script Steps has line number toggle.
50306IDE » Build AutomationWhen 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.
45050IDE » Code EditorCode editor highlights matching blocks by drawing their “block matching lines” in blue and slightly fatter than the rest of the block matching lines.
48464IDE » FileIOThe 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
50291IDE » InspectoriOS devices are now grouped by iOS version and sorted alphabetically by device name in the Simulator Device menu.
49496IDE » Language ReferenceThe IDE now creates a unique folder for the temporary files needed for the LR and cleans it up on quit.
49136IDE » MiscellaneousLSMinimumSystemVersion is written as 3 numeric parts as Apple indicates.
49340IDE » MiscellaneousIDE logging now prefixes items with [Xojo] instead of [RB].
49840IDE » MiscellaneousWhen 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.
48942IDE » Picture PreviewerThe 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.
40915IDE » Structure EditorProjects 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.
47787InstallerWindows uninstaller now deletes folders created in the user's AppData\Roaming directory.
49168InstallerPlugins, Templates and Scripts folders are now made user writable by the Windows installer.
49829LinguaSearching for a localization string by constant will now match partial strings.
50198MiscellaneousPtr.Class no longer autocompletes as it is a remnant of a feature never released.
48542Remote Debugger StubThe 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.
49991Remote Debugger StubDesktop and Console Debugger stubs have been rebuilt with 2017r2.1 resulting in a speed boost.
26 Changes

New Items

47951Framework » WebWebTextArea now has a CueText property which displays on all supported browsers except IE9 (because it's not supported).
48641IDE » MiscellaneousWindows 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.

11187LinguaAdded 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.
41210XojoScriptXojoScript is now available in ARM builds.
4 New Items

Docs and Examples

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