2019r1

Xojo 2019 Release 1, with over 200 changes and improvements, was released on April 9th, 2019.

Major changes include:

  • Xcode 10.2 compatibility.

  • Significant improvements to performance of Layout Editor, especially with web projects.

  • Improvements to URLConnection: SendSync now works with threads, added a new HTTPStatus property, URLConnection also now appears in Library for desktop projects.

  • Free Pi license now builds for Console or Desktop.

  • Spell checking now also supported in TextArea on Linux.

  • Dynamic Constants are now referred to as Localized Strings.

  • General AutoComplete improvements.

  • SQLite updated to 3.26.0.

Bug fixes (162 cases)

Case

Area

Description

54481

Fixed as a result of fixing 54023

54546

Build

Build window buttons no longer overlap.

54615

Build

iOS MinimumOSVersion plist key is now set to 10.0.

54959

Build

Spaces in the fully qualified path name for the app being debugged no longer cause debug run issues on Windows.

54662

Crashes & Assertions » Failed Assertion

Debugging 64-bit Windows apps no longer fails with a Line number out of range assertion in certain cases when stepping into functions.

54960

Crashes & Assertions » Failed Assertion

Made it more obvious that the Line number out of range error should be reported and is non-fatal.

54067

Crashes & Assertions » IDE Unhandled Exception

Invalid application names no longer cause the IDE to raise an uncaught exception.

54294

Crashes & Assertions » IDE Unhandled Exception

Stopping an app from being sent to the Remote Debugger stub no longer causes a NilObjectException.

54486

Crashes & Assertions » IDE Unhandled Exception

OutOfBoundsException when generating a relative path no longer occurs.

54527

Crashes & Assertions » IDE Unhandled Exception

A NilObjectException no longer occurs when building a second time.

54528

Crashes & Assertions » IDE Unhandled Exception

A NilObjectException that could occur if you cancelled a run of the debugger has been fixed.

54560

Crashes & Assertions » IDE Unhandled Exception

Removing a line of code that is shown in the debugger then toggling the break point in the debugger no longer causes an exception.

54566

Crashes & Assertions » IDE Unhandled Exception

IDE no longer stops with a NilObjectException in some situations during launch.

54757

Crashes & Assertions » IDE Unhandled Exception

NilObjectException no longer occurs in some situations when debugging Xojo.Net.HTTPSocket.

54966

Crashes & Assertions » IDE Unhandled Exception

NilObjectException no longer occurs when configuring Remote Debugging on Windows.

55066

Crashes & Assertions » IDE Unhandled Exception

Fixed a NilObjectException that could occur when undoing a project item deletion.

55099

Crashes & Assertions » IDE Unhandled Exception

If the iOS app being started crashes on startup, before the IDE has had a chance to talk to it the communications channel can shut down and be Nil when we try to start talking to it. Now the IDE catches that error and puts a message about this in the message log.

55238

Crashes & Assertions » IDE Unhandled Exception

Fixed a crash caused by dropping a file onto the debugger tab's Navigator during a debug run.

54631

Database Plugins » MySQL

MySQLCommunityServer: Editing a RecordSet, that originated from a PreparedStatement, no longer crashes (depending on certain field types on the Table).

52045

Database Plugins » ODBC

Retrieving dates for macOS 64-bit builds now works correctly

52926

Database Plugins » ODBC

For 64-bit Windows builds, updating a binary/image column with RecordSet.Update no longer fails with an invalid precision error.

55116

Database Plugins » SQLite

SQLiteDatabase no longer crashes when out of memory situations arise, instead an error is raised.

54381

Framework

Opening an OpenDialog from a thread now properly raises a ThreadAccessingUI exception.

43433

Framework » All

When IndexOf is used for Variant arrays we now compare against the content of the two types instead of the memory addresses (except when dealing with Objects/Ptrs of course).

54315

Framework » All

Listbox DrawReorderRows newPosition parameter is no longer off by one when dragging the last row and dropping it at the end.

54412

Framework » All

Xojo.Net.HTTPSocket events are no longer raised on a pre-emptive thread, this would cause all sorts of random/odd behavior depending on the thread context switches.

54502

Framework » All

Xojo.Net.HTTPSocket HTTP POST now properly sends the request content on Windows.

54811

Framework » All

URLConnection Send requests are now closed before the ContentReceived or FileReceived events are called.

54820

Framework » All

URLConnection string encoding for the Response headers are now consistent across platforms. Also updated the string encoding for the the content string, returned in ContentReceived, to adopt the content-type encoding (charset).

54902

Framework » All

Window/Canvas Backdrop picture now draws correctly at HiDPI.

54924

Framework » All

BitwiseXor is defined to return a Uint64 like BitwiseOr and BitwiseAnd.

54926

Framework » All

Fixed a few incorrect uppercase/lowercase translations for the WindowsANSI encoding.

54927

Framework » All

URLConnection now automatically handles compressed content-encodings on Windows and Linux (by decompressing for you like macOS does).

55093

Framework » All

Assigning an empty array produces the correct empty array in the string version of the JSONItem.

54512

Framework » Linux

URLConnection POST, PUT or PATCH request without any request content set is now correctly handled on Linux.

54870

Framework » Linux

Getting the length of a string (using Len) with an unknown encoding now returns a consistent length across platforms.

54988

Framework » Linux

StringShape rotation is no longer incorrectly offset.

55055

Framework » Linux

Adding Tab as a Menu shortcut key no longer truncates the shortcut key to “T”.

31742

Framework » Web

WebPopupMenu.ListCount is now a property instead of a method so that it appears in the debugger.

54463

Framework » Web

Web apps running on Windows with clients running on iOS will now disconnect properly if the connection goes away for 5 seconds.

55072

Framework » Web

App.AutoQuit works on Xojo Cloud again.

51627

Framework » Windows

LR search obeys the preferences setting for Find (immediately or when enter return are pressed). When LR loads search results the scroll bars are momentarily hidden on Windows and restored when the list is finally filled.

53848

Framework » Windows

On Windows/Linux, Picture resource files that cannot be accessed no longer causes the app to crash when that Picture is accessed.

54062

Framework » Windows

Listbox hierarchical widgets and checkboxes no longer look blurry.

54190

Framework » Windows

Fixed an issue where the TextArea Font size was not being respected on a secondary display (in a multi-monitor multi-resolution setup).

54392

Framework » Windows

Using Graphics.DrawString with a dynamically installed font no longer crashes.

54503

Framework » Windows

A disabled TextField control now inherits the default grey background color instead of appearing transparent.

54517

Framework » Windows

GroupBox caption now respects the size, bold, italic and underline styles instead of being ignored when drawn.

54592

Framework » Windows

URLConnection now correctly honors the timeout when SendSync is called (instead of always defaulting to 30 seconds).

54608

Framework » Windows

URLConnection error messages are no longer empty on Windows.

54673

Framework » Windows

When controls are initially created on a ContainerControl we no longer report the incorrect visible state.

54685

Framework » Windows

URLConnection ReceivingProgressed event now correctly reports the totalBytes.

54689

Framework » Windows

Listbox headers are no longer hidden when a Listbox is placed in a ContainerControl.

54743

Framework » Windows

Changing the font of a TabPanel to a bigger/wider font size now correctly draws the last tab instead of it appearing overlapped by something.

54822

Framework » Windows

URLConnection response headers are now updated correctly each time a request is made, where before subsequent requests would include outdated headers.

54907

Framework » Windows

URLConnection picks up proxy settings correctly.

54945

Framework » Windows

The background color of TextArea in the Windows IDE Layout Editor no longer appears in the bottom-right Scrollbar region (now matching the runtime behavior on Windows).

54946

Framework » Windows

Clicking on the non-client areas (i.e. border or scrollbars) of the TextArea control no longer raises MouseDown events, this is consistent with the behavior on macOS.

55165

Framework » Windows

Setting fixed ListBox ColumnWidths no longer raises floating point exceptions which could potentially crash the app depending on the system's FPU settings.

55322

Framework » Windows

Fixed a potential crash on quit with Listboxes that contain Checkboxes or Hierarchical widgets.

43484

Framework » macOS

Closing a Window no longer leaks memory.

54358

Framework » macOS

Sheet windows obey customer defined background color again.

54410

Framework » macOS

URLConnection.SendSync no longer intermittently returns empty strings.

54430

Framework » macOS

RectControl.Transparent: this property is now ignored on macOS, i.e. all Controls are Transparent by default and will remain as such even if Transparent is False. This property still remains as an important optimization for Windows (when Transparent is False).

54969

Framework » macOS

Destructors for class instances attached to the App object get destroyed properly.

54330

IDE

Message Log no longer does queue flushing and all platforms use a similar style for showing the lines. You 'll only see the last 1500 but all the messages are there for when the debug session ends.

54752

IDE

Odd error message saying cant save to location %1 now says location instead of %1.

33045

IDE » Auto Complete

Code Editor no longer suggests as after a = on a Dim line.

37458

IDE » Auto Complete

Picture.HandleType, MenuItem.HandleType, iOSDatePicker and several other related enumerations now autocomplete properly.

54574

IDE » Auto Complete

XojoScript.States autocompletes properly again.

43602

IDE » Build Automation

The copy file step editor on Linux can accept files and folders by drag and drop again.

48373

IDE » Build Automation

Stage Code can no longer be set to an invalid value in an IDE Script.

51257

IDE » Build Automation

Added a second button to the copy file step editor command bar for adding folders.

27555

IDE » Code Editor

Removing a property from a control class that is exposed in the Inspector Behavior will update the instances and refresh the Inspector.

30926

IDE » Code Editor

Word selection behaves the same as in the other areas such as the Constant Editor.

32398

IDE » Code Editor

Pressing TAB after changing the name of a Method, External Method or Delegate correctly focuses on the Parameters field again.

33990

IDE » Code Editor

A right click on a webpage named in a session object will permit you to jump to the page itself in the IDE. See much longer explanation in the last note on this case about this as there are some special considerations when used with Me or Self.

50009

IDE » Code Editor

Navigation with arrow keys behaves better and no long takes many many short jumps.

50465

IDE » Code Editor

Autocomplete now does a better job with Xojo framework items to make sure that it looks up things from the Xojo framework rather than the global framework. For example, Xojo.IO.FolderItem vs. just FolderItem.

51136

IDE » Code Editor

Scroll bars hide when appropriate, especially after deleting a really long line.

51292

IDE » Code Editor

Breakpoint code editor icons no longer disappear when you delete a line and the breakpoint has just moved up.

51327

IDE » Code Editor

Windows IDE: Pressing Ctrl+C in the code editor, while nothing is selected, no longer inserts a line continuation character.

51366

IDE » Code Editor

Pair literal is correctly colored.

51452

IDE » Code Editor

Extract method dialog no longer incorrectly rejects names that start with *ins”.

53199

IDE » Code Editor

Clicking a URL will show the URL on mouse up not mouse down.

53820

IDE » Code Editor

When selecting goto <control name> in the code editor contextual menu you get taken to it as expected.

54023

IDE » Code Editor

Breakpoint and bookmarks are not dropped inadvertently when setting one, deleting some text and then moving away and back to the code item.

54241

IDE » Code Editor

Made it so the plain text of copied code has indentations.

54263

IDE » Code Editor

Clicking on the block grouping lines selects the right lines.

54318

IDE » Code Editor

Double clicking a word behaves properly.

54321

IDE » Code Editor

Nested code that is completed using super-returns (Shift-Return) does the nested items properly.

54331

IDE » Code Editor

Computed properties setter and getter local variables behave correctly with autocomplete.

54408

IDE » Code Editor

Autocomplete suggestions are properly working again.

54548

IDE » Code Editor

IDE script editor window responds to the scale factor changed event correctly.

54572

IDE » Code Editor

The line continuation character is colored appropriately.

55169

IDE » Constant Editor

Constant editor now supports Cut, Copy & Paste in the localized value cell.

50298

IDE » Debugger

Debugger only shows left and right for Pairs.

54353

IDE » Debugger

IDE draws the bug icon for an exception at runtime over the hit box instead of under it.

54911

IDE » Debugger

IDE on Windows will send a 32-bit macOS app and will continue to not send 64-bit macOS apps since the Windows IDE cannot build them.

54798

IDE » FileIO

IDE no longer forgets the original format of a project when a license is missing and then subsequently installed.

55122

IDE » FileIO

Importing a web page that is named the same as an existing one replaces as it should (this has always been the case and is by design).

54886

IDE » FileTypes Editor

Delete button now enables when you put focus in a File Type of a File Type Set in an existing project.

54887

IDE » FileTypes Editor

Odd left and right scrolling no longer occurs.

55009

IDE » FileTypes Editor

File Type Set Editor scrolls as expected with a long list of file types that have been collapsed.

55010

IDE » FileTypes Editor

Slowness when collapsing and expanding a long list of File Type Set is fixed.

26997

IDE » Find & Replace

Some search and replace fixes: internal script steps can be searched and replacements work, copy files steps can be searched (replace does not work at this time), external script steps can be searched (replace does not work at this time).

51036

IDE » Find & Replace

Selecting a Structure in the search results jumps to the right instance in the Navigator.

54346

IDE » Find & Replace

Using search and replace to change the type of an array property no longer removes the array declaration.

54462

IDE » Find & Replace

Event definitions don 't change scope.

54479

IDE » Find & Replace

Scroll position resets when new search results are added to the search panel.

54480

IDE » Find & Replace

The search results list no longer clears when you switch the scope indicator when there is a special search result set showing.

54734

IDE » Find & Replace

Find and replace of an Enumeration's first or last line no longer alters the name of the enumeration.

54915

IDE » Image Editor

Dragging an ICNS file into the IDE no longer causes a crash.

52198

IDE » Inspector

PagePanel inspector panes don 't change from the first click to the second.

52491

IDE » Inspector

The method name combobox includes names from all the interfaces as well as from the interfaces that may be aggregated.

54225

IDE » Inspector

Tabbing in the method editor moves properly in either the in window or floating versions.

54335

IDE » Inspector

Combobox now properly handles Edit menu items (i.e. Copy, Cut, Paste, Select All) like TextField does.

54357

IDE » Inspector

The existing constant value is retained in both boolean and color items in the Inspector.

54401

IDE » Inspector

HTMLViewer tabstop state remains as set.

54426

IDE » Inspector

Assigning a constant for both Color and Boolean properties now suggests a better initial constant name. If a constant is already assigned and you try to assign one again then the existing name appears in the text field.

54498

IDE » Inspector

Constant for width and height of a control works again.

54573

IDE » Inspector

iOS simulators that are using iOS versions < 10, the minimum version we support, won 't show in the list of available simulators.

54582

IDE » Inspector

Duplicating a subclassed web control instance on a web page works as expected.

54484

IDE » Layout Editor

Popup editor for lists is readable in dark mode.

54583

IDE » Layout Editor

Editing a web container now properly updates any layouts containing the web container.

54944

IDE » Layout Editor

Changing the text area border, scrollbar horizontal and scrollbar vertical properties causes the IDE to display the change.

55214

IDE » Layout Editor

WebContainers without styles draw their bottom/right edges again.

53924

IDE » Library

Library description updates its colors when switching between light and dark mode on macOS Mojave.

55143

IDE » Library

The Library no longer changes layouts when you first click on it.

25076

IDE » Miscellaneous

Find no longer automatically selects the first result. Pressing Find Next (Command+g) at this point selects the first find result. Subsequent Find Next's move to the next search results (or error or message depending on what's showing). Find Previous (Command+Shift+g) is also now working.

25140

IDE » Miscellaneous

Tabs now show multiple selection a lot less often.

28397

IDE » Miscellaneous

Make it so double-clicking a group row (constants, method, events, etc.) will expand it if it is not expanded and will collapse it if it is expanded.

29596

IDE » Miscellaneous

IDE shows DebugLog messages sent by web apps.

31725

IDE » Miscellaneous

When a file is saved the autosave items are removed so we don 't end up in the weird state of having an autosaved version of the project that is older than the file just saved. Note this does have the side effect of making it so the sequence of alter project, run, save, run requires a new autosave version to be created.

44352

IDE » Miscellaneous

Implementing an interface in a module works properly.

49301

IDE » Miscellaneous

Individual missing image asset elements can now be resolved.

53635

IDE » Miscellaneous

We no longer reclone the custom toolbar all the time.

54025

IDE » Miscellaneous

Default export type is the same as the user's preference, if suitably licensed, or binary if not.

54351

IDE » Miscellaneous

Multiple projects dragged onto the IDE icon load properly.

54493

IDE » Miscellaneous

Text in the Image Set editor shows as expected.

54501

IDE » Miscellaneous

The main default web page in a web project can be an external item.

54522

IDE » Miscellaneous

IDE scripts no longer increment non-release version twice.

54562

IDE » Miscellaneous

Windows/Linux menu keyboard shortcuts are now deferred to the main window instead of any floating windows that may exist, which matches macOS behavior.

54623

IDE » Miscellaneous

IDE no longer doubles up the name of a parameter that follows a continuation character in the parameters field of a code item.

54714

IDE » Miscellaneous

When opening a project, tabs are resized to fit their captions.

54783

IDE » Miscellaneous

Text in the update dialog is readable when the row is selected.

54806

IDE » Miscellaneous

Images Sets that share a common picture for any of their available resolutions no longer cause Collect Project to fail.

54838

IDE » Miscellaneous

Messages icon for Messages panel has a badge that displays the count of new messages.

54912

IDE » Miscellaneous

Aliases in a build folder are not resolved so that only the alias is removed and not the target of the alias.

55033

IDE » Miscellaneous

Bad cursor file no longer causes a NilObjectException.

55034

IDE » Miscellaneous

The IDE no longer crashes when certain files are dropped onto it.

54034

IDE » Navigator

Changing the type of an Enum updates the row text in the Navigator.

54328

IDE » Navigator

If you right click a single item in the Navigator and select Inspect then it actually goes to that item not one named the same thing.

54383

IDE » Navigator

Invoking a delete using the contextual menu in the Navigator with the focus in a code editor no longer clears the focus and sets it back to the item that was being edited before the contextual menu was invoked.

54721

IDE » Navigator

Case changes to Inspector properties update the Navigator.

54980

IDE » Navigator

Opening and closing the preferences no longer causes visible method rows to recompute their text incorrectly.

55327

IDE » Preferences

Preference for showing built apps now shows Finder, Explorer or Desktop Manager for macOS, Windows or Linux, respectively.

53576

IDE » Rendering

Constants used for container control background colors work as expected in the layout editor and at runtime.

51737

IDE » Scripting

IDE scripting will not create properties or constants that are named the same as existing ones.

54733

IDE » Uploader » Xojo Cloud

Xojo Cloud apps which immediately redirect to HTTPS using a 301 or 302 redirect are now recognized properly by the IDE.

28887

IDE » Web Page Editor

ScrollbarsVisible is in the Inspector for web containers as expected.

27611

IDE » Window Editor

Sometimes loading a project would result in colors being misinterpreted on load. Existing projects that have this issue wont be magically fixed but saving a project should no longer cause this issue to occur.

Changes (25 cases)

Case

Area

Description

54594

Database Plugins » SQLite

SQLite plugin has been updated to version 3.26.0.

32344

Framework » All

The buffer size on SSLSocket has been increased to 256K.

54467

Framework » All

URLConnection.SendSync now yields to other threads.

54593

Framework » All

MenuItem.Action event now gets triggered first (instead of last) so that it is called before any menu handlers get a chance to handle it.

54842

Framework » All

Attempting to use a Graphics object outside its intended Paint event (i.e. after the Paint event has finished) now raises an exception.

54841

Framework » Linux

No longer emits non-fatal GTK+ messages.

37004

IDE

If you drag an image from a Finder window onto an iOS layout you get an Image View added to the layout with the image imported into the project.

54370

IDE

When a 32 bit only ActiveX control is imported to a project the sources generated have an appropriate guard to warn people about compiling as 64 bit (which compiles but results in an app that crashes).

37045

IDE » Auto Complete

The Session object in a web project works properly in autocomplete.

16536

IDE » Code Editor

Script editor window has a proxy icon on macOS.

54866

IDE » Constant Editor

The “Dynamic” label for a Constant is now called *Localized” to better indicate that these “constants” are really localized strings.

34125

IDE » Find & Replace

Command line arguments will be searched as part of find.

54488

IDE » Find & Replace

Special searches for bookmarks and break points show in the search history listing.

53774

IDE » Inspector

Inspector Properties are in more or less alphabetical order within each grouping. But it's not strictly alphabetical - as some things make more sense to be functionally grouped.

55188

IDE » Inspector

Inspector switch controls no longer have the words ON & OFF drawn on them.

53864

IDE » Layout Editor

The layout editor experience when dragging and resizing controls has been improved.

54317

IDE » Layout Editor

Web Controls now render in HiDPI when they are being dragged on a HiDPI layout editor.

23136

IDE » Miscellaneous

Certain controls, like Timer on desktop projects, thread and timer in iOS projects, will, when added to a layout, have those events already added since it would be unusual to add one and not add the event.

31909

IDE » Miscellaneous

A new section appears in the Navigator for Localized Strings, known as dynamic constants, so it's clearer that Localized strings are not constants as they actually end up being methods when compiled. As such they cannot be used as default parameters in method declarations of default values for properties, etc.

53605

IDE » Miscellaneous

Windows IDE: 32-bit ActiveX controls can now be accessed and used in your projects. Note: This does not mean you can use them in your 64-bit builds unless the ActiveX control also has a 64-bit part.

54722

IDE » Miscellaneous

Implement Interface window properly disambiguates between fully qualified interface names and relative ones.

54797

IDE » Miscellaneous

Constant, Enumeration and Structure editors now use the preference setting for *use large font”.

55316

IDE » Miscellaneous

IDE can now enumerate iOS simulators from Xcode 10.2.

45288

IDE » Navigator

A String constant pasted into an iOS project will now be turned into a Text constant.

54385

IDE » Navigator

Switching the Navigator/Library between floating palette and within the Workspace now does a better job of presenting the same views that were previously open.

New items (9 cases)

Case

Area

Description

54299

Build

32-bit Windows apps can also set HiDPI and supported windows versions items in the manifest.

54726

Framework » All

URLConnection.HTTPStatusCode property now available. This contains the HTTP status code as a result of both Send and SendSync calls.

54209

Framework » Linux

Spell checking is now supported in TextArea on Linux.

54207

Framework » Windows

AutomaticallyCheckSpelling is now supported in TextArea on Windows 8 or newer.

54612

Framework » iOS

Added Text.EndOfLine which returns the EndOfLine character for the current platform (Mac, Windows, Linux and iOS).

54697

IDE » Layout Editor

The contextual menu presented in the Layout editor has a Find item when you click on the layout or controls and it actually does the right find of those items.

54682

IDE » Library

URLConnection appears in library similar to TCPSocket.

55125

IDE » Miscellaneous

Can select properties, computed or regular, and convert them into method getter / setter pairs. This won 't alter the semantics of your code (ie/ a computed that only had a setter wont suddenly get a setter method). Computed properties with neither a get or set are not touched since the correct pair is to have neither which makes their conversion appear to just delete the item.

39078

IDE » Navigator

A right click on a class in the Navigator has a new contextual menu to jump to a specific subclass.

Docs and examples (22 cases)