2021r1 Release Notes

From Xojo Documentation

You are currently browsing the old Xojo documentation site. Please visit the new Xojo documentation site!

Xojo 2021 Release 1 is now available with over 250 changes and improvements. 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!

Release Notes

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.