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 |
---|---|---|
Build |
macOS ad-hoc signing is no longer applied if the app has already been signed (which could happen in a post-build script). |
|
Compiler |
Compiler now reports deprecation warning for Variant.TypeDate with replacement Variant.TypeDateTime. |
|
Crashes & Assertions » Crash |
Fixed a potential crash when loading or saving a project. |
|
Crashes & Assertions » Crash |
Plugin Control objects no longer get incorrectly unlocked twice when they are being destructed from the IDE layout. |
|
Crashes & Assertions » Failed Assertion |
Linux: Assigning a multi-resolution Picture to DragItem.DragPicture no longer fails with a failed assertion. |
|
Crashes & Assertions » IDE Unhandled Exception |
Prevent a NilObjectException that could sometimes occur when using Undo. |
|
Crashes & Assertions » IDE Unhandled Exception |
There was an attempt to fix a NilObjectException that can sometimes occur when dragging items in the Layout Editor. |
|
Crashes & Assertions » IDE Unhandled Exception |
Prevent a NilObjectException that could sometimes occur when selecting items in the Layout Editor. |
|
Crashes & Assertions » IDE Unhandled Exception |
Fixed a RuntimeException that could occur when trying to view large Currency values in the Debugger. |
|
Crashes & Assertions » IDE Unhandled Exception |
Prevent an exception that could occur when naming a Delegate with the name of a superclass method. |
|
Crashes & Assertions » IDE Unhandled Exception |
Fixed a NilObjectException that can sometimes occur when importing a large number of project items at one time. |
|
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. |
|
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. |
|
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. |
|
Crashes & Assertions » IDE Unhandled Exception |
Go To <property> contextual menu on project items now works. |
|
Crashes & Assertions » IDE Unhandled Exception |
There was an attempt to fix a NilObjectException that could sometimes occur on desktop project load when processing menus. |
|
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. |
|
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. |
|
Crashes & Assertions » IDE Unhandled Exception |
There was an attempt to gracefully deal with NilObject situations when the Debugger is stopping. |
|
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. |
|
Crashes & Assertions » IDE Unhandled Exception |
IDE will no longer crash if it can't find the correct row to show in the Navigator. |
|
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. |
|
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. |
|
Crashes & Assertions » IDE Unhandled Exception |
Fixed a regression which caused super returns to crash the IDE. |
|
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. |
|
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. |
|
Crashes & Assertions » IDE Unhandled Exception |
Fixed a potential crash if an IDE window is moved and then quickly closed. |
|
Crashes & Assertions » IDE Unhandled Exception |
Fixed a potential crash. |
|
Crashes & Assertions » IDE Unhandled Exception |
Sharing WebContainers between projects via XML no longer crashes the IDE. |
|
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. |
|
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. |
|
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. |
|
Crashes & Assertions » IDE Unhandled Exception |
Canceling a build should no longer crash the IDE. |
|
Database Engine |
PostgreSQLDatabase: updated libpq client library to 13.0 which supports the new SCRAM authentication method with channel binding. |
|
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 |
|
Database Plugins » SQLite |
Database: Calling SaveRow without initiating an EditRow now raises a DatabaseException. |
|
Framework » All |
TextArea: CharacterPosition, LineNumber, and InsertionPosition now respects the UnicodeMode setting (especially the Characters mode). |
|
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. |
|
Framework » All |
Color.FromValue now returns the correct color if the alpha portion of the hex string is greater than 7F. |
|
Framework » All |
Deprecated RuntimeException.Reason property. |
|
Framework » All |
Deprecated Xojo.Core.ErrorException. |
|
Framework » All |
Deprecated Xojo namespace exceptions. |
|
Framework » All |
GenerateJSON no longer leaks objects/memory, this affected JSONItem as well. |
|
Framework » All |
FolderItem.CreationDate and ModificationDate are now deprecated, use CreationDateTime and ModificationDateTime instead. |
|
Framework » All |
Application.ShortVersion is now marked as deprecated, reflecting what was already in the documentation. |
|
Framework » All |
Application/ConsoleApplication: LongVersion is now marked as deprecated. |
|
Framework » All |
Application/ConsoleApplication: PackageInfo is now marked as deprecated. |
|
Framework » All |
String.Compare no longer leaks Xojo.Core.Locale objects. |
|
Framework » Desktop |
Native HTMLViewer.DocumentProgressChanged event now correctly reports the amount of progress instead of always 0. |
|
Framework » Desktop |
Canvas.DrawInto no longer triggers multiple Paint events, on the source Canvas, unnecessarily. |
|
Framework » Desktop |
DoubleClick event no longer fires again upon a quick third click. |
|
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. |
|
Framework » Desktop |
On macOS Big Sur, the Slider widget is no longer cropped at the top. |
|
Framework » Desktop |
DesktopColorPicker should no longer raise exceptions when closed. |
|
Framework » Desktop |
SegmentedButton: clearing the SelectedSegmentIndex (i.e. setting it to -1) now properly clears any selected segments. |
|
Framework » Desktop |
Linux: Controls in TabPanels are no longer incorrectly resized when Normalize Control Sizes is enabled. |
|
Framework » Desktop |
Fixed a bug where SearchField Action event was firing twice on Windows. |
|
Framework » Desktop |
Windows: Fixed potential silent crashes when comparing strings with different encodings. |
|
Framework » Linux |
PushButton.Action event no longer fires twice when pressing SPACE to push the button. |
|
Framework » Web |
WebTextField and WebTextArea no longer ignore recent user text changes when they lose focus. |
|
Framework » Web |
Runtime position changes of web controls are no longer reset by the framework once the Opening event fires. |
|
Framework » Web |
WebTextFields can now be changed between types at runtime. |
|
Framework » Web |
Disabling a WebComboBox now actually disables the control. |
|
Framework » Web |
WebListbox header visibility and captions can now be set at runtime. |
|
Framework » Web |
WebListbox.DoublePressed fires correctly now. |
|
Framework » Web |
LostFocus events in controls contained in WebContainers added at runtime now fire correctly. |
|
Framework » Web |
WebPopupMenus placed close to a WebToolbar no longer have their menu obscured by the toolbar. |
|
Framework » Web |
Accessing the URL of a session-specific WebFile without a WebSession currently in context will now throw a SessionNotAvailableException. |
|
Framework » Web |
The WebPagePanel.PanelChanged event now fires when the panel is changed. |
|
Framework » Web |
WebMessageDialog will now respond to presses of the SPACE bar if one of the buttons has focus. |
|
Framework » Web |
WebButton.Default can now be turned off at runtime. |
|
Framework » Web |
WebApplication.HandleURL will now respond correctly to and properly close the socket if the incoming request was HTTP/1.0. |
|
Framework » Web |
The current focused control no longer gets lost when a WebContainer is embedded at runtime. |
|
Framework » Web |
No longer encode ampersands in the value and hint properties of WebCombobox. |
|
Framework » Web |
WebListbox.ReloadData now sets the SelectedRowIndex to -1 and raises the SelectionChanged event if necessary. |
|
Framework » Web |
Both WebTabPanel and WebPagePanel pages in the documentation indicate that embedding them in themselves or each other is not supported. |
|
Framework » Web |
WebListbox.CellValueAt no longer causes the list to scroll back to the top. |
|
Framework » Web |
WebListbox no longer selects the next row when double-clicking an already selected row. |
|
Framework » Web |
The Pressed Events on WebImageView and WebCanvas work again on browsers and devices which support multiple simultaneous input devices. |
|
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. |
|
Framework » Web |
Calling App.Quit in a web application works again. |
|
Framework » Web |
Fixed an issue which prevented the HandleRequest event from firing on WebSDK controls. |
|
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. |
|
Framework » Web |
WebThread.UserInterfaceUpdate now has the correct session context initialized. |
|
Framework » Web |
The web framework will now throw App.UnhandledException for JSON encoding issues and log those errors to the IDE console. |
|
Framework » Web |
WebPagePanel now fires its PanelChanged event when the SelectedPanelIndex property is changed. |
|
Framework » Web |
Fixed a number of issues with WebListbox. |
|
Framework » Web |
Calling the Quit method in the WebApplication.Opening event no longer raises an NilObjectException. |
|
Framework » Web |
WebListbox Rows with no text are now the same height as a row with text. |
|
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). |
|
Framework » Windows |
Native HTMLViewer.DocumentProgressChanged event's URL parameter is now correctly reported instead of always being an empty string. |
|
Framework » Windows |
Window: Modifying the Left/Top of an MDI client window no longer incorrectly positions the window when in a multiple-monitor setup. |
|
Framework » Windows |
Double.ToString no longer throws deprecated Xojo.Core.InvalidArgumentExceptions. |
|
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. |
|
Framework » Windows |
WebKit based HTMLViewer.DocumentProgressChanged event now gets invoked when the progress changes. |
|
Framework » iOS » Mobile |
GetTypeInfo can now properly cast to Introspection.TypeInfo. |
|
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). |
|
Framework » iOS » Mobile |
Updated iOSMobileTable.CreateCustomCell definition to take an Introspection.TypeInfo instead of the deprecated Xojo.Introspection.TypeInfo |
|
Framework » iOS » Mobile |
iOSApplication.HandleURL is now called even if the app wasn't already running. |
|
Framework » iOS » Mobile |
XmlDocument.SaveXML and XmlReader.Parse no longer crashes. |
|
Framework » iOS » Mobile |
The default MobileDatePicker on iOS 13.4+ works like earlier versions again. |
|
Framework » iOS » Mobile |
MobileScreen.Closing no longer fires when the view is just going to the background. |
|
Framework » iOS » Mobile |
Creating a MobileToolbarButton with a Type of Done and a custom caption or icon works again. |
|
Framework » iOS » Mobile |
MobileTableCellData.Handle no longer returns Nil for standard table cells created by iOSMobileTable.CreateCell. |
|
Framework » iOS » Mobile |
Picture.CopyOSHandle now preserves the scale of the picture when the new UIImage is created. |
|
Framework » iOS » Mobile |
Display Sharing Panel tray icon (instead of generic icon) when MobileSharingPanel is dragged onto a screen layout. |
|
Framework » iOS » Mobile |
A modal MobileScreen is now properly closed/destructed when swiped to close. |
|
Framework » iOS » Mobile |
Fixed various objects leaking when MobileScreen is closed. |
|
Framework » iOS » Mobile |
iOSMobileTable no longer leaks objects/memory. |
|
Framework » iOS » Mobile |
No longer leaks a MobileToolbarButton object when a toolbar button is pressed. |
|
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. |
|
Framework » macOS |
Set Slider on Mac to vertical mode when it is created with height > width. |
|
Framework » macOS |
TextArea.SelectAll now selects all the text, even with emojis present. |
|
Framework » macOS |
FolderItem.Open can open document files again that have their executable bit set. |
|
Framework » macOS |
DesktopColorPicker no longer throws NilObjectExceptions on macOS when another control capable of receiving color changes gets focus. |
|
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. |
|
IDE » Auto Complete |
Autocomplete now correctly updates local variables when cutting and pasting code. |
|
IDE » Auto Complete |
Autocomplete no longer shows methods when the item is a class but not an instance. |
|
IDE » Auto Complete |
The AutoComplete popup no longer prevents the IDE from quitting on macOS. |
|
IDE » Auto Complete |
The keyword ‘As ' now autocompletes on array variable declaration lines. |
|
IDE » AutoLayout |
A Super Return in the code editor for a For loop now autocompletes the loop variable as well. |
|
IDE » Build Automation |
Build errors specific to Universal builds now get sent to the IDECommunicator if one is connected. |
|
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. |
|
IDE » Code Editor |
AutoComplete menu no longer appears when there are no items in the list. |
|
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. |
|
IDE » Code Editor |
Invisible character cleaner now handles ASCII character 127 DEL. |
|
IDE » Code Editor |
Code Editor syntax area column position now takes indentation into account. |
|
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. |
|
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. |
|
IDE » Code Editor |
Fixed an issue which caused the code editor to refresh incorrectly whenever a new code item was loaded. |
|
IDE » Code Editor |
The keyword Selector is now capitalized when Standardize Format is enabled. |
|
IDE » Constant Editor |
Undo/Redo for Constants in project items now works. |
|
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. |
|
IDE » Error & Warning Panel |
When selecting an error concerning missing control events, the project now navigates to the event instead of the containing view. |
|
IDE » FileIO |
Line endings of version control individual project files are now retained between opening and saving. |
|
IDE » FileIO |
Color Groups now save properly to XML file format. |
|
IDE » FileIO |
Worker project items are now saved in XML Project files. |
|
IDE » FileTypes Editor |
Changes to File Type Groups now undo properly. |
|
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. |
|
IDE » Find & Replace |
When replacing search results in an Attribute, prevent a NilObjectException that could occur. |
|
IDE » Find & Replace |
Replacing the text within the declaration of a property no longer resets its scope to Public the first time. |
|
IDE » Find & Replace |
Closing a document or hiding the search panel will now stop any running searches. |
|
IDE » Find & Replace |
Searching for a single character in a large project no longer hangs the IDE. |
|
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. |
|
IDE » Graphics |
Navigator MenuBar icon is now correct on HiDPI screens. |
|
IDE » Inspector |
The text in the Method return type field now stays large after the field has lost focus. |
|
IDE » Inspector |
The Compatibility Flags editor no longer presents incorrect information about the way the flags are set for a particular class. |
|
IDE » Inspector |
The labels on the iOSCapabilities editor are no longer unnecessarily shortened. |
|
IDE » Inspector |
Fixed an issue which caused the Make External method to be available for folders when it shouldn't be. |
|
IDE » Language Reference |
Fixed a place where a browser could be told to open an non http language reference page. |
|
IDE » Layout Editor |
Control guides on WebTabPanels and WebPagePanels no longer bleed through to all pages. |
|
IDE » Layout Editor |
Position locks of controls on the non-visible pages of a WebPagePanel or WebTabPanel no longer appear in the layout editor. |
|
IDE » Layout Editor |
The IDE no longer crashes when loading the icon for web controls whose super no longer exists in the project. |
|
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. |
|
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. |
|
IDE » Miscellaneous |
Build window icon is now updated properly each time you build a new project. |
|
IDE » Miscellaneous |
Fixed a NilObjectException that could occur when turning Ignore Breakpoints ON/OFF when you have multiple IDE workspace windows open. |
|
IDE » Miscellaneous |
Overriding system class defaults works again. |
|
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. |
|
IDE » Miscellaneous |
Fixed View->Next Bottom Pane/Previous Bottom Pane shortcuts for Windows. |
|
IDE » Miscellaneous |
XML project format now preserves the Linux Normalize Control Sizes build property. |
|
IDE » Navigator |
Undoing the creation of a class containing methods and then recreating it through Redo will no longer crashes when recreating the methods. |
|
IDE » Navigator |
Prevent a NilObjectException that could occur when deleting a Folder within a Folder that is open in a tab. |
|
IDE » Navigator |
Clear Navigator Filter when it has focus and ESC is pressed. |
|
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. |
|
IDE » Navigator |
Prevent an IDE exception that can sometimes occur when moving project items in a Navigator that is open in a tab. |
|
IDE » Navigator |
Fixed a regression which made it impossible to create code-only subclasses of MobileContainer for use as the super of other MobileContainers. |
|
IDE » Navigator |
MenuBar icons render correctly in the navigator again. |
|
IDE » Preferences |
Removed shortcut on Project->Breakpoints->Clear All on Windows. |
|
IDE » Refactoring Tools |
Compatibility Flags are now copied when a subclass is created directly from a class in the Navigator. |
|
IDE » Rendering |
IDE now resolves the Linux application name if it is set to a constant when generating the appicon resources. |
|
IDE » Script Editor |
IDE Build Script Step Editor no longer reverts saved changes if you save very quickly after making a change. |
|
IDE » Scripting |
The IDE Scripting command RunScript now also looks in {UserHome}/Documents/Xojo/IDE/Scripts for scripts to run. |
|
IDE » Scripting |
The IDE Scripting CurrentBuildLocation constant now points to the correct location when building as macOS Universal. |
|
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. |
|
Plugin SDK |
String.Middle and String.MiddleBytes declarations are now accessible to Plugins. |
|
Plugin SDK |
Plugins can now dynamically access Color module methods using REALLoadFrameworkMethod with function prototypes such as “Color.FillColor() As Color” |
|
Remote Debugger Stub |
Linux ARM console remote debugger stub's name now has the correct case. |
|
Remote Debugger Stub |
64-bit Remote Debugger Stub now works correctly on Windows ARM (with x64 emulation support). |
Changes (41 cases)
Case |
Area |
Description |
---|---|---|
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, |
|
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. |
|
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. |
|
Framework » All |
Added EndOfLine.Native as a Shared Property to make it easier to use with String extension methods like Length. |
|
Framework » All |
Added Rotate, Translate and Scale to the Graphic context of PDFDocument. |
|
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. |
|
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. |
|
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. |
|
Framework » Web |
Added support for Captions on WebTextArea. |
|
Framework » Web |
WebChart now uses the user's localization settings to format numbers. |
|
Framework » Web |
Added a field to set the progress message for slow loading lists. |
|
Framework » Web |
WebListBox now raises an UnsupportedOperationException when trying to change the ColumnCount after the Opening event. |
|
Framework » iOS » Mobile |
The iOS Shortcut Item editor icon now accepts a comma delimited list of SFSymbols, UIApplicationShortcutIconTypes and/or images from your project. |
|
Framework » iOS » Mobile |
PointerEvent now has a Handle method. |
|
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. |
|
Framework » iOS » Mobile |
Added MobileToolbarItem.FromHandle for creating toolbar items using declares. |
|
Framework » macOS |
On macOS, desktop apps now listen for the NSWorkspaceAccessibilityDisplayOptionsDidChange Notification and fire the AppearanceChanged event accordingly. |
|
IDE » Code Editor |
Clicking on the line number in the Code Editor gutter now selects the entire line. |
|
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. |
|
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. |
|
IDE » Code Editor |
The code editor can now clean invisible characters from the entire current code item if there is no selection. |
|
IDE » Code Editor |
When line numbers are being shown in the Code Editor, highlight the current cursor position in the gutter. |
|
IDE » Code Editor |
Line/Column in syntax area now always shows text cursor (caret) position. |
|
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. |
|
IDE » Code Editor |
Doing a super-return for a for-next loop will now add the loop element after the word Next. |
|
IDE » FileIO |
Updated how the IDE tracks which items in a project have actually been changed to optimize text project saving. |
|
IDE » FileIO |
Properties of controls on layouts in XML files are now written in alphabetical order to avoid unnecessary changes in version control systems. |
|
IDE » FileIO |
Recent Items menu now shows project type icons and an updated appearance when there are duplicates in different folders. |
|
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. |
|
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. |
|
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. |
|
IDE » Inspector |
Items in the Inspector Behavior editor enumeration list can now be reordered. |
|
IDE » Library |
3rd party plugin controls no longer appear in the library in the Built-In controls section. |
|
IDE » Miscellaneous |
Fixed a few items that were not previously undoable. |
|
IDE » Miscellaneous |
Search fields throughout the IDE have been updated to the native search field introduced in 2020r2. |
|
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. |
|
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. |
|
IDE » Xojo Cloud |
Xojo Cloud servers can now act as an iOS Remote Notification server for connecting to the Apple Remote Notification service. |
|
Remote Debugger Stub |
Desktop Remote Debugger Stub on Windows can now be minimized to the System Tray. |
|
Remote Debugger Stub |
The error message when the IDE can't find a Remote Debugger Stub is now less cryptic and easier to understand. |
|
XojoScript |
The IDE Scripting command SaveText no longer crashes the IDE if an invalid path is provided. |
New items (6 cases)
Case |
Area |
Description |
---|---|---|
Framework » All |
Added a Binary option to Enumerations that are included in Modules. |
|
Framework » iOS » Mobile |
Creation of PDF documents on iOS. Fonts handling is restricted to the PDF Standard14 subset. |
|
IDE » Inspector |
ColorGroups are now available in Desktop and Web projects. |
|
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. |
|
IDE » Profiler |
Added a SaveProfile method which immediately saves profile information to help users whose apps are terminating abnormally. |
|
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 |
---|---|---|
Documentation » Miscellaneous |
The iOS Addendum content has been updated and is now included in the Intro to Programming Guide PDF. |
|
Documentation » User's Guide |
Updated UserGuide:Lingua topic to use the Localized Strings phrasing instead of Dynamic Constants. |
|
Examples |
CanvasDragRect example no longer uses deprecated Realbasic.Rect class. |
|
Examples |
Fixed an issue with the TitleTimer in the TabbedWebBrowser example project. |
|
Examples |
Updated JSONTree example to use KeyAt() method instead of deprecated NameAt() method. |
|
Examples |
Fixed the issue. Also removed use of some API 1.0 methods. |
|
Language Reference » Documentation |
On the PopupMenu doc page, the SelectRowWithValue tooltip now correctly shows the parameter type as String. |
|
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. |
|
Language Reference » Documentation |
JSONItem language reference page no longer excludes iOS. |
|
Language Reference » Documentation |
TextArea.StyledTextPrinter now indicates it is only supported on Mac. |
|
Language Reference » Documentation |
JSONItem.Value is once again documented on the JSONIitem page. |
|
Language Reference » Documentation |
Removed platform-specific header from Graphics page. |
|
Language Reference » Documentation |
Graphics.Scale page now indicates it is available for all project types. |
|
Language Reference » Documentation |
On Size page, fixed link to Constructor(Width as Double,Height as Double). |
|
Language Reference » Documentation |
TextOutputStream.Encoding property no longer shows as read-only in the docs. |
|
Language Reference » Documentation |
Fixed code formatting problem on PictureBrush.Mode page. |
|
Language Reference » Documentation |
String.ReplaceLineEndings parameter name has been changed to reflect that the replacement does not need to be a line ending character. |
|
Language Reference » Documentation |
Canvas.ScaleFactor has been documented. |
|
Language Reference » Documentation |
Added a note to the documentation to say that JSONItem.EscapeSlashes has no effect in 2021r1 or later. |
|
Language Reference » Documentation |
Updated doc example on BinaryStream for API 2. |
|
Language Reference » Documentation |
A typo in a ListBox code sample has been fixed. |