Resources

2021r2 Release Notes

From Xojo Documentation

Xojo 2021 Release 2 is now available with over 240 changes and improvements.

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.

Release Notes

Bug Fixes

64615BuildmacOS ad-hoc signing is no longer applied if the app has already been signed (which could happen in a post-build script).
59157CompilerCompiler now reports deprecation warning for Variant.TypeDate with replacement Variant.TypeDateTime.
64334Crashes & Assertions » CrashFixed a potential crash when loading or saving a project.
64874Crashes & Assertions » CrashPlugin Control objects no longer get incorrectly unlocked twice when they are being destructed from the IDE layout.
64818Crashes & Assertions » Failed AssertionLinux: Assigning a multi-resolution Picture to DragItem.DragPicture no longer fails with a failed assertion.
54072Crashes & Assertions » IDE Unhandled ExceptionPrevent a NilObjectException that could sometimes occur when using Undo.
55422Crashes & Assertions » IDE Unhandled ExceptionThere was an attempt to fix a NilObjectException that can sometimes occur when dragging items in the Layout Editor.
55545Crashes & Assertions » IDE Unhandled ExceptionPrevent a NilObjectException that could sometimes occur when selecting items in the Layout Editor.
55610Crashes & Assertions » IDE Unhandled ExceptionFixed a RuntimeException that could occur when trying to view large Currency values in the Debugger.
55644Crashes & Assertions » IDE Unhandled ExceptionPrevent an exception that could occur when naming a Delegate with the name of a superclass method.
55862Crashes & Assertions » IDE Unhandled ExceptionFixed a NilObjectException that can sometimes occur when importing a large number of project items at one time.
56615Crashes & Assertions » IDE Unhandled ExceptionPrevent 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.
56824Crashes & Assertions » IDE Unhandled ExceptionPrevent a NilObjectException that can occur when clicking on an Analysis Warning result in the Errors pane for an encrypted class.
57392Crashes & Assertions » IDE Unhandled ExceptionWhen 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.
57925Crashes & Assertions » IDE Unhandled ExceptionGo To <property> contextual menu on project items now works.
58061Crashes & Assertions » IDE Unhandled ExceptionThere was an attempt to fix a NilObjectException that could sometimes occur on desktop project load when processing menus.
58121Crashes & Assertions » IDE Unhandled ExceptionThere was an attempt to fix a NilObjectException that can sometimes occur after using the multi-line editor from the Constant Inspector.
58618Crashes & Assertions » IDE Unhandled ExceptionThe Implement Interface window no longer causes a NilObjectException on an external item that has an invalid interface on it.
59470Crashes & Assertions » IDE Unhandled ExceptionThere was an attempt to gracefully deal with NilObject situations when the Debugger is stopping.
62265Crashes & Assertions » IDE Unhandled ExceptionFixed a potential crash when Cutting or Deleting an item in the Navigator that may have already been deleted in another Tab.
63827Crashes & Assertions » IDE Unhandled ExceptionIDE will no longer crash if it can't find the correct row to show in the Navigator.
63851Crashes & Assertions » IDE Unhandled ExceptionBetter catch NilObjectExceptions so that IDE does not crash sometimes when removing controls that belong to a control set and are nested in another control.
63948Crashes & Assertions » IDE Unhandled ExceptionInstead of crashing, the IDE now shows an error if the compiler version doesn't match the IDE for some reason.
64085Crashes & Assertions » IDE Unhandled ExceptionFixed a regression which caused super returns to crash the IDE.
64157Crashes & Assertions » IDE Unhandled ExceptionDisplay 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.
64248Crashes & Assertions » IDE Unhandled ExceptionBefore downloading a Xojo update to a temp file, delete the temp file if it exists to prevent a NilObjectException that can occur.
64300Crashes & Assertions » IDE Unhandled ExceptionFixed a potential crash if an IDE window is moved and then quickly closed.
64589Crashes & Assertions » IDE Unhandled ExceptionFixed a potential crash.
64734Crashes & Assertions » IDE Unhandled ExceptionSharing WebContainers between projects via XML no longer crashes the IDE.
64736Crashes & Assertions » IDE Unhandled ExceptionThe IDE no longer crashes if you quickly click the Replace and/or Replace All buttons on the Search pane.
64909Crashes & Assertions » IDE Unhandled ExceptionFixed 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.
64954Crashes & Assertions » IDE Unhandled ExceptionThe 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.
65145Crashes & Assertions » IDE Unhandled ExceptionCanceling a build should no longer crash the IDE.
64075Database EnginePostgreSQLDatabase: updated libpq client library to 13.0 which supports the new SCRAM authentication method with channel binding.
61466Database Plugins » ODBCODBCDatabase: 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
63781Database Plugins » SQLiteDatabase: Calling SaveRow without initiating an EditRow now raises a DatabaseException.
61659Framework » AllTextArea: CharacterPosition, LineNumber, and InsertionPosition now respects the UnicodeMode setting (especially the Characters mode).
64147Framework » AllRemoved 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.
64167Framework » AllColor.FromValue now returns the correct color if the alpha portion of the hex string is greater than 7F.
64252Framework » AllDeprecated RuntimeException.Reason property.
64253Framework » AllDeprecated Xojo.Core.ErrorException.
64256Framework » AllDeprecated Xojo namespace exceptions.
64456Framework » AllGenerateJSON no longer leaks objects/memory, this affected JSONItem as well.
64478Framework » AllFolderItem.CreationDate and ModificationDate are now deprecated, use CreationDateTime and ModificationDateTime instead.
64492Framework » AllApplication.ShortVersion is now marked as deprecated, reflecting what was already in the documentation.
64496Framework » AllApplication/ConsoleApplication: LongVersion is now marked as deprecated.
64497Framework » AllApplication/ConsoleApplication: PackageInfo is now marked as deprecated.
64642Framework » AllString.Compare no longer leaks Xojo.Core.Locale objects.
63205Framework » DesktopNative HTMLViewer.DocumentProgressChanged event now correctly reports the amount of progress instead of always 0.
63819Framework » DesktopCanvas.DrawInto no longer triggers multiple Paint events, on the source Canvas, unnecessarily.
63825Framework » DesktopDoubleClick event no longer fires again upon a quick third click.
63976Framework » DesktopDefault 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.
64101Framework » DesktopOn macOS Big Sur, the Slider widget is no longer cropped at the top.
64539Framework » DesktopDesktopColorPicker should no longer raise exceptions when closed.
64591Framework » DesktopSegmentedButton: clearing the SelectedSegmentIndex (i.e. setting it to -1) now properly clears any selected segments.
64596Framework » DesktopLinux: Controls in TabPanels are no longer incorrectly resized when Normalize Control Sizes is enabled.
64605Framework » DesktopFixed a bug where SearchField Action event was firing twice on Windows.
65064Framework » DesktopWindows: Fixed potential silent crashes when comparing strings with different encodings.
55540Framework » LinuxPushButton.Action event no longer fires twice when pressing SPACE to push the button.
61515Framework » WebWebTextField and WebTextArea no longer ignore recent user text changes when they lose focus.
61536Framework » WebRuntime position changes of web controls are no longer reset by the framework once the Opening event fires.
61967Framework » WebWebTextFields can now be changed between types at runtime.
61976Framework » WebDisabling a WebComboBox now actually disables the control.
62222Framework » WebWebListbox header visibility and captions can now be set at runtime.
63312Framework » WebWebListbox.DoublePressed fires correctly now.
63552Framework » WebLostFocus events in controls contained in WebContainers added at runtime now fire correctly.
63623Framework » WebWebPopupMenus placed close to a WebToolbar no longer have their menu obscured by the toolbar.
63656Framework » WebAccessing the URL of a session-specific WebFile without a WebSession currently in context will now throw a SessionNotAvailableException.
63817Framework » WebThe WebPagePanel.PanelChanged event now fires when the panel is changed.
63936Framework » WebWebMessageDialog will now respond to presses of the SPACE bar if one of the buttons has focus.
64220Framework » WebWebButton.Default can now be turned off at runtime.
64320Framework » WebWebApplication.HandleURL will now respond correctly to and properly close the socket if the incoming request was HTTP/1.0.
64387Framework » WebThe current focused control no longer gets lost when a WebContainer is embedded at runtime.
64401Framework » WebNo longer encode ampersands in the value and hint properties of WebCombobox.
64409Framework » WebWebListbox.ReloadData now sets the SelectedRowIndex to -1 and raises the SelectionChanged event if necessary.
64514Framework » WebBoth WebTabPanel and WebPagePanel pages in the documentation indicate that embedding them in themselves or each other is not supported.
64521Framework » WebWebListbox.CellValueAt no longer causes the list to scroll back to the top.
64531Framework » WebWebListbox no longer selects the next row when double-clicking an already selected row.
64545Framework » WebThe Pressed Events on WebImageView and WebCanvas work again on browsers and devices which support multiple simultaneous input devices.
64552Framework » WebFixed a race condition in the web framework which caused uploaded files to be truncated depending on how busy the server app was.
64648Framework » WebCalling App.Quit in a web application works again.
64716Framework » WebFixed an issue which prevented the HandleRequest event from firing on WebSDK controls.
64740Framework » WebUsing WebResponse.File no longer returns a 404 error regardless of what the code in App.HandleURL does. WebRequest.File has been deprecated.
64742Framework » WebWebThread.UserInterfaceUpdate now has the correct session context initialized.
64840Framework » WebThe web framework will now throw App.UnhandledException for JSON encoding issues and log those errors to the IDE console.
64879Framework » WebWebPagePanel now fires its PanelChanged event when the SelectedPanelIndex property is changed.
64964Framework » WebFixed a number of issues with WebListbox.
64985Framework » WebCalling the Quit method in the WebApplication.Opening event no longer raises an NilObjectException.
65134Framework » WebWebListbox Rows with no text are now the same height as a row with text.
17732Framework » WindowsPopupMenu/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).
28386Framework » WindowsNative HTMLViewer.DocumentProgressChanged event's URL parameter is now correctly reported instead of always being an empty string.
63572Framework » WindowsWindow: Modifying the Left/Top of an MDI client window no longer incorrectly positions the window when in a multiple-monitor setup.
63730Framework » WindowsDouble.ToString no longer throws deprecated Xojo.Core.InvalidArgumentExceptions.
64069Framework » WindowsHTMLViewer: 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.
64935Framework » WindowsWebKit based HTMLViewer.DocumentProgressChanged event now gets invoked when the progress changes.
62542Framework » iOS » MobileGetTypeInfo can now properly cast to Introspection.TypeInfo.
62595Framework » iOS » MobileMobileScreen: 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).
62683Framework » iOS » MobileUpdated iOSMobileTable.CreateCustomCell definition to take an Introspection.TypeInfo instead of the deprecated Xojo.Introspection.TypeInfo
63603Framework » iOS » MobileiOSApplication.HandleURL is now called even if the app wasn’t already running.
64004Framework » iOS » MobileXmlDocument.SaveXML and XmlReader.Parse no longer crashes.
64254Framework » iOS » MobileThe default MobileDatePicker on iOS 13.4+ works like earlier versions again.
64508Framework » iOS » MobileMobileScreen.Closing no longer fires when the view is just going to the background.
64519Framework » iOS » MobileCreating a MobileToolbarButton with a Type of Done and a custom caption or icon works again.
64547Framework » iOS » MobileMobileTableCellData.Handle no longer returns Nil for standard table cells created by iOSMobileTable.CreateCell.
64568Framework » iOS » MobilePicture.CopyOSHandle now preserves the scale of the picture when the new UIImage is created.
64577Framework » iOS » MobileDisplay Sharing Panel tray icon (instead of generic icon) when MobileSharingPanel is dragged onto a screen layout.
64618Framework » iOS » MobileA modal MobileScreen is now properly closed/destructed when swiped to close.
64629Framework » iOS » MobileFixed various objects leaking when MobileScreen is closed.
64715Framework » iOS » MobileiOSMobileTable no longer leaks objects/memory.
64718Framework » iOS » MobileNo longer leaks a MobileToolbarButton object when a toolbar button is pressed.
64802Framework » iOS » MobileAvoid 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.
44840Framework » macOSSet Slider on Mac to vertical mode when it is created with height > width.
62020Framework » macOSTextArea.SelectAll now selects all the text, even with emojis present.
64706Framework » macOSFolderItem.Open can open document files again that have their executable bit set.
64758Framework » macOSDesktopColorPicker no longer throws NilObjectExceptions on macOS when another control capable of receiving color changes gets focus.
64948Framework » macOSFixed 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.
33815IDE » Auto CompleteAutocomplete now correctly updates local variables when cutting and pasting code.
40977IDE » Auto CompleteAutocomplete no longer shows methods when the item is a class but not an instance.
57126IDE » Auto CompleteThe AutoComplete popup no longer prevents the IDE from quitting on macOS.
58887IDE » Auto CompleteThe keyword ‘As’ now autocompletes on array variable declaration lines.
50552IDE » AutoLayoutA Super Return in the code editor for a For loop now autocompletes the loop variable as well.
64323IDE » Build AutomationBuild errors specific to Universal builds now get sent to the IDECommunicator if one is connected.
56073IDE » Code EditorCode 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.
62757IDE » Code EditorAutoComplete menu no longer appears when there are no items in the list.
63523IDE » Code EditorWhen 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.
63822IDE » Code EditorInvisible character cleaner now handles ASCII character 127 DEL.
63879IDE » Code EditorCode Editor syntax area column position now takes indentation into account.
64087IDE » Code EditorFixed an issue which caused code editors with lines long enough to require a horizontal scrollbar to do their first paint incorrectly.
64088IDE » Code EditorDoing 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.
64279IDE » Code EditorFixed an issue which caused the code editor to refresh incorrectly whenever a new code item was loaded.
64326IDE » Code EditorThe keyword Selector is now capitalized when Standardize Format is enabled.
58988IDE » Constant EditorUndo/Redo for Constants in project items now works.
36242IDE » DebuggerThere 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.
63800IDE » Error & Warning PanelWhen selecting an error concerning missing control events, the project now navigates to the event instead of the containing view.
63657IDE » FileIOLine endings of version control individual project files are now retained between opening and saving.
64687IDE » FileIOColor Groups now save properly to XML file format.
64688IDE » FileIOWorker project items are now saved in XML Project files.
64762IDE » FileTypes EditorChanges to File Type Groups now undo properly.
56248IDE » Find & ReplaceFixed an exception that could occur when using search pane right-click menu on search results that refer to deleted code lines.
56288IDE » Find & ReplaceWhen replacing search results in an Attribute, prevent a NilObjectException that could occur.
60189IDE » Find & ReplaceReplacing the text within the declaration of a property no longer resets its scope to Public the first time.
63201IDE » Find & ReplaceClosing a document or hiding the search panel will now stop any running searches.
63913IDE » Find & ReplaceSearching for a single character in a large project no longer hangs the IDE.
63968IDE » Find & ReplaceChanging 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.
64008IDE » GraphicsNavigator MenuBar icon is now correct on HiDPI screens.
57384IDE » InspectorThe text in the Method return type field now stays large after the field has lost focus.
63861IDE » InspectorThe Compatibility Flags editor no longer presents incorrect information about the way the flags are set for a particular class.
64162IDE » InspectorThe labels on the iOSCapabilities editor are no longer unnecessarily shortened.
64766IDE » InspectorFixed an issue which caused the Make External method to be available for folders when it shouldn’t be.
64579IDE » Language ReferenceFixed a place where a browser could be told to open an non http language reference page.
60149IDE » Layout EditorControl guides on WebTabPanels and WebPagePanels no longer bleed through to all pages.
64124IDE » Layout EditorPosition locks of controls on the non-visible pages of a WebPagePanel or WebTabPanel no longer appear in the layout editor.
64424IDE » Layout EditorThe IDE no longer crashes when loading the icon for web controls whose super no longer exists in the project.
64120IDE » Menu Shortcut EditorCustom menu key maps are now stored in a central location so IDEs going forward will be able to access them.
29598IDE » MiscellaneousDo 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.
54464IDE » MiscellaneousBuild window icon is now updated properly each time you build a new project.
59515IDE » MiscellaneousFixed a NilObjectException that could occur when turning Ignore Breakpoints ON/OFF when you have multiple IDE workspace windows open.
63259IDE » MiscellaneousOverriding system class defaults works again.
64118IDE » MiscellaneousWhen 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.
64297IDE » MiscellaneousFixed View->Next Bottom Pane/Previous Bottom Pane shortcuts for Windows.
64763IDE » MiscellaneousXML project format now preserves the Linux Normalize Control Sizes build property.
55178IDE » NavigatorUndoing the creation of a class containing methods and then recreating it through Redo will no longer crashes when recreating the methods.
62917IDE » NavigatorPrevent a NilObjectException that could occur when deleting a Folder within a Folder that is open in a tab.
63857IDE » NavigatorClear Navigator Filter when it has focus and ESC is pressed.
64012IDE » NavigatorThe 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.
64161IDE » NavigatorPrevent an IDE exception that can sometimes occur when moving project items in a Navigator that is open in a tab.
64341IDE » NavigatorFixed a regression which made it impossible to create code-only subclasses of MobileContainer for use as the super of other MobileContainers.
64599IDE » NavigatorMenuBar icons render correctly in the navigator again.
64269IDE » PreferencesRemoved shortcut on Project->Breakpoints->Clear All on Windows.
63853IDE » Refactoring ToolsCompatibility Flags are now copied when a subclass is created directly from a class in the Navigator.
64522IDE » RenderingIDE now resolves the Linux application name if it is set to a constant when generating the appicon resources.
64226IDE » Script EditorIDE Build Script Step Editor no longer reverts saved changes if you save very quickly after making a change.
63884IDE » ScriptingThe IDE Scripting command RunScript now also looks in {UserHome}/Documents/Xojo/IDE/Scripts for scripts to run.
64770IDE » ScriptingThe IDE Scripting CurrentBuildLocation constant now points to the correct location when building as macOS Universal.
64889IDE » ScriptingRunning the “DirtyAllProjectItems” IDE Script command and then clicking the Cancel button on the progress dialog no longer leaves the IDE in a bad state.
64702Plugin SDKString.Middle and String.MiddleBytes declarations are now accessible to Plugins.
64839Plugin SDKPlugins can now dynamically access Color module methods using REALLoadFrameworkMethod with function prototypes such as “Color.FillColor() As Color”
56393Remote Debugger StubLinux ARM console remote debugger stub’s name now has the correct case.
64738Remote Debugger Stub64-bit Remote Debugger Stub now works correctly on Windows ARM (with x64 emulation support).
179 Bug Fixes

Changes

64328BuildWhen 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.
62943Build 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.
59572Framework » AllNow 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.
63211Framework » AllAdded EndOfLine.Native as a Shared Property to make it easier to use with String extension methods like Length.
64024Framework » AllAdded Rotate, Translate and Scale to the Graphic context of PDFDocument.
64876Framework » AllAdding 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.
64903Framework » AllAdded 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.
64963Framework » AllNow 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.
60150Framework » WebAdded support for Captions on WebTextArea.
62836Framework » WebWebChart now uses the user’s localization settings to format numbers.
64398Framework » WebAdded a field to set the progress message for slow loading lists.
65007Framework » WebWebListBox now raises an UnsupportedOperationException when trying to change the ColumnCount after the Opening event.
62231Framework » iOS » MobileThe iOS Shortcut Item editor icon now accepts a comma delimited list of SFSymbols, UIApplicationShortcutIconTypes and/or images from your project.
64316Framework » iOS » MobilePointerEvent now has a Handle method.
64476Framework » iOS » MobileNotificationCenter now has methods and matching events for getting a list of notifications that have been and/or will be delivered to your app.
64518Framework » iOS » MobileAdded MobileToolbarItem.FromHandle for creating toolbar items using declares.
64110Framework » macOSOn macOS, desktop apps now listen for the NSWorkspaceAccessibilityDisplayOptionsDidChange Notification and fire the AppearanceChanged event accordingly.
14861IDE » Code EditorClicking on the line number in the Code Editor gutter now selects the entire line.
46721IDE » Code EditorIt is now possible to copy method signature at the top of the code editor by right-clicking on it and choosing "Copy signature".
56051IDE » Code EditorWhen 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.
63815IDE » Code EditorThe code editor can now clean invisible characters from the entire current code item if there is no selection.
63869IDE » Code EditorWhen line numbers are being shown in the Code Editor, highlight the current cursor position in the gutter.
63880IDE » Code EditorLine/Column in syntax area now always shows text cursor (caret) position.
63932IDE » Code EditorThe 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.
64057IDE » Code EditorDoing a super-return for a for-next loop will now add the loop element after the word Next.
61744IDE » FileIOUpdated how the IDE tracks which items in a project have actually been changed to optimize text project saving.
63834IDE » FileIOProperties of controls on layouts in XML files are now written in alphabetical order to avoid unnecessary changes in version control systems.
64780IDE » FileIORecent Items menu now shows project type icons and an updated appearance when there are duplicates in different folders.
64733IDE » Find & ReplaceThe search pane now allows the use of the spacebar to open the history & options menus and to fire the Replace and Replace All buttons.
64164IDE » InspectorFixed 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.
64664IDE » InspectorIn 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.
64665IDE » InspectorItems in the Inspector Behavior editor enumeration list can now be reordered.
62270IDE » Library3rd party plugin controls no longer appear in the library in the Built-In controls section.
61827IDE » MiscellaneousFixed a few items that were not previously undoable.
62051IDE » MiscellaneousSearch fields throughout the IDE have been updated to the native search field introduced in 2020r2.
63846IDE » MiscellaneousThe 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.
64498IDE » RenderingWhen 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.
63088IDE » Xojo CloudXojo Cloud servers can now act as an iOS Remote Notification server for connecting to the Apple Remote Notification service.
9581Remote Debugger StubDesktop Remote Debugger Stub on Windows can now be minimized to the System Tray.
64040Remote Debugger StubThe error message when the IDE can't find a Remote Debugger Stub is now less cryptic and easier to understand.
64502XojoScriptThe IDE Scripting command SaveText no longer crashes the IDE if an invalid path is provided.
41 Changes

New Items

63684Framework » AllAdded a Binary option to Enumerations that are included in Modules.
64213Framework » iOS » MobileCreation of PDF documents on iOS. Fonts handling is restricted to the PDF Standard14 subset.
62053IDE » InspectorColorGroups are now available in Desktop and Web projects.
52190IDE » PreferencesAdded 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.
64149IDE » ProfilerAdded a SaveProfile method which immediately saves profile information to help users whose apps are terminating abnormally.
64869IDE » ScriptingCode item descriptions can now be accessed in IDE Scripts using the ItemDescription getter/setter methods.
6 New Items

Docs and Examples

64557Documentation » MiscellaneousThe iOS Addendum content has been updated and is now included in the Intro to Programming Guide PDF.
64428Documentation » User's GuideUpdated UserGuide:Lingua topic to use the Localized Strings phrasing instead of Dynamic Constants.
64286ExamplesCanvasDragRect example no longer uses deprecated Realbasic.Rect class.
64383ExamplesFixed an issue with the TitleTimer in the TabbedWebBrowser example project.
64626ExamplesUpdated JSONTree example to use KeyAt() method instead of deprecated NameAt() method.
64914ExamplesFixed the issue. Also removed use of some API 1.0 methods.
64123Language Reference » DocumentationOn the PopupMenu doc page, the SelectRowWithValue tooltip now correctly shows the parameter type as String.
64165Language Reference » DocumentationDocs for Slider.AllowLiveScrolling have been updated to indicate the Linux (GTK3) does not provide a way to turn off live scrolling.
64235Language Reference » DocumentationJSONItem language reference page no longer excludes iOS.
64241Language Reference » DocumentationTextArea.StyledTextPrinter now indicates it is only supported on Mac.
64244Language Reference » DocumentationJSONItem.Value is once again documented on the JSONIitem page.
64305Language Reference » DocumentationRemoved platform-specific header from Graphics page.
64307Language Reference » DocumentationGraphics.Scale page now indicates it is available for all project types.
64389Language Reference » DocumentationOn Size page, fixed link to Constructor(Width as Double,Height as Double).
64515Language Reference » DocumentationTextOutputStream.Encoding property no longer shows as read-only in the docs.
64574Language Reference » DocumentationFixed code formatting problem on PictureBrush.Mode page.
64684Language Reference » DocumentationString.ReplaceLineEndings parameter name has been changed to reflect that the replacement does not need to be a line ending character.
64886Language Reference » DocumentationCanvas.ScaleFactor has been documented.
65010Language Reference » DocumentationAdded a note to the documentation to say that JSONItem.EscapeSlashes has no effect in 2021r1 or later.
65014Language Reference » DocumentationUpdated doc example on BinaryStream for API 2.
65107Language Reference » DocumentationA typo in a ListBox code sample has been fixed.
21 Docs and Examples