GraffitiSuite 2026 Releases

Release 65 January 27, 2026

Release Statistics

  • 4 New Classes or Products
  • 5 Additions
  • 23 Bug Fixes
  • 3 Other Changes

Desktop

New: GraffitiSelectGroup
Added: GraffitiGrid now supports wrapping long header text. (882)
Added: GraffitiGridColumn has a new HeaderWrap as Boolean = False property. (882)
Added: GraffitiSVG. DrawSVG( g as graphics, svg as String, x1 as Double = 0, y1 as Double = 0, w1 as Double = -1, h1 as Double = -1, x2 as Double = 0, y2 as Double = 0, w2 as Double = -1, h2 as Double = -1 ) shared method.
Fixed: GraffitiBootstrapIconsButton once again properly positions the icon within its face.
Fixed: GraffitiCalendar should no longer throw a NilObjectException when closing in some conditions.
Fixed: GraffitiEditor now preserves spaces around bold text when pasted. (859)
Fixed: GraffitiEditor once again allows keyboard navigation in text.
Fixed: GraffitiEditor no longer shifts focus back to the editor when editing a link URL.
Fixed: GraffitiFontAwesomeIconsButton once again properly positions the icon within its face.
Fixed: GraffitiGrid now more accurately calculates text position in header columns. (882)
Fixed: GraffitiGrid once again properly tracks mouse position after sorting.
Fixed: GraffitiGrid now more accurately sorts varying datatypes.
Fixed: GraffitiHTMLtoPDF now provides more useful error messages in more failure scenarios.
Fixed: GraffitiLayout no longer encounters a NilObjectException on some controls types when using Introspection to gather property info.
Fixed: GraffitiLineIconsButton once again properly positions the icon within its face.
Fixed: GraffitiMaterialIconsButton once again properly positions the icon within its face.
Changed: GraffitiPropertyList now uses GraffitiColorPicker for value selection to avoid modal issues on macOS. (886)
Changed: GraffitiSVG now falls back on a modified version of xojo-svg by Zoclee under certain scenarios.
Updated: GraffitiEditor updated to SunEditor 2.47.8.

iOS

New: GraffitiSelectGroup
Fixed: GraffitiScrollbar once again raises the ValueChanged event under all expected circumstances.
Fixed: GraffitiScrollbar once again restricts Value to Maximum and Minimum range.

Web

New: GraffitiAudioRecorder
New: GraffitiSelectGroup
Added: GraffitiUploader has a new AutoUpload as Boolean = True property. (877)
Added: GraffitiUploader has a new UploadPressed( file as GraffitiWebFile ) as Boolean event. (877)
Fixed: GraffitiGrid's LongText editor now better matches the current Bootstrap theme.
Fixed: GraffitiListGroup no longer encounters a JavaScript exception when setting SelectedItem. (871)
Fixed: GraffitiListGroup now resets search when criteria is empty. (844)
Fixed: GraffitiListGroup once again supports setting SelectedItem to Nil. (871)
Fixed: GraffitiListGroup once again uses a search type field for list searches. (844)
Fixed: GraffitiTooltip once again displays tooltips with containers correctly.
Changed: GraffitiCookieAlert no longer relies on Modernizr.

Release 65.1 January 31, 2026

Release Statistics

  • 1 New
  • 1 Additions
  • 4 Bug Fixes
  • 2 Other Changes

Desktop

Fixed: GraffitiSelectGroup members now have descriptions.
Changed: GraffitiPDF.Forms.TextField renamed to GraffitiPDF.Forms.TextFieldObj to workaround a Xojo bug.

iOS

New: Added Library and Navigator Icons.
Fixed: GraffitiHTMLtoPDF now embeds the Roboto font by default as the base library now requires it. (894)
Fixed: Workaround for bug in Xojo's Libraries implementation in regards to the registration system. (899)

Web

Added: Implemented a new system of resource tracking that should reduce memory usage over time.
Fixed: GraffitiHTMLtoPDF now embeds the Roboto font by default as the base library now requires it. (894)
Changed: GraffitiSuite no longer requires a GraffitiSuiteInstances as Dictionary property.

Release 65.2 February 5, 2026

Release Statistics

  • 1 New
  • 0 Additions
  • 3 Bug Fixes
  • 0 Other Changes

Desktop

New: Added Library and Navigator Icons.
Fixed: GraffitiHTMLtoPDF now embeds the Roboto font by default as the base library now requires it. (894)
Fixed: Workaround for bug in Xojo's Libraries implementation in regards to the registration system. (899)

iOS

Note: Internal Release

Web

Fixed: Workaround for bug in Xojo's Libraries implementation in regards to the registration system. (899)

Release 65.3 February 5, 2026

Release Statistics

  • 0 New
  • 0 Additions
  • 1 Bug Fixes
  • 0 Other Changes

Desktop

None

iOS

New: Fixed a number of enumeration references that Xojo wouldn't resolve in 2025R3.1.

Web

None

Release 66 April 1, 2026

Release Statistics

  • 0 New Classes or Products
  • 4 Additions
  • 12 Bug Fixes
  • 6 Other Changes

Desktop

New: Xojo 2026R1 Compatibility.
New: GraffitiTreeView drawing is now virtualized.
Added: GraffitiPropertyList.FromJSON( data as String ) method for a more modern data saving mechanism.
Added: GraffitiPropertyList.ToJSON() as String method for a more modern data loading mechanism.
Added: GraffitiPropertyList.Reset method which resets the PropertyList to its default state without content. (919)
Added: GraffitiTour has a new CurrentStepItem() as GraffitiTourItem method.
Fixed: GraffitiDrillMenu now applies an offset to item tooltips upon first show. (924)
Fixed: GraffitiHTMLtoPDF now uses 50% width cells for page header and footer. (910)
Fixed: GraffitiNotifier now ensures notes are added where expected in the view hierarchy when Xojo sometimes parents them oddly. (915)
Fixed: GraffitiPropertyList can no longer enter a state where PropertyListChild properties are applied to the wrong list item.
Fixed: GraffitiPropertyList now does a better job of handling color values on import and export. (923)
Fixed: GraffitiSVG (and all classes that rely on it) now renders better at variable resolutions.
Fixed: GraffitiSVG once again renders at correct sizes on Windows.
Fixed: GraffitiTooltip now reacts more appropriately on macOS.
Fixed: GraffitiTour should no longer encounter NilObjectExceptions or crashes in rare cases when moving to the next stage.
Fixed: GraffitiTour resume functionality improved.
Fixed: GraffitiTreeView has received some slight optimizations.
Changed: GraffitiPropertyList now uses the color conversion functions from GraffitiColors when handling children with color values. (923)
Changed: GraffitiTreeView no longer requires scrollbars be provided in the designer.
Changed: GraffitiTreeView no longer requires an editor DesktopTextField be provided in the designer.
Changed: GraffitiTreeView row image caching has been significantly improved.

iOS

New: Xojo 2026R1 Compatibility.

Web

New: Xojo 2026R1 Compatibility
Fixed: GraffitiKanban.ScrollTo now accounts for header height when ColumnHeaderSticky = True. (922)

Release 67 April 9, 2026

Release Statistics

  • 0 New
  • 0 Additions
  • 7 Bug Fixes
  • 0 Other Changes

Desktop

Fixed: GraffitiKanban no longer adds GraffitiKanbanListItems to all GraffitiKanbanItems in a column when calling AddListItem. (929)
Fixed: GraffitiHTMLtoPDF examples that contain HTML are now properly entity encoded for the documentation. (931)

iOS

Fixed: GraffitiGrid should no longer encounter a NilObjectException reparenting a row via drag.
Fixed: GraffitiKanban no longer adds GraffitiKanbanListItems to all GraffitiKanbanItems in a column when calling AddListItem. (929)

Web

Fixed: GraffitiTextField should no longer always report a True state when using PatternSetsState = True. (927)
Fixed: GraffitiTextField no longer inappriopriately applies AllowTabs behavior when Multiline = False. (928)
Fixed: GraffitiKanban no longer adds GraffitiKanbanListItems to all GraffitiKanbanItems in a column when calling AddListItem. (929)

Release 67.1 April 10, 2026

Release Statistics

  • 0 New
  • 0 Additions
  • 2 Bug Fixes
  • 0 Other Changes

Desktop

None

iOS

None

Web

Fixed: Fixed an issue with combined scripts.
Fixed: Further updated for Xojo 2026 Release 1.1.

Release 67.2 April 13, 2026

Release Statistics

  • 0 New
  • 0 Additions
  • 0 Bug Fixes
  • 1 Other Changes

Desktop

None

iOS

None

Web

Note: Version increment for issue with distribution.

Release 68 April 15, 2026

Release Statistics

  • 0 New
  • 2 Additions
  • 0 Bug Fixes
  • 3 Other Changes

Desktop

Added: GraffitiSyntaxEditor now supports drag-and-drop text insertion. (933)
Added: GraffitiSyntaxEditor.TextDropped(text as String) as Boolean event definition. Return false to cancel insertion.
Changed: GraffitiSuite now incorporates a method of determining the true Application object to workaround a linker error when users have renamed it from "App" to something else.

iOS

Changed: GraffitiSuite now incorporates a method of determining the true Application object to workaround a linker error when users have renamed it from "App" to something else.

Web

Changed: GraffitiSuite now incorporates a method of determining the true Application object to workaround a linker error when users have renamed it from "App" to something else.

April 1, 2026
Documentation for Desktop, Mobile (iOS), and Web updated for Release 68 to reflect changes with the move to libraries.

Release 69 May 9, 2026

Release Statistics

  • 0 New
  • 6 Additions
  • 6 Bug Fixes
  • 3 Other Changes

Desktop

Added: Current GraffitiSuite Library version is now available by accessing the GraffitiSuite.Version constant.
Added: GraffitiAnimator now allows reuse of GraffitiAnimatorOperations. Note that you may need to track your instances for previous completion.
Fixed: GraffitiSuite is now initialized in more scenarios where it was needed.
Fixed: GraffitiUIControl.BitmapForCaching now returns correct contexts in more scenarios, improving diversity of its use cases.
Fixed: GraffitiWebUIControl.Opening no longer executes twice. (935)
Updated: Updated documentation to reflect the move to Libraries.

iOS

Added: Current GraffitiSuite Library version is now available by accessing the GraffitiSuite.Version constant.
Added: GraffitiPopupMenu has a new InitialValue as String property. This value is split by EndOfLine to populate the control at Opening.
Fixed: GraffitiSuite is now initialized in more scenarios where it was needed.
Updated: Updated documentation to reflect the move to Libraries.

Web

Added: Current GraffitiSuite Library version is now available by accessing the GraffitiSuite.Version constant.
Added: GraffitiMapViewer.MarkerPressed event has a new screenPosition as Point parameter for the X/Y location of the press relative to the current page. (936)
Fixed: GraffitiSuite is now initialized in more scenarios where it was needed.
Fixed: GraffitiTree now supports adding items in the Shown event. (937)
Updated: Updated documentation to reflect the move to Libraries.

Release 70 May 22, 2026

Release Statistics

  • 1 New
  • 3 Additions
  • 7 Bug Fixes
  • 1 Other Changes

Desktop

New: GraffitiSpinner
Added: Added DrawControlInLayoutEditor mechanism for all applicable classes.
Fixed: GraffitiColorPicker superclass has been corrected.
Fixed: GraffitiListBox header superclass has been corrected.
Fixed: GraffitiListBox header now properly refreshes on MouseUp.
Fixed: GraffitiTooltip should no longer enter a "stuck" state when called from a DesktopHTMLViewer-base parent control on macOS due to a framework change. (940)
Note: GraffitiTooltip Demo updated for "Static" example to show value passing.

iOS

Added: Added DrawControlInLayoutEditor mechanism for all applicable classes.

Web

Added: Support for Xojo's new LazyLoadDependencies feature.
Fixed: GraffitiGrid now supports changing a cell's GraffitiGridAvatarGroup value without requiring the removal and re-adding of the row. (941)
Fixed: GraffitiGrid now supports changing a row's ButtonIndicator value after the row has been added to the Grid. (941)
Fixed: GraffitiGrid no longer encounters a JavaScript error when setting a row’s ProgressIndicator property after the row has been added to the Grid.
Changed: Improved control appearance on views within the IDE.

Release 71 June 22, 2026

Release Statistics

  • 1 New
  • 7 Additions
  • 5 Bug Fixes
  • 5 Other Changes

Desktop

New: GraffitiCalendar no longer loads jQuery UI from CDNJS. (950)
Added: Additional metadata.
Fixed: GraffitiGrid's selected row tracking once again performs as expected when removing rows that are selected. (948)
Fixed: GraffitiUIControl-based controls with long press operations now respond appropriately when a drag operation may also occur.
Updated: Xojo 2026 Release 2 Compatibility.

iOS

Added: Additional metadata.
Fixed: GraffitiPagePanel no longer applies a standard gap size to the width and height constraints of the container but not to the top and left. (947)
Updated: Xojo 2026 Release 2 Compatibility.

Web

Added: Additional metadata.
Added: GraffitiSimpleEditorMention class.
Added: GraffitiSimpleEditor now has method and function overrides for leveraging the new GraffitiSimpleEditorMention class. (943)
Added: GraffitiSimpleEditor now supports headers in mentions list. (943)
Added: GraffitiSimpleEditor now supports names, titles, and tags for mentions via the GraffitiSimpleEditorMention class. (943)
Fixed: GraffitiPDFViewer now better handles loading operations regardless of control visibility. (953)
Fixed: GraffitiSimpleEditor once again raises GotFocus and LostFocus. (944)
Changed: GraffitiSimpleEditor.MentionAdded event definition has been changed. Requires project updates. (943)
Changed: GraffitiTabPanel container loading modified in an attempt to correct an exceedingly rare issue where containers would not correctly embed in the control. (912)
Updated: Xojo 2026 Release 2 Compatibility.

Release 71.1 June 22, 2026

Release Statistics

  • 0 New
  • 0 Additions
  • 1 Bug Fixes
  • 0 Other Changes

Desktop

Fixed: GraffitiCalendar styling error resolved in regards to jQuery UI changes. (950)

iOS

No changes

Web

No changes

Release 71.2 June 23, 2026

Release Statistics

  • 0 New
  • 0 Additions
  • 1 Bug Fixes
  • 0 Other Changes

Desktop

Fixed: GraffitiCalendar no longer fails to load custom jQuery UI themes by URL. (957)

iOS

No changes

Web

No changes

Release 72 August 11, 2026

News

All platform packages now contain offline documentation in the form of structured .md files in the docs directory, which can be easily viewed with our new Scrawler application or via the new online documentation viewer. This documentation is generated during the build process using Xojo Library Studio and Xojo2Markdown. This is the culmination of months of work in preparing easy to manage documentation and a more automated release process.

Release Statistics

  • 0 New
  • 19 Additions
  • 14 Bug Fixes
  • 2 Other Changes

Desktop

Added: GraffitiAvatar has a new HasStatus as Boolean = False property.
Added: GraffitiAvatar has a new StatusColor as Color property.
Added: GraffitiAvatarGroupItem has a new HasStatus as Boolean = False property.
Added: GraffitiAvatarGroupItem has a new StatusColor as Color property.
Fixed: GraffitiColorPicker should no longer crash on macOS when used in some specific circumstances.
Fixed: GraffitiGrid once again properly positions dropdown menu cell editors.
Fixed: GraffitiPagination no longer restricts page navigation by the VisiblePages property value. (966)
Fixed: GraffitiPagination now redraws immediately after selection change by mouse to update the current hovered page button.
Fixed: GraffitiSimpleEditor parsing method fixed for off-by-one error.
Fixed: GraffitiSimpleEditor now supports inserting tables via InsertHTML method. (964)

iOS

Added: GraffitiAvatar has a new HasStatus as Boolean = False property.
Added: GraffitiAvatar has a new StatusColor as Color property.
Added: GraffitiAvatarGroupItem has a new HasStatus as Boolean = False property.
Added: GraffitiAvatarGroupItem has a new StatusColor as Color property.

Web

Added: GraffitiAvatar has a new HasStatus as Boolean = False property.
Added: GraffitiAvatar has a new StatusColor as Color property.
Added: GraffitiAvatarGroupItem has a new HasStatus as Boolean = False property.
Added: GraffitiAvatarGroupItem has a new StatusColor as Color property.
Added: GraffitiPDFViewer has a new ScrollChanged event definition. (959)
Added: GraffitiPDFViewer has a new ScrollMaximumY as Double read-only property. (959)
Added: GraffitiPDFViewer has a new ScrollPositionY as Double property. (959)
Added: GraffitiSimpleEditor has a new ToolbarAddGroup( name as String ) method for adding custom groups to the end of the toolbar. (963)
Added: GraffitiSimpleEditor has a new ToolbarRemoveGroup( name as String ) method for removing custom added groups from the toolbar. (963)
Added: GraffitiTabPanel no longer requires embedding GraffitiTabPanelItem.Containers in a page before init. The TabPanel will automatically embed them off-screen in its own parent page if needed. (969)
Added: GraffitiToolbarItem has a new ShowPopover(container as WebContainer, displaySide as WebContainer.DisplaySides = WebContainer.DisplaySides.Bottom, x as Integer = -1, y as Integer = -1) method. (967)
Fixed: GraffitiAvatarGroup now updates item properties changed after their addition.
Fixed: GraffitiEditor.Append now functions as expected.
Fixed: GraffitiGrid columns using the DecimalPlaces* properties now have values properly formatted for length, accounting for a framework-level change. (958)
Fixed: GraffitiOrgChart buttons now display properly in left-to-right and right-to-left DisplayDirections. (971)
Fixed: GraffitiOrgChart.ResetView once again properly moves the tree back into view based on DisplayDirection. (971)
Fixed: GraffitiOrgChart.FromJSON now properly links items programmatically to the parent instance. (971)
Fixed: GraffitiSimpleEditor parsing method fixed for off-by-one error.
Fixed: GraffitiSimpleEditor now supports inserting tables via InsertHTML method. (964)
Changed: GraffitiSimpleEditor.ToolbarAddButton now has an addition toGroupName as String optional parameter for adding buttons to previously added custom groups. (963)
Updated: GraffitiOrgChart updated to OrgChart v5.0.0. (971)