2017r3

Released December 5th, 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)

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)