New features / improvements
- 340: Add proper desktop printing support
- 657: Designer components can access their owning window or container before controls open
- 658: Let users choose the default folder for new solutions
- 662: Stop indeterminate progress bars animating in the designer
- 667: Search fields use a reliable magnifying glass icon
- 676: Paste copied members onto destination items
- 680: Select Case supports IsA type matching
- 681: Select Case can match inclusive ranges
- 682: Allow optional parameters to default from earlier arguments
- 685: GameCanvas uses a dark default background
- 691: Lock designer controls against dragging only
- 692: Connect to ODBC data sources
- 698: Menu bar inspector sidebar can be resized
- 703: Studio reports and exports licence activation diagnostics
- 704: Text fields can display custom text colours
- 706: Allow DateTimePicker dates to follow a Locale
- 707: The ObjoBasic language is now named Objo
- 713: AI assistant now uses current provider SDKs
- 715: Windows can now display configurable toolbars
- 728: Studio now includes an interactive toolbar showcase
Fixes
- 659: Empty charts no longer show placeholder text
- 660: Chart text remains readable in dark mode
- 661: RadioButtonGroup typography settings are ignored
- 663: Desktop app menu shortcuts work on Windows and Linux
- 664: Desktop app menu shortcuts work correctly
- 666: Search fields show the wrong icon in the designer
- 668: NumericTextField shows the wrong focus ring colour
- 669: Colour picker palette tooltips can show the wrong colour
- 670: Slider no longer crashes when Minimum is set above Value
- 671: TreeView font size changes should update node text
- 672: TreeView Select All works with Command-A on macOS
- 673: Show the About box in the Help menu on Windows and Linux
- 674: Windows desktop apps show Exit in the File menu
- 675: Studio shows Exit in the File menu on Windows
- 677: Search fields use a reliable clear icon
- 678: TreeView and ListBox controls can show controls behind them when overlapped
- 683: Array variables can use As New Array(Of T)
- 684: Generic classes can be configured from the inspector
- 686: GameCanvas no longer appears bright white in dark mode
- 687: GameCanvas boundary examples keep sprites inside the canvas
- 688: Locked controls can be moved from the inspector
- 689: Designer no longer flickers when moving GroupBoxes with locked child controls
- 693: TabPanel border thickness is preserved when toggling borders
- 695: IDE icons render consistently across platforms
- 696: Tall checkboxes keep their indicator centred
- 697: Menu handlers show unsupported Rename action
- 699: Menu handler labels show internal method names
- 700: Menu handler Open button should navigate to handler code
- 701: Borderless ListBox shows a top line when headers are hidden
- 702: Inspector size constraint fields keep focus after pressing Return
- 705: Default Window list refreshes after window changes
- 708: Source item names reject invalid Objo identifiers
- 709: MarkdownViewer text is unreadable in dark mode on macOS
- 710: MarkdownViewer footnote links navigate within the document
- 711: Controls on PagePanel pages now resize correctly before first activation
- 712: Markdown code uses the configured editor font without crashing
- 714: OpenAI-compatible providers now support optional authentication and reasoning
- 721: Objo license deactivate exits with code 0 on success