2021r2

Xojo 2021 Release 2, with over 240 changes and improvements, was released on July 22nd, 2021.

Notable changes include:

  • iOS PDFDocument support.

  • Xojo Cloud Remote Notification server for iOS notifications.

  • Binary Enumeration Editor

  • ColorGroups in desktop and web projects.

  • Faster text project saving with fewer files marked as having changes.

  • PDFDocument additions: Rotate, Translate, Scale.

  • Code Editor improvements, including IDE line number settings, better row highlighting and improved drawing and performance.

  • Linux IDE layout improvements.

  • Lots of bug fixes.

Bug fixes (179 cases)

Case

Area

Description

64615

Build

macOS ad-hoc signing is no longer applied if the app has already been signed (which could happen in a post-build script).

59157

Compiler

Compiler now reports deprecation warning for Variant.TypeDate with replacement Variant.TypeDateTime.

64334

Crashes & Assertions » Crash

Fixed a potential crash when loading or saving a project.

64874

Crashes & Assertions » Crash

Plugin Control objects no longer get incorrectly unlocked twice when they are being destructed from the IDE layout.

64818

Crashes & Assertions » Failed Assertion

Linux: Assigning a multi-resolution Picture to DragItem.DragPicture no longer fails with a failed assertion.

54072

Crashes & Assertions » IDE Unhandled Exception

Prevent a NilObjectException that could sometimes occur when using Undo.

55422

Crashes & Assertions » IDE Unhandled Exception

There was an attempt to fix a NilObjectException that can sometimes occur when dragging items in the Layout Editor.

55545

Crashes & Assertions » IDE Unhandled Exception

Prevent a NilObjectException that could sometimes occur when selecting items in the Layout Editor.

55610

Crashes & Assertions » IDE Unhandled Exception

Fixed a RuntimeException that could occur when trying to view large Currency values in the Debugger.

55644

Crashes & Assertions » IDE Unhandled Exception

Prevent an exception that could occur when naming a Delegate with the name of a superclass method.

55862

Crashes & Assertions » IDE Unhandled Exception

Fixed a NilObjectException that can sometimes occur when importing a large number of project items at one time.

56615

Crashes & Assertions » IDE Unhandled Exception

Prevent a NilObjectException that can occur when Undoing (Edit->Undo) the creation of a method in a module and then Redoing (Edit->Redo) the creation of the module and method.

56824

Crashes & Assertions » IDE Unhandled Exception

Prevent a NilObjectException that can occur when clicking on an Analysis Warning result in the Errors pane for an encrypted class.

57392

Crashes & Assertions » IDE Unhandled Exception

When saving a text project, skip saving UI state file if it is locked by the file system rather than raising a NilObjectException and preventing the save.

57925

Crashes & Assertions » IDE Unhandled Exception

Go To <property> contextual menu on project items now works.

58061

Crashes & Assertions » IDE Unhandled Exception

There was an attempt to fix a NilObjectException that could sometimes occur on desktop project load when processing menus.

58121

Crashes & Assertions » IDE Unhandled Exception

There was an attempt to fix a NilObjectException that can sometimes occur after using the multi-line editor from the Constant Inspector.

58618

Crashes & Assertions » IDE Unhandled Exception

The Implement Interface window no longer causes a NilObjectException on an external item that has an invalid interface on it.

59470

Crashes & Assertions » IDE Unhandled Exception

There was an attempt to gracefully deal with NilObject situations when the Debugger is stopping.

62265

Crashes & Assertions » IDE Unhandled Exception

Fixed a potential crash when Cutting or Deleting an item in the Navigator that may have already been deleted in another Tab.

63827

Crashes & Assertions » IDE Unhandled Exception

IDE will no longer crash if it can't find the correct row to show in the Navigator.

63851

Crashes & Assertions » IDE Unhandled Exception

Better catch NilObjectExceptions so that IDE does not crash sometimes when removing controls that belong to a control set and are nested in another control.

63948

Crashes & Assertions » IDE Unhandled Exception

Instead of crashing, the IDE now shows an error if the compiler version doesn't match the IDE for some reason.

64085

Crashes & Assertions » IDE Unhandled Exception

Fixed a regression which caused super returns to crash the IDE.

64157

Crashes & Assertions » IDE Unhandled Exception

Display an error when a default iPhone or iPad layout is not specified on the App object. In certain situations this could cause have previously caused an IDE exception.

64248

Crashes & Assertions » IDE Unhandled Exception

Before downloading a Xojo update to a temp file, delete the temp file if it exists to prevent a NilObjectException that can occur.

64300

Crashes & Assertions » IDE Unhandled Exception

Fixed a potential crash if an IDE window is moved and then quickly closed.

64589

Crashes & Assertions » IDE Unhandled Exception

Fixed a potential crash.

64734

Crashes & Assertions » IDE Unhandled Exception

Sharing WebContainers between projects via XML no longer crashes the IDE.

64736

Crashes & Assertions » IDE Unhandled Exception

The IDE no longer crashes if you quickly click the Replace and/or Replace All buttons on the Search pane.

64909

Crashes & Assertions » IDE Unhandled Exception

Fixed a potential crash when search results include lines at the end of an IDE script, those lines are deleted and then the project is saved.

64954

Crashes & Assertions » IDE Unhandled Exception

The IDE no longer crashes if an item is visible and disclosed in more than one tab and then moved to a new location in one of the tabs.

65145

Crashes & Assertions » IDE Unhandled Exception

Canceling a build should no longer crash the IDE.

64075

Database Engine

PostgreSQLDatabase: updated libpq client library to 13.0 which supports the new SCRAM authentication method with channel binding.

61466

Database Plugins » ODBC

ODBCDatabase: Deprecated methods with replacements that return RowSets - PrimaryKeys => TablePrimaryKeys - ForeignKeys => TableForeignKeys - SpecialColumns => TableSpecialColumns - TablePrivileges => Privileges(table As String) - ColumnPrivileges => Privileges(table As String, column As String) - Procedures => StoredProcedures - ProcedureColumns => StoredProcedureColumns

63781

Database Plugins » SQLite

Database: Calling SaveRow without initiating an EditRow now raises a DatabaseException.

61659

Framework » All

TextArea: CharacterPosition, LineNumber, and InsertionPosition now respects the UnicodeMode setting (especially the Characters mode).

64147

Framework » All

Removed TextArea.Save, Open, SetTextAndStyle methods and TextStyleDate properties as they have been deprecated since 2003 and Save/Open no longer work on newer versions of macOS.

64167

Framework » All

Color.FromValue now returns the correct color if the alpha portion of the hex string is greater than 7F.

64252

Framework » All

Deprecated RuntimeException.Reason property.

64253

Framework » All

Deprecated Xojo.Core.ErrorException.

64256

Framework » All

Deprecated Xojo namespace exceptions.

64456

Framework » All

GenerateJSON no longer leaks objects/memory, this affected JSONItem as well.

64478

Framework » All

FolderItem.CreationDate and ModificationDate are now deprecated, use CreationDateTime and ModificationDateTime instead.

64492

Framework » All

Application.ShortVersion is now marked as deprecated, reflecting what was already in the documentation.

64496

Framework » All

Application/ConsoleApplication: LongVersion is now marked as deprecated.

64497

Framework » All

Application/ConsoleApplication: PackageInfo is now marked as deprecated.

64642

Framework » All

String.Compare no longer leaks Xojo.Core.Locale objects.

63205

Framework » Desktop

Native HTMLViewer.DocumentProgressChanged event now correctly reports the amount of progress instead of always 0.

63819

Framework » Desktop

Canvas.DrawInto no longer triggers multiple Paint events, on the source Canvas, unnecessarily.

63825

Framework » Desktop

DoubleClick event no longer fires again upon a quick third click.

63976

Framework » Desktop

Default values for Double parameters (DrawPicture, DrawObject, DrawText) are now Doubles themselves so that they don't cause a loss of precision warning for those that have that warning enabled.

64101

Framework » Desktop

On macOS Big Sur, the Slider widget is no longer cropped at the top.

64539

Framework » Desktop

DesktopColorPicker should no longer raise exceptions when closed.

64591

Framework » Desktop

SegmentedButton: clearing the SelectedSegmentIndex (i.e. setting it to -1) now properly clears any selected segments.

64596

Framework » Desktop

Linux: Controls in TabPanels are no longer incorrectly resized when Normalize Control Sizes is enabled.

64605

Framework » Desktop

Fixed a bug where SearchField Action event was firing twice on Windows.

65064

Framework » Desktop

Windows: Fixed potential silent crashes when comparing strings with different encodings.

55540

Framework » Linux

PushButton.Action event no longer fires twice when pressing SPACE to push the button.

61515

Framework » Web

WebTextField and WebTextArea no longer ignore recent user text changes when they lose focus.

61536

Framework » Web

Runtime position changes of web controls are no longer reset by the framework once the Opening event fires.

61967

Framework » Web

WebTextFields can now be changed between types at runtime.

61976

Framework » Web

Disabling a WebComboBox now actually disables the control.

62222

Framework » Web

WebListbox header visibility and captions can now be set at runtime.

63312

Framework » Web

WebListbox.DoublePressed fires correctly now.

63552

Framework » Web

LostFocus events in controls contained in WebContainers added at runtime now fire correctly.

63623

Framework » Web

WebPopupMenus placed close to a WebToolbar no longer have their menu obscured by the toolbar.

63656

Framework » Web

Accessing the URL of a session-specific WebFile without a WebSession currently in context will now throw a SessionNotAvailableException.

63817

Framework » Web

The WebPagePanel.PanelChanged event now fires when the panel is changed.

63936

Framework » Web

WebMessageDialog will now respond to presses of the SPACE bar if one of the buttons has focus.

64220

Framework » Web

WebButton.Default can now be turned off at runtime.

64320

Framework » Web

WebApplication.HandleURL will now respond correctly to and properly close the socket if the incoming request was HTTP/1.0.

64387

Framework » Web

The current focused control no longer gets lost when a WebContainer is embedded at runtime.

64401

Framework » Web

No longer encode ampersands in the value and hint properties of WebCombobox.

64409

Framework » Web

WebListbox.ReloadData now sets the SelectedRowIndex to -1 and raises the SelectionChanged event if necessary.

64514

Framework » Web

Both WebTabPanel and WebPagePanel pages in the documentation indicate that embedding them in themselves or each other is not supported.

64521

Framework » Web

WebListbox.CellValueAt no longer causes the list to scroll back to the top.

64531

Framework » Web

WebListbox no longer selects the next row when double-clicking an already selected row.

64545

Framework » Web

The Pressed Events on WebImageView and WebCanvas work again on browsers and devices which support multiple simultaneous input devices.

64552

Framework » Web

Fixed a race condition in the web framework which caused uploaded files to be truncated depending on how busy the server app was.

64648

Framework » Web

Calling App.Quit in a web application works again.

64716

Framework » Web

Fixed an issue which prevented the HandleRequest event from firing on WebSDK controls.

64740

Framework » Web

Using WebResponse.File no longer returns a 404 error regardless of what the code in App.HandleURL does. WebRequest.File has been deprecated.

64742

Framework » Web

WebThread.UserInterfaceUpdate now has the correct session context initialized.

64840

Framework » Web

The web framework will now throw App.UnhandledException for JSON encoding issues and log those errors to the IDE console.

64879

Framework » Web

WebPagePanel now fires its PanelChanged event when the SelectedPanelIndex property is changed.

64964

Framework » Web

Fixed a number of issues with WebListbox.

64985

Framework » Web

Calling the Quit method in the WebApplication.Opening event no longer raises an NilObjectException.

65134

Framework » Web

WebListbox Rows with no text are now the same height as a row with text.

17732

Framework » Windows

PopupMenu/ComboBox Change event no longer fires needlessly if the ListIndex doesn 't change, except for a special case for ComboBoxes when the text changes (this now more closely mimics macOS behavior).

28386

Framework » Windows

Native HTMLViewer.DocumentProgressChanged event's URL parameter is now correctly reported instead of always being an empty string.

63572

Framework » Windows

Window: Modifying the Left/Top of an MDI client window no longer incorrectly positions the window when in a multiple-monitor setup.

63730

Framework » Windows

Double.ToString no longer throws deprecated Xojo.Core.InvalidArgumentExceptions.

64069

Framework » Windows

HTMLViewer: no longer crashes if the HTMLViewer isn't setup yet. For example, trying to GoBack while the HTMLViewer object is still being constructed no longer crashes now.

64935

Framework » Windows

WebKit based HTMLViewer.DocumentProgressChanged event now gets invoked when the progress changes.

62542

Framework » iOS » Mobile

GetTypeInfo can now properly cast to Introspection.TypeInfo.

62595

Framework » iOS » Mobile

MobileScreen: Destructor is no longer triggered when the object goes out of scope right after Show/ShowModal/PushTo is called. The object now lives on until the MobileScreen is actually closed (just like Desktop Windows do).

62683

Framework » iOS » Mobile

Updated iOSMobileTable.CreateCustomCell definition to take an Introspection.TypeInfo instead of the deprecated Xojo.Introspection.TypeInfo

63603

Framework » iOS » Mobile

iOSApplication.HandleURL is now called even if the app wasn 't already running.

64004

Framework » iOS » Mobile

XmlDocument.SaveXML and XmlReader.Parse no longer crashes.

64254

Framework » iOS » Mobile

The default MobileDatePicker on iOS 13.4+ works like earlier versions again.

64508

Framework » iOS » Mobile

MobileScreen.Closing no longer fires when the view is just going to the background.

64519

Framework » iOS » Mobile

Creating a MobileToolbarButton with a Type of Done and a custom caption or icon works again.

64547

Framework » iOS » Mobile

MobileTableCellData.Handle no longer returns Nil for standard table cells created by iOSMobileTable.CreateCell.

64568

Framework » iOS » Mobile

Picture.CopyOSHandle now preserves the scale of the picture when the new UIImage is created.

64577

Framework » iOS » Mobile

Display Sharing Panel tray icon (instead of generic icon) when MobileSharingPanel is dragged onto a screen layout.

64618

Framework » iOS » Mobile

A modal MobileScreen is now properly closed/destructed when swiped to close.

64629

Framework » iOS » Mobile

Fixed various objects leaking when MobileScreen is closed.

64715

Framework » iOS » Mobile

iOSMobileTable no longer leaks objects/memory.

64718

Framework » iOS » Mobile

No longer leaks a MobileToolbarButton object when a toolbar button is pressed.

64802

Framework » iOS » Mobile

Avoid a potential NilObjectException in the MobileNotifications callbacks when using notifications created outside of the Xojo Framework. This will mean that the framework will simply not attempt to handle the notifications in this case.

44840

Framework » macOS

Set Slider on Mac to vertical mode when it is created with height > width.

62020

Framework » macOS

TextArea.SelectAll now selects all the text, even with emojis present.

64706

Framework » macOS

FolderItem.Open can open document files again that have their executable bit set.

64758

Framework » macOS

DesktopColorPicker no longer throws NilObjectExceptions on macOS when another control capable of receiving color changes gets focus.

64948

Framework » macOS

Fixed a bug in Picture.ToData on macOS when the instance source file is a PDF, so it returns now a MemoryBlock instead of throwing a UnsupportedOperation exception.

33815

IDE » Auto Complete

Autocomplete now correctly updates local variables when cutting and pasting code.

40977

IDE » Auto Complete

Autocomplete no longer shows methods when the item is a class but not an instance.

57126

IDE » Auto Complete

The AutoComplete popup no longer prevents the IDE from quitting on macOS.

58887

IDE » Auto Complete

The keyword ‘As ' now autocompletes on array variable declaration lines.

50552

IDE » AutoLayout

A Super Return in the code editor for a For loop now autocompletes the loop variable as well.

64323

IDE » Build Automation

Build errors specific to Universal builds now get sent to the IDECommunicator if one is connected.

56073

IDE » Code Editor

Code folding box now uses a roundrect and block indicator line also now has a more subtle highlight when the mouse is in the code block to minimize distractions and make things look cleaner. Code folding highlight now turns off when cursor moves to gutter to match other behavior. Code folding click box area is more accurate.

62757

IDE » Code Editor

AutoComplete menu no longer appears when there are no items in the list.

63523

IDE » Code Editor

When you have selected text in the Code Editor and press an arrow key (by itself) you now get the same behavior seen in every other text editor: left arrow goes to start of selection, right arrow goes to end of selection, up arrow goes to line before the start of the selection, down arrow goes to line after the end of the selection.

63822

IDE » Code Editor

Invisible character cleaner now handles ASCII character 127 DEL.

63879

IDE » Code Editor

Code Editor syntax area column position now takes indentation into account.

64087

IDE » Code Editor

Fixed an issue which caused code editors with lines long enough to require a horizontal scrollbar to do their first paint incorrectly.

64088

IDE » Code Editor

Doing a super return with the selection inside the text of a line now moves the selection to the beginning of the line before inserting the completion code so the resulting code still compiles.

64279

IDE » Code Editor

Fixed an issue which caused the code editor to refresh incorrectly whenever a new code item was loaded.

64326

IDE » Code Editor

The keyword Selector is now capitalized when Standardize Format is enabled.

58988

IDE » Constant Editor

Undo/Redo for Constants in project items now works.

36242

IDE » Debugger

There was an attempt to fix a Debugger exception that can occur when the variable list is reloaded when stepping through code in more complex projects.

63800

IDE » Error & Warning Panel

When selecting an error concerning missing control events, the project now navigates to the event instead of the containing view.

63657

IDE » FileIO

Line endings of version control individual project files are now retained between opening and saving.

64687

IDE » FileIO

Color Groups now save properly to XML file format.

64688

IDE » FileIO

Worker project items are now saved in XML Project files.

64762

IDE » FileTypes Editor

Changes to File Type Groups now undo properly.

56248

IDE » Find & Replace

Fixed an exception that could occur when using search pane right-click menu on search results that refer to deleted code lines.

56288

IDE » Find & Replace

When replacing search results in an Attribute, prevent a NilObjectException that could occur.

60189

IDE » Find & Replace

Replacing the text within the declaration of a property no longer resets its scope to Public the first time.

63201

IDE » Find & Replace

Closing a document or hiding the search panel will now stop any running searches.

63913

IDE » Find & Replace

Searching for a single character in a large project no longer hangs the IDE.

63968

IDE » Find & Replace

Changing the Search Results list sort from ascending to descending and then doing a replace on multiple source code results no longer causes the replaced text to mess up the code.

64008

IDE » Graphics

Navigator MenuBar icon is now correct on HiDPI screens.

57384

IDE » Inspector

The text in the Method return type field now stays large after the field has lost focus.

63861

IDE » Inspector

The Compatibility Flags editor no longer presents incorrect information about the way the flags are set for a particular class.

64162

IDE » Inspector

The labels on the iOSCapabilities editor are no longer unnecessarily shortened.

64766

IDE » Inspector

Fixed an issue which caused the Make External method to be available for folders when it shouldn 't be.

64579

IDE » Language Reference

Fixed a place where a browser could be told to open an non http language reference page.

60149

IDE » Layout Editor

Control guides on WebTabPanels and WebPagePanels no longer bleed through to all pages.

64124

IDE » Layout Editor

Position locks of controls on the non-visible pages of a WebPagePanel or WebTabPanel no longer appear in the layout editor.

64424

IDE » Layout Editor

The IDE no longer crashes when loading the icon for web controls whose super no longer exists in the project.

64120

IDE » Menu Shortcut Editor

Custom menu key maps are now stored in a central location so IDEs going forward will be able to access them.

29598

IDE » Miscellaneous

Do not attempt to send breakpoints to the debug app if it was terminated just as the debugger itself is starting up, which ought to prevent a Debugger NilObjectException.

54464

IDE » Miscellaneous

Build window icon is now updated properly each time you build a new project.

59515

IDE » Miscellaneous

Fixed a NilObjectException that could occur when turning Ignore Breakpoints ON/OFF when you have multiple IDE workspace windows open.

63259

IDE » Miscellaneous

Overriding system class defaults works again.

64118

IDE » Miscellaneous

When an unhandled exception is caught by the IDE and it displays the “Send a Report” dialog, the IDE now always terminates itself instead of sometimes trying to do a normal Quit which could result in an unsaved changes prompt that could allow a possibly corrupt project to be saved.

64297

IDE » Miscellaneous

Fixed View->Next Bottom Pane/Previous Bottom Pane shortcuts for Windows.

64763

IDE » Miscellaneous

XML project format now preserves the Linux Normalize Control Sizes build property.

55178

IDE » Navigator

Undoing the creation of a class containing methods and then recreating it through Redo will no longer crashes when recreating the methods.

62917

IDE » Navigator

Prevent a NilObjectException that could occur when deleting a Folder within a Folder that is open in a tab.

63857

IDE » Navigator

Clear Navigator Filter when it has focus and ESC is pressed.

64012

IDE » Navigator

The IDE no longer fails to find a location if the autocomplete menu was used in the Go To Location dialog and an item was found that was a subset of other items in the list.

64161

IDE » Navigator

Prevent an IDE exception that can sometimes occur when moving project items in a Navigator that is open in a tab.

64341

IDE » Navigator

Fixed a regression which made it impossible to create code-only subclasses of MobileContainer for use as the super of other MobileContainers.

64599

IDE » Navigator

MenuBar icons render correctly in the navigator again.

64269

IDE » Preferences

Removed shortcut on Project->Breakpoints->Clear All on Windows.

63853

IDE » Refactoring Tools

Compatibility Flags are now copied when a subclass is created directly from a class in the Navigator.

64522

IDE » Rendering

IDE now resolves the Linux application name if it is set to a constant when generating the appicon resources.

64226

IDE » Script Editor

IDE Build Script Step Editor no longer reverts saved changes if you save very quickly after making a change.

63884

IDE » Scripting

The IDE Scripting command RunScript now also looks in {UserHome}/Documents/Xojo/IDE/Scripts for scripts to run.

64770

IDE » Scripting

The IDE Scripting CurrentBuildLocation constant now points to the correct location when building as macOS Universal.

64889

IDE » Scripting

Running the “DirtyAllProjectItems” IDE Script command and then clicking the Cancel button on the progress dialog no longer leaves the IDE in a bad state.

64702

Plugin SDK

String.Middle and String.MiddleBytes declarations are now accessible to Plugins.

64839

Plugin SDK

Plugins can now dynamically access Color module methods using REALLoadFrameworkMethod with function prototypes such as “Color.FillColor() As Color”

56393

Remote Debugger Stub

Linux ARM console remote debugger stub's name now has the correct case.

64738

Remote Debugger Stub

64-bit Remote Debugger Stub now works correctly on Windows ARM (with x64 emulation support).

Changes (41 cases)

Case

Area

Description

64328

Build

When nothing is specified for the Project Items to Include property, nothing is copied to the Worker Helper. Previously all applicable classes and modules were copied. If you still want to include everything, *IncludeAllClassesAndModules* can be entered (by itself) in Project Items to Include and everything will get copied over.

62943

Build Pipeline (IDE)

For macOS Universal Builds, pre-build steps now only run once before the build process and post-build steps now only run once after the build process. A new constant has been added named CurrentBuildTargetIsUniversal which will only be set to True for a macOS Universal build.

59572

Framework » All

Now Trim can take a ParamArray parameter. All the characters/words received in the ParamArray parameter will be trimmed from both sides of the source string.

63211

Framework » All

Added EndOfLine.Native as a Shared Property to make it easier to use with String extension methods like Length.

64024

Framework » All

Added Rotate, Translate and Scale to the Graphic context of PDFDocument.

64876

Framework » All

Adding the following methods so the user can add several kind of annotations / actions to the PDFDocument:

AddAnnotation(value As String, x As Integer, y As Integer)

Adds the received value as a regular annotation in the specified coordinates of the current PDF page.

AddLinkArea(URL As String, x As Integer, y As Integer, width As Integer, height As Integer) Adds an external link (URL) to the specified area of the current page. The link will be open by the user's default browser when clicked.

AddGoToPage(page As Integer, x As Integer, y As Integer, width As Integer, height As Integer, Optional x1 As Integer, Optional y1 As Integer) Adds an active region to the current PDF document page that, once clicked by the user, allows to go to the specified PDF document page. The optional x1 and y1 parameters set the target region to display (this is dependant on the PDF viewer app).

AddLinkToPDFArea(File as FolderItem, x As Integer, y As Integer, width As Integer, height As Integer) This method allows the user to add a region in the current PDF document that, when clicked by the user, will open the external PDF file pointed by the File parameter.

64903

Framework » All

Added the ability to set the document and PDF viewer app behaviour in PDFDocument. Added the ability to set transition styles to individual PDFDocument pages, so it is possible to create presentations in PDF format.

64963

Framework » All

Now TrimRight and TrimLeft can take a ParamArray parameter. All the characters/words received in the ParamArray parameter will be trimmed from the start (TrimLeft) or end (TrimRight) of the source string.

60150

Framework » Web

Added support for Captions on WebTextArea.

62836

Framework » Web

WebChart now uses the user's localization settings to format numbers.

64398

Framework » Web

Added a field to set the progress message for slow loading lists.

65007

Framework » Web

WebListBox now raises an UnsupportedOperationException when trying to change the ColumnCount after the Opening event.

62231

Framework » iOS » Mobile

The iOS Shortcut Item editor icon now accepts a comma delimited list of SFSymbols, UIApplicationShortcutIconTypes and/or images from your project.

64316

Framework » iOS » Mobile

PointerEvent now has a Handle method.

64476

Framework » iOS » Mobile

NotificationCenter now has methods and matching events for getting a list of notifications that have been and/or will be delivered to your app.

64518

Framework » iOS » Mobile

Added MobileToolbarItem.FromHandle for creating toolbar items using declares.

64110

Framework » macOS

On macOS, desktop apps now listen for the NSWorkspaceAccessibilityDisplayOptionsDidChange Notification and fire the AppearanceChanged event accordingly.

14861

IDE » Code Editor

Clicking on the line number in the Code Editor gutter now selects the entire line.

46721

IDE » Code Editor

It is now possible to copy method signature at the top of the code editor by right-clicking on it and choosing Copy signature.

56051

IDE » Code Editor

When using the automatic line continuation capability in the Code Editor (Option-Return on macOS and CTRL-Return on Windows/Linux), the IDE now checks to see if you are in the middle of a string and will automatically close the string and add * + _* before the line end and an opening quote at the beginning of the new line. You can also add the SHIFT key to this combination and it will add a call to EndOfLine.

63815

IDE » Code Editor

The code editor can now clean invisible characters from the entire current code item if there is no selection.

63869

IDE » Code Editor

When line numbers are being shown in the Code Editor, highlight the current cursor position in the gutter.

63880

IDE » Code Editor

Line/Column in syntax area now always shows text cursor (caret) position.

63932

IDE » Code Editor

The Code Editor now only updates the Syntax Help and code block indicators when the mouse has stopped moving for 150ms. In addition, when drag-selecting text the Syntax Help is no longer updated as that is not really useful.

64057

IDE » Code Editor

Doing a super-return for a for-next loop will now add the loop element after the word Next.

61744

IDE » FileIO

Updated how the IDE tracks which items in a project have actually been changed to optimize text project saving.

63834

IDE » FileIO

Properties of controls on layouts in XML files are now written in alphabetical order to avoid unnecessary changes in version control systems.

64780

IDE » FileIO

Recent Items menu now shows project type icons and an updated appearance when there are duplicates in different folders.

64733

IDE » Find & Replace

The search pane now allows the use of the spacebar to open the history & options menus and to fire the Replace and Replace All buttons.

64164

IDE » Inspector

Fixed entitlement implementation for Data Protection and Wallet(previously Passbook). The In-App Purchase option has been removed at this time because it was not working under the hood.

64664

IDE » Inspector

In the Inspector Behavior editor, double-clicking a user-defined header now lets you edit the name. Clearing the name when editing will now delete the header.

64665

IDE » Inspector

Items in the Inspector Behavior editor enumeration list can now be reordered.

62270

IDE » Library

3rd party plugin controls no longer appear in the library in the Built-In controls section.

61827

IDE » Miscellaneous

Fixed a few items that were not previously undoable.

62051

IDE » Miscellaneous

Search fields throughout the IDE have been updated to the native search field introduced in 2020r2.

63846

IDE » Miscellaneous

The Goto Location window can now be used to jump to a specific code line number. Specify a code item, a # and a line number, such as MyWindow.MyMethod#50, to go to line 50 in MyWindow.MyMethod. If a Code Editor is open, then you can specify just a line number in the Goto Location window to jump to that line of code.

64498

IDE » Rendering

When building for macOS or iOS, user defined minimum system versions in an imported plist's key-values can now be used to increase the minimum supported system.

63088

IDE » Xojo Cloud

Xojo Cloud servers can now act as an iOS Remote Notification server for connecting to the Apple Remote Notification service.

9581

Remote Debugger Stub

Desktop Remote Debugger Stub on Windows can now be minimized to the System Tray.

64040

Remote Debugger Stub

The error message when the IDE can't find a Remote Debugger Stub is now less cryptic and easier to understand.

64502

XojoScript

The IDE Scripting command SaveText no longer crashes the IDE if an invalid path is provided.

New items (6 cases)

Case

Area

Description

63684

Framework » All

Added a Binary option to Enumerations that are included in Modules.

64213

Framework » iOS » Mobile

Creation of PDF documents on iOS.

Fonts handling is restricted to the PDF Standard14 subset.

62053

IDE » Inspector

ColorGroups are now available in Desktop and Web projects.

52190

IDE » Preferences

Added an IDE Coding Preference to display line numbers in the Code Editor gutter. Removed the toggle button that used to do this from the various code editors as they now all will display line numbers based on the preference setting.

64149

IDE » Profiler

Added a SaveProfile method which immediately saves profile information to help users whose apps are terminating abnormally.

64869

IDE » Scripting

Code item descriptions can now be accessed in IDE Scripts using the ItemDescription getter/setter methods.

Docs and examples (21 cases)

Case

Area

Description

64557

Documentation » Miscellaneous

The iOS Addendum content has been updated and is now included in the Intro to Programming Guide PDF.

64428

Documentation » User's Guide

Updated UserGuide:Lingua topic to use the Localized Strings phrasing instead of Dynamic Constants.

64286

Examples

CanvasDragRect example no longer uses deprecated Realbasic.Rect class.

64383

Examples

Fixed an issue with the TitleTimer in the TabbedWebBrowser example project.

64626

Examples

Updated JSONTree example to use KeyAt() method instead of deprecated NameAt() method.

64914

Examples

Fixed the issue. Also removed use of some API 1.0 methods.

64123

Language Reference » Documentation

On the PopupMenu doc page, the SelectRowWithValue tooltip now correctly shows the parameter type as String.

64165

Language Reference » Documentation

Docs for Slider.AllowLiveScrolling have been updated to indicate the Linux (GTK3) does not provide a way to turn off live scrolling.

64235

Language Reference » Documentation

JSONItem language reference page no longer excludes iOS.

64241

Language Reference » Documentation

TextArea.StyledTextPrinter now indicates it is only supported on Mac.

64244

Language Reference » Documentation

JSONItem.Value is once again documented on the JSONIitem page.

64305

Language Reference » Documentation

Removed platform-specific header from Graphics page.

64307

Language Reference » Documentation

Graphics.Scale page now indicates it is available for all project types.

64389

Language Reference » Documentation

On Size page, fixed link to Constructor(Width as Double,Height as Double).

64515

Language Reference » Documentation

TextOutputStream.Encoding property no longer shows as read-only in the docs.

64574

Language Reference » Documentation

Fixed code formatting problem on PictureBrush.Mode page.

64684

Language Reference » Documentation

String.ReplaceLineEndings parameter name has been changed to reflect that the replacement does not need to be a line ending character.

64886

Language Reference » Documentation

Canvas.ScaleFactor has been documented.

65010

Language Reference » Documentation

Added a note to the documentation to say that JSONItem.EscapeSlashes has no effect in 2021r1 or later.

65014

Language Reference » Documentation

Updated doc example on BinaryStream for API 2.

65107

Language Reference » Documentation

A typo in a ListBox code sample has been fixed.