2021r1

Xojo 2021 Release 1, with over 250 changes and improvements, was released on March 31st, 2021.

Also be sure to view 2021r1.1 Release Notes for improvements.

Major changes include:

  • Xojo IDE is now native on Apple Silicon Macs.

  • XojoScript now supported on Apple Silicon Macs.

  • macOS 11 SDK now used for both Intel and Apple Silicon builds.

  • iOS apps now use iOS SDK 14.

  • SF Symbol toolbar icons on Big Sur.

  • Graphics.Translate, Rotate, SaveState and RestoreState available in Desktop projects.

  • New WebLocation class.

  • New iOS UserAuthentication class.

  • Much faster JSON processing.

  • Many IDE improvements.

  • Worker improvements, including native Apple Silicon helper apps.

  • WebFileUploader optimized to improve speed, memory and CPU usage.

  • PDFGraphics improvements.

  • Numerous Code Editor and Autocomplete improvements.

  • SQLite updated to 3.34.1.

  • 172 bug fixes!

Bug fixes (175 cases)

Case

Area

Description

63020

Build

Building just a Universal app with Show Built apps in Finder/Explorer enabled in Preferences now displays the window with the Universal app selected, rather than the root build folder.

63183

Build

Fixed a timing issue that could sometimes prevent Worker Helpers from quitting themselves if their main app was terminated.

63729

Build

Using dot notation in Project Items to Include now properly includes all items, not just the top-level item.

63795

Build

The project now builds correctly if its Worker was removed after the project had been previously built with the Worker.

63813

Build

Selecting a compile error from the Errors pane in a project that has a Worker now properly takes you to the code item in the project.

53702

Crashes & Assertions » Crash

Adding a class or module to a project and immediately undoing that add now clears the command bar.

63400

Crashes & Assertions » Crash

Fixed a crash which occurred when pasting text into the code editor on Windows and the last word in the pasted text matched and autocomplete phrase.

63465

Crashes & Assertions » Crash

Reduce possibility of a NilObjectException when handling a button press in WebMessageDialog.

63495

Crashes & Assertions » Crash

Using a dual color ColorGroup on macOS < 10.14 no longer crashes.

63396

Crashes & Assertions » Failed Assertion

Fixed a crash when toggling off a breakpoint.

59142

Crashes & Assertions » IDE Unhandled Exception

Project items can no longer be named any of the 24 reserved MS-DOS filenames: AUX, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, COM0, CON, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, LPT0, NUL, PRN

62554

Crashes & Assertions » IDE Unhandled Exception

Trying to edit a string in the debugger no longer crashes the IDE if one of the two fields needed for the editor couldn't be initialized.

63511

Crashes & Assertions » IDE Unhandled Exception

The IDE no longer crashes if a sound file on disk is deleted without removing it from the project and then the project is run or built.

63537

Crashes & Assertions » IDE Unhandled Exception

Fix a potential crash when bringing the IDE to the foreground.

63600

Crashes & Assertions » IDE Unhandled Exception

Fixed a potential crash when double-clicking the inline editing button on a control.

63945

Crashes & Assertions » IDE Unhandled Exception

Fixed a possible crash when Undoing to something that no longer exists.

64045

Crashes & Assertions » IDE Unhandled Exception

Prevent a NilObjectException that could occur in some circumstances when clearing internal caching.

60656

Database Plugins » MySQL

MySQLCommunityServer.BeginTransaction no longer raises a DatabaseException with syntax error.

63290

Database Plugins » PostgreSQL

Added PostgreSQLDatabase.Connect(additionalOptions As String). This function throws an exception on error.

64145

Database Plugins » SQLite

After an invalid ExecuteSQL/SelectSQL raises an exception, subsequent valid calls no longer raises the same exception.

16022

Debugger

Window (Desktop) and MobileScreen (iOS) debugger contents list can now be sorted by name.

20124

Framework » All

RectControl.AcceptMacDataDrop is now marked as deprecated in the framework.

53073

Framework » All

JSONItem.Value now accepts values from Integer.ToText without erasing the JSONItem contents.

62134

Framework » All

PDFDocument.Graphics.FontAscent works now as expected without needing to draw some text if first place

62235

Framework » All

SMTPSecureSocket no longer produces deprecation warnings.

63071

Framework » All

Graphics.DrawPath: now throws a NilObjectException if path is Nil.

63085

Framework » All

Deprecated MemoryBlock.Short and UShort to Int16Value and UInt16Value respectively.

63154

Framework » All

Fixed a precision issue with currency values retrieved when iterating a RowSet.

63158

Framework » All

An array that exceeds 2GB of allocation space no longer crashes or causes corruption when assigning/retrieving values from it. While you can allocate more than 2GB of space now, you should check the bounds to make sure it got allocated properly. When using Redim/ResizeTo, the function will throw an OutOfMemoryException if the memory could not be allocated.

63185

Framework » All

Deprecated SelectFolder, use FolderItem.ShowSelectFolderDialog instead.

63207

Framework » All

Currency.FromString no longer raises a failed assertion when the string is incorrectly formatted for currency conversion.

63209

Framework » All

Do not allow a Worker to be added to a Window.

63227

Framework » All

Now FolderItem.Name keeps the old file name when the new one can 't be set.

63297

Framework » All

These previously deprecated items are now shown by Analyze Project: OpenPrinterDialog -> PrinterSettings.ShowPrinterDialog, OpenPrinter -> PrinterSettings.OpenPrinter, OpenURLMovie -> Movie.OpenURL, RGB -> Color.RGB

63334

Framework » All

Now supports Declares that references the same function that exists in multiple shared libraries.

63335

Framework » All

Marked SMTPSecureSocket.SMTPConnectionMode as deprecated with SMTPConnectionType as replacement. Changed PopupMenu.Text deprecation replacement to SelectRow.

63502

Framework » All

Soft Declares that reference the same function, that exists in multiple shared libraries, now works correctly.

63515

Framework » All

PDFDocument: Fixed X/Y coordinates so it takes into consideration the PenSize value when drawing Rectangles and Ovals.

63710

Framework » All

Changed the order of drawing in PDF Rectangle, so it produces the same output that when using the regular Graphics class with a LineDash pattern.

63749

Framework » All

Fixed PDFGraphics.DrawOval/FilledOval combined with a LineDash pattern.

Remarks: the output is approximated over the one we get using regular Graphics context when drawing a Circle instead of an Oval.

63797

Framework » All

XojoScript: added some missing Error enumeration values: UnresolvedTypeInExpression = 211 PairOperatorUnavailable = 212 ObjCDeclaresPlatform = 213 FunctionTooLong = 300 FunctionUsesTooMuchStackSpace = 301

63858

Framework » All

PDFDocument: Using Zapf Dingbats as the font now properly renders the text.

62326

Framework » Desktop

PDFDocument.TextWidth now returns the expected value for the selected font also on Web.

63046

Framework » Desktop

PDFDocument: Fixed the FontAscent and FontHeight values when a new FontSize is set.

63092

Framework » Desktop

PDFDocument: Fixed a bug where setting the FontName to System wasn't drawing the text.

63325

Framework » Desktop

Fixed returning TextHeight value when using the wrapwidth parameter (regression).

63593

Framework » Desktop

Linux: SaveFileDialog now correctly returns a FolderItem with the proper file extension appended to the name (according to the filter selected).

63639

Framework » Desktop

The SearchField.KeyUp and KeyDown events have been removed.

63640

Framework » Desktop

SearchField doesn 't fire the TextChanged event when it gets the first focus.

63766

Framework » Desktop

Removed KeyDown/KeyUp event handlers from SearchField on Desktop.

62995

Framework » Linux

When Normalize Control Size is enabled, non-Xojo windows are no longer incorrectly adjusted, especially GtkEntry widths.

63254

Framework » Linux

HTMLViewer now correctly triggers focus events when it gains/loses focus.

63522

Framework » Linux

With Normalize Control Sizes enabled, we no longer constantly probes theme changes. So a layout with many controls on the window no longer runs super slow.

63598

Framework » Linux

URLConnection: getting the ResponseHeader, after SendSync is called, no longer raises an Exception.

63650

Framework » Linux

FolderItem.Name only is set on Linux if there is not an already existing file with the same name.

61238

Framework » Web

Added WebListbox.Selected setter method.

61320

Framework » Web

WebUploadedFiles now have the mime type that was supplied by the user's OS/Browser.

61374

Framework » Web

WebListbox.Selected is available again.

61387

Framework » Web

Setting the WebListbox.SelectedRowIndex in the same event loop as adding the row data now works.

61510

Framework » Web

WebButton OK & Cancel events fired by the RETURN and ESC keys now only fire once.

61660

Framework » Web

favicon.ico no longer returns a 404 Not Found response to the browser.

61715

Framework » Web

Changing properties and adding/removing dataasets on a WebChart will now force the control to update.

61753

Framework » Web

The WebFileUploader logic has been refactored to make it faster, less CPU and memory intensive and less prone to errors.

61768

Framework » Web

WebDatePicker now automatically closes when the user chooses a date.

61825

Framework » Web

InitialValue property for WebComboBox, WebListBox, WebRadioGroup now shows the multi-line edit pencil icon to open the larger editor after a project has been saved and re-loaded.

61959

Framework » Web

WebRadioGroup: AddRow, AddRowAt, RowAt, RowCount, SelectedRow and SelectedRowIndex have been deprecated and replaced with Add, AddAt, ItemAt, Count, SelectedItem and SelectedIndex respectively to match other non-list control treatment.

61985

Framework » Web

Web GotFocus and LostFocus events now fire correctly for keyboard and mouse events.

61991

Framework » Web

Showing a WebDialog now refreshes all controls to make sure they are up to date.

62123

Framework » Web

WebListbox now refreshes properly when the container it is on becomes visible.

62407

Framework » Web

WebListbox.ColumnSortDirectionAt is now updated when the user clicks a header to change the sort order of a column. This change only applies to WebListboxes that are not connected to a datasource.

62602

Framework » Web

WebCombobox no longer shows HTML encoding of < > & ' and * in its text field when the item is selected from its menu.

62634

Framework » Web

WebPopupMenu.SelectedRowIndex and LastAddedRowIndex now have a value of -1 by default.

62694

Framework » Web

Web apps now do a better job of cleaning up their temporary directories between runs.

62799

Framework » Web

WebDatePicker now uses the correct date format for non-US browsers.

62828

Framework » Web

Setting the WebDatePicker's Enabled property to False at runtime will now prevent the popup from appearing as well.

62939

Framework » Web

WebComboBox.SelectedRowIndex now defaults to -1.

62964

Framework » Web

The WebSDK docs now include information about the javascript JSONItem class.

62992

Framework » Web

Web apps now do a better job of cleaning up their temporary files when the app quits.

63013

Framework » Web

WebComboBoxes which contain items no longer throw an OutOfBoundsException when setting the SelectedRowIndex to -1.

63023

Framework » Web

Fixed an issue where WebListbox.CellValueAt and CellTagAt was not throwing OutOfBoundsExceptions when the passed row or column index was greater than the number of rows or columns.

63043

Framework » Web

The web framework no longer chokes on requests > 64K.

63133

Framework » Web

Setting the value of a WebComboBox which has no menu no longer results in a javascript error.

63257

Framework » Web

WebListbox.RowTagAt (and other methods which retrieve row data) now return data from the correct row.

63293

Framework » Web

WebListbox.CellValueAt now stores data in the correct row when one of the columns is sorted in descending order.

63300

Framework » Web

Refactored the web refresh mechanism to make controls appear all at once instead of one at a time.

63397

Framework » Web

WebListbox.SelectionChanged now reports the correct selected items when using a datasource.

63407

Framework » Web

WebSegmentedButton segments can now be disabled.

63557

Framework » Web

Setting WebListbox.SelectedRowIndex now works properly.

63590

Framework » Web

WebImageViewers whose picture property is set to None no longer cause compiling to fail.

63681

Framework » Web

Reduced WebFileUploader upload traffic when the UploadProgressed event is not implemented.

63784

Framework » Web

ETag headers of web framework assets are now enclosed in quotes as suggested by the RFC.

63801

Framework » Web

WebListbox.SelectedRowIndex is now updated correctly when the user selects a row in a filtered list.

63924

Framework » Web

Web Framework now periodically cleans up temporary files.

64015

Framework » Web

Icons on WebToolbarButtons with menus attached are now vertically aligned with icons on the other types.

64192

Framework » Web

Non-framework requests with Expect headers are now passed through to HandleURL.

57324

Framework » Windows

WebKit-based HTMLViewer now respects the user's locale instead of always operating in the English locale.

63323

Framework » Windows

Windows now appear at the correct scale when opened on a different DPI scaled secondary display (especially if the secondary display was position to the right of the primary display).

63327

Framework » Windows

Drawing with LinearGradientBrush and RadialGradientBrush now respects the color's alpha channel.

63350

Framework » Windows

FolderItem.CopyTo exhibits now the same behavior on Windows that on macOS and Linux when copying a Directory to a destination FolderItem.

63479

Framework » Windows

HTMLViewer (WebKit): no longer steals focus when page loads, this also prevents unnecessarily activating a window.

63641

Framework » Windows

SearchField for Windows displays now the Hint or Text values in the Layout Editor.

37799

Framework » iOS » Mobile

Repeatedly playing sounds on iOS no longer crashes the app.

42008

Framework » iOS » Mobile

The iOS Sound Clone method now returns a valid sound object.

42106

Framework » iOS » Mobile

The iOS Sound class no longer leaks memory when a sound finishes playing.

62586

Framework » iOS » Mobile

Fixed some issues which prevented the iOS Associated Domains editor from working properly.

63148

Framework » iOS » Mobile

RGBSurface: fixed getting/setting pixel color.

63411

Framework » iOS » Mobile

System.Speak no longer crashes after ~150 uses.

63555

Framework » iOS » Mobile

3rd Party iOS Plugins no longer have badly formed CFBundleIdentifiers when generating their framework plist files.

63582

Framework » iOS » Mobile

The name Globals is no longer reserved.

63769

Framework » iOS » Mobile

iOS Plugins can now access some of the more useful legacy APIs such as REALGetControlBounds, REALGetControlVisible, REALSetControlVisible, REALGetControlEnabled, and REALSetControlEnabled.

63818

Framework » iOS » Mobile

MobileMoviePlayer.LoadURL now loads HTTP URLs correctly instead of only file URLs.

63911

Framework » iOS » Mobile

MobileTableCellData now has two new enum values, Info and InfoAndDisclosure, to replace the existing Detail item which unfortunately also shows the disclosure widget.

64062

Framework » iOS » Mobile

Graphics Width/Height now returns values that account for the base scale factor like on Desktop.

62540

Framework » macOS

FolderItem: CreationDateTime and ModificationDateTime now reports the correct DateTime instead of potentially being offset by daylight savings.

63383

Framework » macOS

LinearGradientBrush and RadialGradientBrush now fills the region before the start point on macOS like it already does on Windows and Linux.

63467

Framework » macOS

Changing a property on the ToolItem class no longer completely destroys the state of the previous item on macOS.

61492

IDE » Auto Complete

Web control instances now show their icons correctly in the code editor autocomplete menu.

62380

IDE » Auto Complete

Delegate methods no longer unconditionally match in autocomplete regardless of the typed prefix.

62382

IDE » Auto Complete

Recordset autocompletes in non-Mobile projects created before 2019r2 again.

62430

IDE » Auto Complete

Autocomplete works inside RaiseEvent calls again.

63011

IDE » Auto Complete

Prevent an exception that can occur in autocomplete when selecting an item in the list, dragging the mouse off the list and letting go of the mouse button.

63401

IDE » Auto Complete

Autocomplete now shows Enumerations on Classes that are inside Modules.

63574

IDE » Auto Complete

Local variables whose name matches that of an enum somewhere in the framework no longer autocomplete the values of the enum.

63690

IDE » Auto Complete

Autocomplete now works more consistently in the Method and Event parameters field.

63705

IDE » Auto Complete

The keyword Try now appears in the code editor autocomplete menu immediately after the keyword End.

63739

IDE » Auto Complete

The word Default will now appear in autocomplete on Pragma lines.

63830

IDE » Auto Complete

Exception variables autocomplete properly again.

63860

IDE » Auto Complete

The keywords Case Else now autocompletes properly.

62829

IDE » Build Automation

IDE Scripts can now build for both iOS device and simulator.

46019

IDE » Code Editor

The Wrap In refactorings now apply standard case if the “Autocomplete applies standard case” preference is checked.

56329

IDE » Code Editor

The Project->Breakpoint->Turn On/Off item is now enabled when debugging. This will toggle the breakpoint on the highlighted code execution line via the menu or shortcut.

57252

IDE » Code Editor

Fixed typo in Code Editor contextual menu: “Convert invisible ascii characters” now says ASCII.

57770

IDE » Code Editor

Better calculate gutter line number width so that it doesn't cause the gutter width to fluctuate when a proportional font is used.

60865

IDE » Code Editor

Refactored how the code editor's contextual help menu chooses which item to show in the language reference so things we have which are common to multiple classes still point to the correct items.

61001

IDE » Code Editor

Use consistent naming and case for Code Editor contextual menu for Add/Clear Breakpoint and Add/Clear Bookmark.

60807

IDE » FileIO

The IDE now does a better job of informing the user about license changes and allowing you to back out of a save if saving will change the file format.

63139

IDE » FileIO

Improved places where text format projects were flipping boolean values between having quotes and not.

63828

IDE » FileIO

MobileContainer project items are now saved properly for XML projects.

63782

IDE » Find & Replace

Search & Replace no longer corrupts the declaration of Properties when the text being replaced is in the code editor that appears in the main editing area.

59050

IDE » Inspector

When setting the name of a property, if the name contains parenthesis indicating it is to be an array property, the Default Value field is now disabled and cleared.

61424

IDE » Inspector

The text color of the Event Definition parameters field is now correct when the system is in Dark Mode on macOS.

62819

IDE » Inspector

Inspector bevel button icons are colored correctly again.

62905

IDE » Inspector

MobileApplication Inspector now shows Default iPhone/iPad Layout instead of Screen.

62974

IDE » Inspector

In both the Layout Editor and at runtime, dynamic constants used for WebTabPanel tab captions now display the constant's value rather than showing the constant name.

63003

IDE » Inspector

Fixed an exception that could occur if the user put a control on an iOS layout and then changed its Super to iOSContainerControl.

63536

IDE » Inspector

Control set indexes can no longer be set to invalid values.

63422

IDE » Language Reference

The Windows IDE no longer shows URLs which point to the reveal user's temporary folder in a browser.

54784

IDE » Layout Editor

The layout editor now does a better job of aligning text controls on the text baseline on macOS.

61485

IDE » Layout Editor

WebSegmentedControl now draws its selected segment in the IDE.

62221

IDE » Layout Editor

Duplicating a Web control now sets the TabIndex correctly.

62243

IDE » Layout Editor

Duplicating WebControls now increments tab indexes.

64129

IDE » Layout Editor

Slider now resizes for vertical orientation in the Layout Editor when height is greater than width.

52953

IDE » Library

Icons in the library are no longer blurry when dragging the window between low and hi dpi screens.

56302

IDE » Library

Library group headers no longer show the New Subclass contextual menu.

62676

IDE » Library

Library icons now correctly switch between dark and light mode.

63121

IDE » Licensing

IDE no longer invalidates the license when macOS is upgraded.

57309

IDE » Menu Editor

Looking up dynamic constant values to display in the IDE (in menus, iOS controls) when project build Language is Default is now more reliable.

57884

IDE » Miscellaneous

IDE Crash Recovery works again.

61554

IDE » Miscellaneous

Windows System Tray item shows IDE version again.

62273

IDE » Miscellaneous

Code editor hint for DateTime.ToString is now correct.

63056

IDE » Miscellaneous

Pressing Return on License Agreement window should now always trigger Accept.

63315

IDE » Miscellaneous

Fixed a DateTimePicker control bug where it lead to a crash of the IDE under macOS 10.14, when removed from the layout and, then, the user changed the Time Format between 12/24 hours mode in the System Preferences.

63458

IDE » Miscellaneous

Prevent a duplicate separator from appearing in the Insert menu with desktop projects on Windows.

63468

IDE » Miscellaneous

If a dynamic constant is used for the App Name, then use its value as the debugger tab name when the project changes rather than the constant name itself.

63472

IDE » Miscellaneous

Display localized App name when building so that proper name is displayed when a constant is used for the app name.

63664

IDE » Miscellaneous

When copying a method or property from the IDE to paste as text outside the IDE, the “as” for the return type of the method or data type of the property is now upper case to match the rest of the code formatting.

63821

IDE » Miscellaneous

Fixed an infinite loop/crash that could occur when using New Subclass on a control that has a subclass that no longer exists.

56136

IDE » Navigator

Prevent an IDE crash that can sometimes occur when a project item (usually in a folder or module) that can be displayed in the Library is moved, renamed or deleted.

58092

IDE » Navigator

Create a proper HiDPI picture for the Navigator drag picture for items that belong to a project item, such as methods, properties or controls.

61360

IDE » Navigator

Dragging a WebDialog in the Navigator no longer shows an oversized drag image.

61418

IDE » Navigator

WebChart, WebImageViewer and WebLocation control instances now have the correct icons in the navigator.

63087

IDE » Navigator

Apple .m4a audio files are now correctly rendered as sound objects instead of MemoryBlocks.

63153

IDE » Navigator

WebSession.ConfirmMessage, DisconnectMessage and InterruptMessage no longer raise an exception if the values set in the Inspector contain newline/returns.

62508

IDE » Refactoring Tools

PreparedSQLStatement: SQLExecute and SQLSelect are now properly reported as deprecated when analyzing the project.

63450

IDE » Rendering

File Type Groups now render correctly in iOS projects.

Changes (26 cases)

Case

Area

Description

59842

Build

Removed 32-bit macOS frameworks from the IDE.

63295

Database Plugins » SQLite

SQLite has been updated to 3.34.0

63706

Database Plugins » SQLite

The SQLiteDatabase.ShortColumnNames property is now deprecated.

50469

Framework » All

Added NetworkInterface.Name that identifies the human readable name of the interface adapter.

60818

Framework » All

Added JSONItem.LastRowIndex

62505

Framework » All

Added Graphics.Outline property for drawing Text outlines instead of being filled.

63086

Framework » All

JSONItem now uses dictionaries and ParseJSON and GenerateJSON under the hood.

63333

Framework » All

JSONItem now uses ParseJSON and GenerateJSON under the hood.

63365

Framework » All

Calling PDFDocument.AddFonts is not needed anymore in order to use any font installed in the System.

63393

Framework » All

Increased contrast on the DateTimePicker when displayed in graphic mode on macOS, so the selected date is more visible against the background in DarkMode.

63491

Framework » All

Improved paragraph interline in PDFDocument at any font size.

63605

Framework » All

MenuItem.Enable has been deprecated with a replacement of MenuItem.Enabled.

63823

Framework » All

JSONItem Names, NameAt and HasName have been deprecated in lieu of Keys, KeyAt and HasKey respectively.

63768

Framework » Desktop

Added PDFGraphics.Outline to PDFDocument so it can render text in outline mode.

63792

Framework » Desktop

Added PDFGraphics.ClipToRectangle to PDFDocument to provide the same behaviour found in the regular Graphics class.

63204

Framework » Web

Setting WebDatePicker.SelectedDate to Nil will now clear the field.

63219

Framework » iOS » Mobile

MobileLocation now raises an event when the authorization state changes.

63239

Framework » iOS » Mobile

The iOS Sound class now has a Handle method which returns the underlying AVAudioPlayer object.

63260

Framework » iOS » Mobile

Added System.FontCount, System.LastFontIndex and System.FontAt for iOS.

8555

Framework » macOS

Toolbar.Handle on macOS now returns an NSToolbar object pointer instead of returning 0.

63414

Framework » macOS

Toolbars on macOS Big Sur are now in the Expanded style by default to better match previous behavior.

64126

IDE

iOS apps now build against the iOS 14.4 SDK.

62682

IDE » Build Automation

CopyFiles build steps with a destination of Framework now copies those files into the Frameworks directory on iOS.

63497

IDE » Menu Shortcut Editor

Some menu cleanup: * Removed incorrect Insert->Module M shortcut from user Menu Editor. * Added Insert->Worker so it appears in user Menu Editor. * Added Shortcut for Project->Breakpoint->Ignore All (Opt/Alt + Cmd/Ctrl + Shift + \) * Added Shortcut for Insert->Computed Property (Opt/Alt + Cmd/Ctrl + Shift + P)

63622

IDE » Navigator

When converting a property to a computed property, holding down the SHIFT key will cause only the getter to be implemented, effectively making the property read-only.

63841

Installer

macOS DMG background and application folder now use the updated icon.

New items (24 cases)

Case

Area

Description

63065

Build

When building macOS projects that contain a Worker, ARM builds now include ARM worker helpers and Universal builds now include Universal worker helpers.

63501

Build Process (GoCD)

IDE is now built as a Universal Binary on macOS.

62804

Compiler

XojoScript is now supported for macOS arm64 builds.

22602

Framework » All

Graphics: ClipToRectangle, Translate, Rotate, SaveState and RestoreState are now available for Desktop/Console apps. ClipToPath now works for Desktop apps. Also added Scale method for Desktop/Console/iOS that affects the current transformation matrix.

55434

Framework » All

JSONItem now supports arrays when directly converting from a Dictionary.

62795

Framework » All

Added multiple page sizes for PDFDocument, so now it is possible creating a PDF document composed with several pages of different sizes, using for that the overloaded method NextPage(w As Integer, h As Integer).

63258

Framework » All

Added ToData() As MemoryBlock method on PDFDocument class, so the user can retrieve the PDF document contents.

63384

Framework » Desktop

GotFocus/LostFocus events implemented for SearchField control on Desktop.

63385

Framework » Desktop

GotFocus/LostFocus events implemented for DateTimePicker control on Desktop.

63245

Framework » Mobile

Added MobileApplication.BuildDateTime

63253

Framework » Web

Added WebLocation control.

63299

Framework » Web

Added a command line parameter named urllength which allows you to increase the maximum length of a request URL from the default of 256 with a hard limit of 2048 bytes.

62521

Framework » iOS » Mobile

JSONItem is now available in iOS projects.

63228

Framework » iOS » Mobile

Added UserAuthentication class to iOS framework for biometric authentication.

64063

Framework » iOS » Mobile

iOSMobileTable.Formats now has a third value called InsetGrouped which adds support for UITableViewStyleInsetGrouped on iOS 13 and above. Earlier versions of iOS will still use the value for Grouped.

63500

Framework » macOS

System.FontCount and System.FontAt on macOS now include font family members.

59400

IDE » Code Editor

The ReformatCode script context has four new methods: - LoadDate() as String which returns a SQLDateTime of when the script was last loaded - SetStoredValue(key as String, Value as Boolean/Double/Integer/String) which stores a value which persists across script runs and reloads. - GetStoredValue(key as String, DefaultValue as Boolean/Double/Integer/String) as Boolean/Double/Integer/String which retrieves a stored value. - ClearStoredValues() which clears the persistent data store.

63542

IDE » Code Editor

In the Code Editor, the error indicator is given priority over the warning indicator when a line has both and error and a warning. In addition, the Code Editor error icon now matches the icon used in the Error panel.

63716

IDE » FileIO

The IDE now follows Windows shortcuts when loading plugins.

63358

IDE » Inspector

Worker ProjectItemsToInclude can now be separated by spaces and commas (in addition to EndOfLine that was already supported). Duplicate entries and extra spaces are now ignored.

63340

IDE » Layout Editor

Inline text editor now selects all text when it is initially opened.

27289

IDE » Miscellaneous

Added Project->Back and Forward menu items to match toolbar and allow shortcut keys (Cmd/Ctrl-[ and Cmd/Ctrl-]).

63554

IDE » Miscellaneous

New console projects now automatically have the App.Run event added.

63037

IDE » Navigator

The macOS target is no longer selectable for building on Windows & Linux.

Docs and examples (54 cases)

Case

Area

Description

63324

Documentation » User's Guide

On UserGuide:Printing page, updated Graphics.StringHeight to use TextHeight.

63405

Documentation » User's Guide

All references to CGI web apps and the CGI template have been removed.

61709

Examples

Eddie's Electronics desktop app now catches a KeyNotFoundException that can occur if an invalid MapBox token is provided.

62087

Examples

Added exception handling to iOS URLConnection example project.

62818

Examples

Fixed a bug in the PictureResizer example project which only manifested on double-byte systems.

63291

Examples

Example Project for iOS showing how to use System.FontCount, System.LastFontIndex and System.FontAt on iOS, including text preview with the selected font and size.

63355

Examples

Improved WordCounter Worker example so that it only accepts text files and added additional text files to increase processing load for a better demo.

54284

Language Reference » Documentation

Updated SegmentedButton sample code for resizing the control and its segments.

62095

Language Reference » Documentation

The sample code was fixed to use ExitCode instead of ErrorCode.

62798

Language Reference » Documentation

Deprecated iOSSQLiteDatabase in the Language Reference.

62812

Language Reference » Documentation

Updated Arrays doc page with new methods for Add, AddAt, RemoveAt, RemoveAll, LastIndex, FirstIndex.

62831

Language Reference » Documentation

Added more examples to MobileToolbarButton.Constructor page.

62844

Language Reference » Documentation

Added missing iOS Graphics methods to docs: ClipToPath, ClipToRectangle, Rotate, RestoreState, SaveState, Translate.

62876

Language Reference » Documentation

Updated Arrays doc page to indicate that the array methods Count, FirstIndex, IndexOf and LastIndex all technically return Int32.

62899

Language Reference » Documentation

Clarified DeviceData and System.Device doc pages.

62980

Language Reference » Documentation

Updated UserGuide:Collections_of_Data page to use new array methods and fixed a type of “ReVar” to be “ResizeTo”.

62997

Language Reference » Documentation

Graphics.Transparency page now indicates it works with desktop, web and console projects.

63094

Language Reference » Documentation

Fixed See Also links on JSONItem page.

63101

Language Reference » Documentation

Added missing parameter to WebPopupMenu.SelectionChanged event page and fixed example code.

63179

Language Reference » Documentation

Fixed examples on PrinterSetup.OpenPrinter.

63248

Language Reference » Documentation

Added PopupMenu.SelectedRow page as replacement for SelectedRowValue, which was previously deprecated.

63249

Language Reference » Documentation

Fixed deprecation link on Application.SleepCurrentThread page.

63298

Language Reference » Documentation

Fixed sample code on PrinterSetup.Settings doc page.

63304

Language Reference » Documentation

Added copy Constructors for Date and DateTime to DateTime language reference page.

63338

Language Reference » Documentation

Cleaned up incorrect mentions of String.Join in docs, which should instead be String.FromArray.

63344

Language Reference » Documentation

Updated MobileTextField.BorderStyle with a note to indicate that any BorderStyle other than Rounded makes the TextField content background transparent.

63367

Language Reference » Documentation

Fixed a couple typos in the sample code on the SMTPSecureSocket page.

63415

Language Reference » Documentation

StyledTextPrinter throws now an UnsuportedOperationException on Windows.

63428

Language Reference » Documentation

MediaWiki cannot handle the / character as a page link, so the / (division) links now go to a page called Division.

63433

Language Reference » Documentation

The documentation for SSLSocket now includes the methods EndOfFile, Flush, Read and Write as it supports the Readable and Writable interfaces and they are apart of those interfaces.

63459

Language Reference » Documentation

Updated Report.Run page to not use deprecated methods.

63471

Language Reference » Documentation

Updated TextUnit pages on PushButton, ListBox, BevelButton to indicate it is now deprecated for FontUnit.

63478

Language Reference » Documentation

Label doc page updated to use Text property instead of deprecated Value property.

63499

Language Reference » Documentation

WebLink.URL page no longer mentions MouseUp event which is not available in Web 2.0.

63581

Language Reference » Documentation

The WebHTMLViewer page now has an entry to the Print method in the Methods section.

63585

Language Reference » Documentation

Clarified what gets called with Return True and Return False on MouseDown event page.

63586

Language Reference » Documentation

Graphics.DrawRectangle page now refers to points rather than pixels in sample code.

63587

Language Reference » Documentation

Graphics.DrawOval page now uses PenSize property.

63588

Language Reference » Documentation

Graphics.PenHeight doc page marked as deprecated.

63599

Language Reference » Documentation

The Integer.FromString code example has been updated to catch the appropriate exception (InvalidArgumentException).

63671

Language Reference » Documentation

Updated UserGuide:Conditional Compilation page to use TargetWindows instead of deprecated TargetWin32.

63672

Language Reference » Documentation

Fixed link to User Guide on Window.Type doc page.

63753

Language Reference » Documentation

Added Text and Auto data types as de-emphasized on Deprecations page.

63804

Language Reference » Documentation

Removed unnecessary ColumnType table from ListBox.ColumnsWidths doc topic.

63906

Language Reference » Documentation

Fixed typo in name on ListBox.SelectedRowCount page.

63937

Language Reference » Documentation

Fixed a leftover usage of Dim on the Var doc page.

63946

Language Reference » Documentation

TextEdit.Format page now links to ValidationMask page.

63947

Language Reference » Documentation

ListBox.ActiveTextControl description now mentions both TextArea and TextField.

63986

Language Reference » Documentation

SQLiteDatabase now says it's available for iOS in the Language Reference.

64000

Language Reference » Documentation

Color.FillColor is now documented as Desktop only.

64032

Language Reference » Documentation

Fixed documentation for WebApplication.SessionTimeout.

64041

Language Reference » Documentation

The TrayItem Action Event example code has been fixed so that it now compiles.

64095

Language Reference » Documentation

Updated sample code on Window.KeyDown page to fix typo.

64096

Language Reference » Documentation

Fixed link to UserGuide:Image Set Editor on Picture doc page.