2018r4

Xojo 2018 Release 4, with over 110 changes and improvements, was released on December 11th, 2018.

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

Bug fixes (84 cases)

Case

Area

Description

12488

Build

The build folder is properly emptied between build runs.

53632

Crashes & Assertions » IDE Unhandled Exception

Report editor no longer crashes if you click an alignment button with no controls selected.

53708

Crashes & Assertions » IDE Unhandled Exception

Fixed 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.

53715

Crashes & Assertions » IDE Unhandled Exception

Shared external items in multiple open projects no longer result in NilObjectExceptions when clicking on search results.

53750

Crashes & Assertions » IDE Unhandled Exception

NilObjectException no longer occurs when backspacing quickly in the filter and there's a match in a menu bar sub-item.

53755

Crashes & Assertions » IDE Unhandled Exception

You can no longer paste an iOS control into a desktop project.

53801

Crashes & Assertions » IDE Unhandled Exception

Fixed a spurious NilObjectException.

53855

Crashes & Assertions » IDE Unhandled Exception

UnsupportedFormatExceptions no longer bring the IDE down when trying to relocate project files.

53896

Crashes & Assertions » IDE Unhandled Exception

No longer get an NOE when moving a control using the arrow keys in the report edior

53951

Crashes & Assertions » IDE Unhandled Exception

NilObjectException 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.

53607

Debugger

Remote debugging to Pi no longer randomly crashes when stopping on a breakpoint.

53832

Debugger

Doubles and single no longer show in scientific notation in the debugger.

53541

Framework

Pushbuttons with the Default property set to True are visible again.

53918

Framework » All

Console and web apps now also have the same stage code constants as desktop apps.

53990

Framework » All

Color.HSVA no longer ignores the alpha channel when the saturation value is 0.

7096

Framework » Linux

ComboBox.TextChanged event is now called properly on Linux.

50274

Framework » Linux

Xojo.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.

52747

Framework » Linux

Linux IDE: Using the Delete key in a TextField no longer deletes the selected control(s) on the layout editor.

54148

Framework » Linux

Returning True from HTMLViewer.CancelLoad now actually cancels loading the page.

53627

Framework » Macintosh (Cocoa)

Resized containers no longer require the use of ClearRect to clean up artifacts.

53941

Framework » 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.

54036

Framework » Macintosh (Cocoa)

Slider tracks no longer disappear when a window is resized in its Open event.

54046

Framework » Macintosh (Cocoa)

ClearRect no longer fills with the wrong color on macOS Mojave with Dark Mode disabled.

52802

Framework » Web

iOS is no longer slow to disconnect from a running web app.

53291

Framework » Web

Browsers who have been disconnected from the server will now reload the web app so they don't appear frozen.

47613

Framework » Windows

Xojo.Net.HTTPSocket can now connect securely with TLS 1.2 on Windows 7.

53050

Framework » Windows

Updated Screen class so extended screens report a virtualized left/top consistent with other platforms like macOS.

53604

Framework » Windows

Retrieving the clipboard text after TextArea.SelText was called now returns the correct text instead of being empty.

53728

Framework » Windows

Fixed the ListBox.DragRow selection being offset incorrectly if you had EnableDragReorder enabled but EnableDrag disabled.

53751

Framework » Windows

RectControl.DrawInto no longer causes flicker when drawing directly on screen.

53898

Framework » Windows

Label now matches previous vertical alignment behavior (i.e. it is no longer incorrectly offset vertically by a pixel).

53901

Framework » Windows

Checkbox.DrawInto no longer draws an aliased control at integral scale factors which caused the image to be blurry.

53922

Framework » Windows

Window.BitmapForCaching now raises an exception when passing an invalid height instead of just crashing.

53996

Framework » Windows

Listbox sort indicator now appears after a header click on Linux/Windows.

54091

Framework » Windows

Listbox 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.

54094

Framework » Windows

The background color of controls in a ContainerControl on a TabPanel no longer inherits the wrong parent's background color.

54283

Framework » Windows

Control.PanelIndex now correctly returns -1 when the control is not on a Tab/PagePanel for 64-bit Window builds.

53794

IDE

Popover editor for listbox contents uses the correct text color instead of explicitly black all the time

53931

IDE

Made 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.

53999

IDE

When starting Xojo, floating palettes for Inspector and Library restore back to the screen where they were last.

54069

IDE

Profiler row and text colors work in dark mode so the results are readable.

53737

IDE » Build Automation

Build steps items that are outside a build target are properly saved and restored when writing text format projects.

51226

IDE » Code Editor

Column position reported when at the end of code and pressing right arrow does not increase.

51228

IDE » Code Editor

Cleaner no longer drops characters from the cleaned line in some situations.

52872

IDE » Code Editor

Cut & 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.

53765

IDE » Code Editor

Copying code no longer inserts spaces.

53944

IDE » Database Editor

Columns are not longer defined with lengths as scientific notation.

54206

IDE » Database Editor

Schema editor no longer enables the delete column contextual item for db's that do not support drop column such as SQLite.

53854

IDE » Debugger

Alpha values on colors show up correctly in the debugger.

53095

IDE » Error & Warning Panel

Selecting the already active view style, by type or by location, in the errors panel does nothing.

53548

IDE » FileTypes Editor

File Type Set scrolling should behave a lot better.

53874

IDE » Find & Replace

No longer get a NilObjectException with certain kinds of searches.

54131

IDE » Find & Replace

Fixed a bug which prevented the IDE's Find menu from being immediately available.

54220

IDE » Find & Replace

Search and replace in external methods no longer mangles them.

53927

IDE » Image Editor

The text on selected lines of the image editor are no longer unreadable on macOS 10.14.

53539

IDE » Inspector

Inspector scrollbar hides and shows appropriately.

53677

IDE » Inspector

Inadvertent workflow change that occurred when adding overloaded methods has been fixed so there is no workflow change.

53709

IDE » Inspector

Can enter constants into MajorVersion, MinorVersion, BugVersion and NonReleaseVersion.

53710

IDE » Inspector

Can enter constant into NonReleaseVersion. However if you do this the automatic increment of the NonReleaseVersion value is disabled.

53772

IDE » Inspector

Inspector labels on Windows are not clipped with an ellipsis on the right side.

53785

IDE » Inspector

Autolayout editor buttons are no longer garbled.

54008

IDE » Inspector

Shift + Home and Shift + End work properly on Windows and Linux.

54052

IDE » Inspector

Overloading a method that returns an array sets up the call to the super correctly.

54173

IDE » Inspector

Inspector items with accessory editors now open as a sheet attached to the Inspector when it is a floating palette.

53766

IDE » Language Reference

The find field on the online language reference viewer looks correct again.

53895

IDE » Language Reference

LR no longer causes infinite loop due to redirects.

53911

IDE » Language Reference

Toolbar retains it user set display type.

53787

IDE » Layout Editor

Controls are no longer drawn clipped (when they really shouldn't be).

53788

IDE » Layout Editor

Timer and other tray controls no longer look so bizarre when using certain background colors for the Layout Editor pasteboard color.

54316

IDE » Layout Editor

WebPopupMenu now draws correctly in the layout editor when viewed on a HiDPI/Retina screen.

53825

IDE » Menu Editor

Menu editor has the correct background again.

53871

IDE » Menu Editor

Menubar menus now have the correct color when the user's accent color is not blue.

53734

IDE » Miscellaneous

An 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.

53781

IDE » Miscellaneous

Select Super dialog search field no longer has lines above and below.

53809

IDE » Miscellaneous

Separator appears as expected above Desktop entry in the Project Chooser.

53965

IDE » Miscellaneous

If you are in dark mode and print, then the default light mode colors are used for printing in color.

53319

IDE » Navigator

Scrolling Inspector at fractional DPI scale factors no longer leaves trailing graphical artifacts.

53676

IDE » Navigator

Using clause and event definitions in the Navigator are no longer black icons on a black background.

53797

IDE » Navigator

If 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.

54212

IDE » Navigator

The fill rect and frame are using the same coordinates when drawing the scope behind the row text.

52343

IDE » Scripting

Custom reformat is now called once on pasted code not once per line pasted.

53775

IDE » Scripting

IDE Script Editor now draws all the matching code block brackets.

53859

IDE » Style Editor

Web Style Editor State control is visible again.

54194

IDE » Xojo Cloud » Statistics

Xojo Cloud hosting statistics graphs now draw dark when the IDE is running in dark mode.

Changes (21 cases)

Case

Area

Description

51734

Compiler

Windows IDE can now successfully build large projects for Linux 64-bit and ARM targets.

54066

Database Plugins » SQLite

SQLite plugin has been updated to version 3.25.3.

21197

Framework » All

TextField input now respects user's locale when a Format is setup.

53658

Framework » All

Any remaining threads are now killed after the App.Close event.

53628

Framework » Macintosh (Cocoa)

Listbox now obeys the Transparent property on macOS.

42596

Framework » Windows

Xojo.Net.HTTPSocket is no longer limited to creating and firing events on the main thread.

51973

Framework » Windows

EnableMenuItems no longer fires needlessly on every keypress.

53830

IDE

Since analyze is platform specific the insertion of #pragma unused is now wrapped in a #if TargetXXXXX statement.

53883

IDE » Constant Editor

Reduced the thickness of the dark mode color picker frame and removed its inner shadow to make colors more distinct.

54026

IDE » FileIO

Made 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.

53287

IDE » Find & Replace

Search result icons distinguish between events , methods, and computed property getter / setters.

54017

IDE » Find & Replace

Special 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.

53906

IDE » Language Reference

Since the online LR has its own search field, the one in the IDE's built in browser is no longer needed.

54007

IDE » Navigator

Contextual 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.

53839

IDE » Preferences

Layout 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.

53843

IDE » Preferences

After caches are cleared, a MsgBox is displayed to indicate it finished.

54248

IDE » Rendering

The 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.

53362

Lingua

Lingua has been updated for Mojave's dark mode.

54000

Lingua

The constant label is now selectable.

53807

Miscellaneous

iOS ImageMaker has been updated for Dark Mode.

53363

Remote Debugger Stub

Remote Debugger Stub has been updated for Dark Mode on macOS.

New items (5 cases)

Case

Area

Description

54136

Compiler

iOS simulator/device builds now use the iOS 12.1 SDK.

53942

Framework

There are 2 new global constants (available for all project types) that can be used in #if statements and build scripts: AppSupportsDarkMode and AppSupportsHiDPI

53845

Framework » All

Added URLConnection class (as a replacement for Xojo.NET.HTTPSocket), see documentation for details.

53984

Framework » All

Added new Screen.ScaleFactor property.

48376

Framework » Macintosh (Cocoa)

Updated Xojo to use the macOS 10.14 SDK for 64-bit builds.

Docs and examples (11 cases)