2018r4 Release Notes

From Xojo Documentation

(December 11, 2018)

Xojo 2018 Release 4 is now available with over 110 changes and improvements.

Major changes include:

  • The new URLConnection class (part of API 2.0) is an updated version of HTTPSocket and Xojo.Net.HTTPSocket used for web communications
  • New constants AppSupportsDarkMode and AppSupportsHiDPI
  • More Dark Mode improvements to both the IDE and framework
  • iOS builds now use the 12.1. SDK for latest device support
  • macOS builds now use the 10.14 SDK for latest Declare support
  • SQLite updated to 3.25.3

Release Notes

Bug Fixes

12488BuildThe build folder is properly emptied between build runs.
53632Crashes & Assertions » IDE Unhandled ExceptionReport editor no longer crashes if you click an alignment button with no controls selected.
53708Crashes & Assertions » IDE Unhandled ExceptionFixed a NilObjectException that could sometimes occur when trying to connect to the LangRef database. If the IDE cannot connect then a message is posted to the DebugLog and several IDE features cannot work, including “Help for…” contextual menu, Code Editor Syntax Area and Library descriptions.
53715Crashes & Assertions » IDE Unhandled ExceptionShared external items in multiple open projects no longer result in NilObjectExceptions when clicking on search results.
53750Crashes & Assertions » IDE Unhandled ExceptionNilObjectException no longer occurs when backspacing quickly in the filter and there's a match in a menu bar sub-item.
53755Crashes & Assertions » IDE Unhandled ExceptionYou can no longer paste an iOS control into a desktop project.
53801Crashes & Assertions » IDE Unhandled ExceptionFixed a spurious NilObjectException.
53855Crashes & Assertions » IDE Unhandled ExceptionUnsupportedFormatExceptions no longer bring the IDE down when trying to relocate project files.
53896Crashes & Assertions » IDE Unhandled ExceptionNo longer get an NOE when moving a control using the arrow keys in the report edior
53951Crashes & Assertions » IDE Unhandled ExceptionNilObjectException no longer occurs when you have a window in a folder and open the folder in a tab and then add to a existing control set on the window.
53607DebuggerRemote debugging to Pi no longer randomly crashes when stopping on a breakpoint.
53832DebuggerDoubles and single no longer show in scientific notation in the debugger.
53541FrameworkPushbuttons with the Default property set to True are visible again.
53918Framework » AllConsole and web apps now also have the same stage code constants as desktop apps.
53990Framework » AllColor.HSVA no longer ignores the alpha channel when the saturation value is 0.
7096Framework » LinuxComboBox.TextChanged event is now called properly on Linux.
50274Framework » LinuxXojo.Net.HTTPSocket: The request method is now automatically capitalized so that "get" no longer returns an invalid method from the server, this matches other platforms behavior.
52747Framework » LinuxLinux IDE: Using the Delete key in a TextField no longer deletes the selected control(s) on the layout editor.
54148Framework » LinuxReturning True from HTMLViewer.CancelLoad now actually cancels loading the page.
53627Framework » Macintosh (Cocoa)Resized containers no longer require the use of ClearRect to clean up artifacts.
53941Framework » Macintosh (Cocoa)On macOS, setting the text color of a TextArea whose Styled property is set to False to Black (&c00000000) will now obey the special rules we set up in 2018r3 so that the system's textColor will actually be used.
54036Framework » Macintosh (Cocoa)Slider tracks no longer disappear when a window is resized in its Open event.
54046Framework » Macintosh (Cocoa)ClearRect no longer fills with the wrong color on macOS Mojave with Dark Mode disabled.
52802Framework » WebiOS is no longer slow to disconnect from a running web app.
53291Framework » WebBrowsers who have been disconnected from the server will now reload the web app so they don't appear frozen.
47613Framework » WindowsXojo.Net.HTTPSocket can now connect securely with TLS 1.2 on Windows 7.
53050Framework » WindowsUpdated Screen class so extended screens report a virtualized left/top consistent with other platforms like macOS.
53604Framework » WindowsRetrieving the clipboard text after TextArea.SelText was called now returns the correct text instead of being empty.
53728Framework » WindowsFixed the ListBox.DragRow selection being offset incorrectly if you had EnableDragReorder enabled but EnableDrag disabled.
53751Framework » WindowsRectControl.DrawInto no longer causes flicker when drawing directly on screen.
53898Framework » WindowsLabel now matches previous vertical alignment behavior (i.e. it is no longer incorrectly offset vertically by a pixel).
53901Framework » WindowsCheckbox.DrawInto no longer draws an aliased control at integral scale factors which caused the image to be blurry.
53922Framework » WindowsWindow.BitmapForCaching now raises an exception when passing an invalid height instead of just crashing.
53996Framework » WindowsListbox sort indicator now appears after a header click on Linux/Windows.
54091Framework » WindowsListbox no longer displays artifacts near the bottom of the Listbox at HiDPI scale factors (typically seen at 175% DPI or higher), when CellTextPaint is used to draw the text.
54094Framework » WindowsThe background color of controls in a ContainerControl on a TabPanel no longer inherits the wrong parent's background color.
54283Framework » WindowsControl.PanelIndex now correctly returns -1 when the control is not on a Tab/PagePanel for 64-bit Window builds.
53794IDEPopover editor for listbox contents uses the correct text color instead of explicitly black all the time
53931IDEMade it so when you set up macOS to have one menu bar across multiple screens a new project does not get put behind the menu bar on the screen that has the menu bar.
53999IDEWhen starting Xojo, floating palettes for Inspector and Library restore back to the screen where they were last.
54069IDEProfiler row and text colors work in dark mode so the results are readable.
53737IDE » Build AutomationBuild steps items that are outside a build target are properly saved and restored when writing text format projects.
51226IDE » Code EditorColumn position reported when at the end of code and pressing right arrow does not increase.
51228IDE » Code EditorCleaner no longer drops characters from the cleaned line in some situations.
52872IDE » Code EditorCut & Paste, particularly when auto code reformatmode is enabled, behaves much better. Note that with the auto code reformat mode on a paste may result in 2 actions - one for the paste followed by one for the code reformatting. Undoing both does return code to what it was originally which was not occurring before.
53765IDE » Code EditorCopying code no longer inserts spaces.
53944IDE » Database EditorColumns are not longer defined with lengths as scientific notation.
54206IDE » Database EditorSchema editor no longer enables the "delete column" contextual item for db's that do not support "drop column" such as SQLite.
53854IDE » DebuggerAlpha values on colors show up correctly in the debugger.
53095IDE » Error & Warning PanelSelecting the already active view style, by type or by location, in the errors panel does nothing.
53548IDE » FileTypes EditorFile Type Set scrolling should behave a lot better.
53874IDE » Find & ReplaceNo longer get a NilObjectException with certain kinds of searches.
54131IDE » Find & ReplaceFixed a bug which prevented the IDE's Find menu from being immediately available.
54220IDE » Find & ReplaceSearch and replace in external methods no longer mangles them.
53927IDE » Image EditorThe text on selected lines of the image editor are no longer unreadable on macOS 10.14.
53539IDE » InspectorInspector scrollbar hides and shows appropriately.
53677IDE » InspectorInadvertent workflow change that occurred when adding overloaded methods has been fixed so there is no workflow change.
53709IDE » InspectorCan enter constants into MajorVersion, MinorVersion, BugVersion and NonReleaseVersion.
53710IDE » InspectorCan enter constant into NonReleaseVersion. However if you do this the automatic increment of the NonReleaseVersion value is disabled.
53772IDE » InspectorInspector labels on Windows are not clipped with an ellipsis on the right side.
53785IDE » InspectorAutolayout editor buttons are no longer garbled.
54008IDE » InspectorShift + Home and Shift + End work properly on Windows and Linux.
54052IDE » InspectorOverloading a method that returns an array sets up the call to the super correctly.
54173IDE » InspectorInspector items with accessory editors now open as a sheet attached to the Inspector when it is a floating palette.
53766IDE » Language ReferenceThe find field on the online language reference viewer looks correct again.
53895IDE » Language ReferenceLR no longer causes infinite loop due to redirects.
53911IDE » Language ReferenceToolbar retains it user set display type.
53787IDE » Layout EditorControls are no longer drawn clipped (when they really shouldn't be).
53788IDE » Layout EditorTimer and other tray controls no longer look so bizarre when using certain background colors for the Layout Editor pasteboard color.
54316IDE » Layout EditorWebPopupMenu now draws correctly in the layout editor when viewed on a HiDPI/Retina screen.
53825IDE » Menu EditorMenu editor has the correct background again.
53871IDE » Menu EditorMenubar menus now have the correct color when the user's accent color is not blue.
53734IDE » MiscellaneousAn event that was implemented on an instance of a control that has been removed from the superclass no longer show up in the Add Event window as an event that can be added again.
53781IDE » MiscellaneousSelect Super dialog search field no longer has lines above and below.
53809IDE » MiscellaneousSeparator appears as expected above "Desktop" entry in the Project Chooser.
53965IDE » MiscellaneousIf you are in dark mode and print, then the default light mode colors are used for printing in color.
53319IDE » NavigatorScrolling Inspector at fractional DPI scale factors no longer leaves trailing graphical artifacts.
53676IDE » NavigatorUsing clause and event definitions in the Navigator are no longer black icons on a black background.
53797IDE » NavigatorIf you are editing one method and right click another item in the Navigator and change the scope the focus is not shifted to the item you changed the scope for.
54212IDE » NavigatorThe fill rect and frame are using the same coordinates when drawing the scope behind the row text.
52343IDE » ScriptingCustom reformat is now called once on pasted code not once per line pasted.
53775IDE » ScriptingIDE Script Editor now draws all the matching code block brackets.
53859IDE » Style EditorWeb Style Editor State control is visible again.
54194IDE » Xojo Cloud » StatisticsXojo Cloud hosting statistics graphs now draw dark when the IDE is running in dark mode.
84 Bug Fixes


51734CompilerWindows IDE can now successfully build large projects for Linux 64-bit and ARM targets.
54066Database Plugins » SQLiteSQLite plugin has been updated to version 3.25.3.
21197Framework » AllTextField input now respects user's locale when a Format is setup.
53658Framework » AllAny remaining threads are now killed after the App.Close event.
53628Framework » Macintosh (Cocoa)Listbox now obeys the Transparent property on macOS.
42596Framework » WindowsXojo.Net.HTTPSocket is no longer limited to creating and firing events on the main thread.
51973Framework » WindowsEnableMenuItems no longer fires needlessly on every keypress.
53830IDESince analyze is platform specific the insertion of #pragma unused is now wrapped in a #if TargetXXXXX statement.
53883IDE » Constant EditorReduced the thickness of the dark mode color picker frame and removed its inner shadow to make colors more distinct.
54026IDE » FileIOMade it so that if you select a bunch of items to export, the first one you set the location and export type and the rest will also end up exported to the same location as the same type.
53287IDE » Find & ReplaceSearch result icons distinguish between events , methods, and computed property getter / setters.
54017IDE » Find & ReplaceSpecial searches for break points and bookmarks do not get invoked as frequently, which should improve typing speed when the panel is visible. They are now only updated when a new breakpoint/ bookmark is added or removed or when code is edited in a way that the line number of a breakpoint / bookmark would be altered.
53906IDE » Language ReferenceSince the online LR has its own search field, the one in the IDE's built in browser is no longer needed.
54007IDE » NavigatorContextual click on a property in the navigator will have a new Go To <type> entry if its a user type that allows you to jump to that type in the project.
53839IDE » PreferencesLayout editor pasteboard color changes are "live" like code editor color changes are so you can see them without having to close the preferences pane first.
53843IDE » PreferencesAfter caches are cleared, a MsgBox is displayed to indicate it finished.
54248IDE » RenderingThe NSRequiresAquaSystemAppearance plist key is no longer written for 64-bit apps that support Mojave's Dark Mode, as it is no longer necessary to explicitly opt in with the 10.14 SDK.
53362LinguaLingua has been updated for Mojave's dark mode.
54000LinguaThe constant label is now selectable.
53807MiscellaneousiOS ImageMaker has been updated for Dark Mode.
53363Remote Debugger StubRemote Debugger Stub has been updated for Dark Mode on macOS.
21 Changes

New Items

54136CompileriOS simulator/device builds now use the iOS 12.1 SDK.
53942FrameworkThere are 2 new global constants (available for all project types) that can be used in #if statements and build scripts:

AppSupportsDarkMode and AppSupportsHiDPI

53845Framework » AllAdded URLConnection class (as a replacement for Xojo.NET.HTTPSocket), see documentation for details.
53984Framework » AllAdded new Screen.ScaleFactor property.
48376Framework » Macintosh (Cocoa)Updated Xojo to use the macOS 10.14 SDK for 64-bit builds.
5 New Items

Docs and Examples

50620DocumentationAdded links to SMTP errors code to SMTPSecureSocket page.
54058DocumentationFixed tooltips for methods on String page.
54096DocumentationXmlNode.Compare page now indicates that nodes to be compared must have the same parent.
54184DocumentationMenuItem.Visible page notes that you should use MenuItem.Remove on Windows instead.
54258Documentation » MiscellaneousSOAPMethod sample code updated to use a working SOAP web service.
50040ExamplesExample projects have Architecture set to 64-bit.
54195ExamplesFixed app icon for Eddie’s Electronics web project.
50164Language Reference » DocumentationAdded Integer values to Variant Class Constants table.
53630Language Reference » DocumentationUpdated iOSApplication.Open with correct parameters and return value.
54229Language Reference » DocumentationAdded TargetiOS constant to Language Reference.
54270Language Reference » DocumentationFixed confusing sample code on WebControl.Shown page.
11 Docs and Examples