Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
changelogs:r30 [2019/07/09 14:33]
agcyphers
changelogs:r30 [2019/10/22 20:32] (current)
agcyphers
Line 1: Line 1:
 ==== Date Released ==== ==== Date Released ====
-Alpha 4July 9, 2019\\ +^ Version ^ Release Date ^ 
-Alpha 3June 28, 2019\\ +| Final | October 22, 2019 | 
-Alpha 2June 22, 2019\\ +| Release Candidate 4 | October 11, 2019 | 
-Alpha 1June 13, 2019\\+| Release Candidate 3 ''​Desktop Only''​ | October 1, 2019 | 
 +| Release Candidate 2 ''​Desktop Only''​ | October 1, 2019 | 
 +| Release Candidate 1 | September 30, 2019 | 
 +| Beta 3 | September 18, 2019 | 
 +| Beta 2 | September 17, 2019 | 
 +| Beta 1 | August 18, 2019 | 
 +| Alpha 6 | July 28, 2019 | 
 +| Alpha 5 | July 17, 2019 | 
 +Alpha 4 July 9, 2019 | 
 +Alpha 3 June 28, 2019 | 
 +Alpha 2 June 22, 2019 | 
 +Alpha 1 June 13, 2019 |
  
 ==== Desktop ==== ==== Desktop ====
 ^ Type      ^ Change ​      ^ ^ Type      ^ Change ​      ^
 | ''​NEW''​ | Version information can be found in each class'​s ''​GraffitiSuiteVersion''​ Constant | | ''​NEW''​ | Version information can be found in each class'​s ''​GraffitiSuiteVersion''​ Constant |
 +| ''​NEW''​ | GraffitiAccordion 2.0 |
 +| ''​NEW''​ | GraffitiAnimator |
 | ''​NEW''​ | GraffitiCard | | ''​NEW''​ | GraffitiCard |
-| ''​NEW''​ | GraffitiDrillMenu ​(Name subject to change) ​|+| ''​NEW''​ | GraffitiColors | 
 +| ''​NEW''​ | GraffitiDrillMenu |
 | ''​NEW''​ | GraffitiFieldLabelContainer for hosting ContainerControls. | | ''​NEW''​ | GraffitiFieldLabelContainer for hosting ContainerControls. |
 +| ''​NEW''​ | GraffitiImmersiveLabel |
 +| ''​NEW''​ | GraffitiImmersiveTextArea |
 +| ''​NEW''​ | GraffitiImmersiveTextField |
 +| ''​NEW''​ | GraffitiImmersiveWindow |
 +| ''​NEW''​ | GraffitiListbox |
 +| ''​NEW''​ | GraffitiNSImages |
 | ''​NEW''​ | GraffitiOptionBox | | ''​NEW''​ | GraffitiOptionBox |
 | ''​NEW''​ | GraffitiPagination | | ''​NEW''​ | GraffitiPagination |
 +| ''​NEW''​ | GraffitiPopupMenu |
 | ''​NEW''​ | GraffitiWall | | ''​NEW''​ | GraffitiWall |
 | ''​ADD''​ | GraffitiActionBar now has a ButtonPosition property for drawing buttons on the left or right. | | ''​ADD''​ | GraffitiActionBar now has a ButtonPosition property for drawing buttons on the left or right. |
 | ''​ADD''​ | GraffitiActionBar now has an Alignments enumeration for ButtonPosition. | | ''​ADD''​ | GraffitiActionBar now has an Alignments enumeration for ButtonPosition. |
 +| ''​ADD''​ | GraffitiActionBar now has a new MinimumLeft property for determining the minimum value on the left. |
 +| ''​ADD''​ | GraffitiActionBar now has a new MinimumRight property for determining the minimum value on the right. |
 +| ''​ADD''​ | GraffitiButton no longer draws icons cut-off when using a font size for single-line text that is smaller than the icon's height. |
 +| ''​ADD''​ | GraffitiColorPicker'​s window now supports click-to-reveal customization of color parts by clicking the value label to the left of the slider. |
 +| ''​ADD''​ | GraffitiColorPicker now uses GraffitiColors to populate Named and System lists. |
 +| ''​ADD''​ | GraffitiColorPicker now has a Color Wheel selector. |
 +| ''​ADD''​ | GraffitiColorPicker now has a Color Spectrum selector. |
 +| ''​ADD''​ | GraffitiColorPicker now supports click-to-reveal editing on RGBA labels. |
 +| ''​ADD''​ | GraffitiDesktopControl components (Calendar, HTMLEditor, SyntaxEditor) now have a UseXHR property which defaults to false for using XmlHttpRequests to pass large data back to Xojo from JavaScript at vastly improved speeds. Falls back to viewer events on failure, and includes a lot of exception handling and content validation. This opens a port on the loopback interface to listen for the requests. USE AT YOUR OWN RISK. Must be set in the inspector. This will default to True in R31 and later. Test liberally. |
 +| ''​ADD''​ | GraffitiDesktopControl components (Calendar, HTMLEditor, SyntaxEditor) now alert if they'​re using the Native renderer on Windows. |
 +| ''​ADD''​ | GraffitiGradientSlider now supports transparency. |
 | ''​ADD''​ | GraffitiHTMLEditor now makes as many styles inline as possible by default. | | ''​ADD''​ | GraffitiHTMLEditor now makes as many styles inline as possible by default. |
 | ''​ADD''​ | GraffitiHTMLEditor now defers data transfer for a short period on TextChange and SelChange to reduce input lag. | | ''​ADD''​ | GraffitiHTMLEditor now defers data transfer for a short period on TextChange and SelChange to reduce input lag. |
Line 25: Line 57:
 | ''​ADD''​ | GraffitiHTMLEditor now exposes a jsTwitter_Preview constant for adding before the </​body>​ tag to generate full HTML documents with embedded tweets. | | ''​ADD''​ | GraffitiHTMLEditor now exposes a jsTwitter_Preview constant for adding before the </​body>​ tag to generate full HTML documents with embedded tweets. |
 | ''​ADD''​ | GraffitiHTMLEditor'​s EditorDefaults event now has an AllowNesting parameter. Setting this to False will disallow nesting of lists in the editor to be compliant with some email clients. | | ''​ADD''​ | GraffitiHTMLEditor'​s EditorDefaults event now has an AllowNesting parameter. Setting this to False will disallow nesting of lists in the editor to be compliant with some email clients. |
-| ''​ADD''​ | GraffitiHTMLExporter now has a new toInlineStyles method for converting HTML+CSS to HTML with inline style Attributes. ​Uses the Premailer API Beta 0.1. |+| ''​ADD''​ | GraffitiHTMLExporter now has a new toInlineStyles method for converting HTML+CSS to HTML with inline style Attributes. ​
 +| ''​ADD''​ | GraffitiHTMLLabel now has a CharacterSpacing as Double property. 1.0 = 100% of the character width. | 
 +| ''​ADD''​ | GraffitiHTMLLabel now has a LineSpacing as Double property. 1.= 100% of the line heightNo value less than 1.0 is valid. | 
 +| ''​ADD''​ | GraffitiHTMLLabel now has a LinkColor property for setting the global link color. |
 | ''​ADD''​ | GraffitiFieldLabel now has a TextChanged event. | | ''​ADD''​ | GraffitiFieldLabel now has a TextChanged event. |
-| ''​ADD''​ | GraffitiFieldLabel now supports all controls types as the Field Property is now defined as ''​Field As RectControl''​ |+| ''​ADD''​ | GraffitiFieldLabel now supports all controls types as the Field Property is now defined as ''​Field As RectControl''​|
 | ''​ADD''​ | GraffitiFieldLabel now has a ResizeFieldWidth as Boolean = True property. | | ''​ADD''​ | GraffitiFieldLabel now has a ResizeFieldWidth as Boolean = True property. |
 | ''​ADD''​ | GraffitiFieldLabel now has a ResizeFieldHeight as Boolean = True property. | | ''​ADD''​ | GraffitiFieldLabel now has a ResizeFieldHeight as Boolean = True property. |
 +| ''​ADD''​ | GraffitiRadialProgress now has a TextSizeConstraint as Integer property for ensuring text size does not exceed the specified percentage of the progress area. |
 +| ''​ADD''​ | GraffitiTabBar has a new MinimumTabWidth as Integer property. |
 | ''​FIX''​ | GraffitiAccordion no longer renders changes based on mouse movement when Enabled = False | | ''​FIX''​ | GraffitiAccordion no longer renders changes based on mouse movement when Enabled = False |
 | ''​FIX''​ | GraffitiCard no longer strips empty lines from Content. | | ''​FIX''​ | GraffitiCard no longer strips empty lines from Content. |
 +| ''​FIX''​ | GraffitiColorPicker'​s Gradient Slider instances are now properly colored or, in the case of the alpha slider, show a transparent gradient. |
 +| ''​FIX''​ | GraffitiColors no longer fails to link on macOS with regards to dwmapi.dll. |
 +| ''​FIX''​ | GraffitiDateTimePicker no longer improperly spaces day number rows vertically at small widths. |
 +| ''​FIX''​ | GraffitiFieldLabel now fires ClearClicked regardless of content. |
 +| ''​FIX''​ | GraffitiGrid now properly positions controls and containers when scrolled. |
 +| ''​FIX''​ | GraffitiGrid now displays a single row when that's all that has been added instead of requiring multiple rows. |
 +| ''​FIX''​ | GraffitiGrid now properly positions embedded controls regardless of their column'​s ControlSizing property. |
 +| ''​FIX''​ | GraffitiGrid child controls and containers can no longer overlap the scrollbars. |
 +| ''​FIX''​ | GraffitiGrid can no longer encounter an OutOfBoundsException on columns that are too small for the display area. |
 +| ''​FIX''​ | GraffitiGrid child controls will now hide if they partially fall outside the viewer on macOS. |
 +| ''​FIX''​ | GraffitiGrid scrollbars are no longer invisible before the first repaint after the Open event. |
 +| ''​FIX''​ | GraffitiGrid now applies blank lines for spacing before and after tables. |
 | ''​FIX''​ | GraffitiHTMLEditor once again fires the LostFocus and GotFocus events. | | ''​FIX''​ | GraffitiHTMLEditor once again fires the LostFocus and GotFocus events. |
 | ''​FIX''​ | GraffitiHTMLEditor once again properly wraps paragraph blocks on Windows. | | ''​FIX''​ | GraffitiHTMLEditor once again properly wraps paragraph blocks on Windows. |
Line 38: Line 87:
 | ''​FIX''​ | GraffitiHTMLEditor now relies entirely on QuillJS to do the heavy lifting in SelStart, SelLength, and SelText. This should fix a number of rarely reported issues where these properties would be offset by the number of block elements appearing in the text above the selection. | | ''​FIX''​ | GraffitiHTMLEditor now relies entirely on QuillJS to do the heavy lifting in SelStart, SelLength, and SelText. This should fix a number of rarely reported issues where these properties would be offset by the number of block elements appearing in the text above the selection. |
 | ''​FIX''​ | GraffitiHTMLEditor now relies on Quill to pass back the plain text, rather than stripping this itself. Should be the best forward-compatible option. | | ''​FIX''​ | GraffitiHTMLEditor now relies on Quill to pass back the plain text, rather than stripping this itself. Should be the best forward-compatible option. |
-| ''​FIX''​ | GraffitiHTMLExporter now does a case sensitive compare when enco ding and decoding HTML entities. | +| ''​FIX''​ | GraffitiHTMLEditor now does a lexical comparison on changes to HTML when receiving the text changed notification rather than a simple equals comparison. | 
-| ''​FIX''​ | GraffitiHTMLExporter now only replaces repeating spaces ​when when encoding. |+| ''​FIX''​ | GraffitiHTMLEditor now handles raw HTML not generated by QuillJS a bit better. | 
 +| ''​FIX''​ | GraffitiHTMLEditor now has a bit more exception handling on the table functionality. | 
 +| ''​FIX''​ | GraffitiHTMLEditor'​s bottom border is no longer cut off. | 
 +| ''​FIX''​ | GraffitiHTMLEditor once again loads properly on macOS 10.10 (issue introduced in R29 Final). | 
 +| ''​FIX''​ | GraffitiHTMLEditor no longer sets the clipboard'​s text value after defining the HTML type on the clipboard. Was potentially overwriting. | 
 +| ''​FIX''​ | GraffitiHTMLEditor once again fires the format update event when the current selection has no formatting applied. | 
 +| ''​FIX''​ | GraffitiHTMLEditor now updates selection more quickly. | 
 +| ''​FIX''​ | GraffitiHTMLEditor no longer loses its HTML content when setting Spellcheck = True in the Open event. | 
 +| ''​FIX''​ | GraffitiHTMLEditor once again supports wrapping images in links. | 
 +| ''​FIX''​ | GraffitiHTMLEditor now properly detects the altimage type in hasMedia. | 
 +| ''​FIX''​ | GraffitiHTMLEditor no longer strips ampersands. | 
 +| ''​FIX''​ | GraffitiHTMLEditor no longer strips selected text when clicking the "​Custom"​ button in the color menu. | 
 +| ''​FIX''​ | GraffitiHTMLEditor once again properly returns the format value for checked lists. | 
 +| ''​FIX''​ | GraffitiHTMLEditor once again properly applies SelList* setting when set via property. | 
 +| ''​FIX''​ | GraffitiHTMLEditor once again properly applies SelHeader setting when set via property. | 
 +| ''​FIX''​ | GraffitiHTMLEditor once again properly applies SelAlign setting when set via property. | 
 +| ''​FIX''​ | GraffitiHTMLEditor now performs a full format reset before setting content via the HTML and PlainText properties. | 
 +| ''​FIX''​ | GraffitiHTMLEditor now encodes special characters when setting content via the PlainText property. | 
 +| ''​FIX''​ | GraffitiHTMLEditor no longer inappropriately applies some block styles to the entire document when setting content via the HTML property. | 
 +| ''​FIX''​ | GraffitiHTMLEditor now properly resizes image height when both height and width are defined via InsertImage or HTML tag. | 
 +| ''​FIX''​ | GraffitiHTMLExporter now does a case sensitive compare when encoding ​and decoding HTML entities. | 
 +| ''​FIX''​ | GraffitiHTMLExporter now only replaces repeating spaces when encoding. |
 | ''​FIX''​ | GraffitiHTMLExporter'​s HTMLEntity* methods should be much faster now. | | ''​FIX''​ | GraffitiHTMLExporter'​s HTMLEntity* methods should be much faster now. |
 +| ''​FIX''​ | GraffitiHTMLExporter.toEmail should no longer strip spaces around some tags and add spaces around others. |
 +| ''​FIX''​ | GraffitiHTMLExporter.toEmail now uses the current system'​s EndOfLine setting. |
 +| ''​FIX''​ | GraffitiHTMLExporter.toEmail once again properly numbers ordered lists. |
 +| ''​FIX''​ | GraffitiHTMLExporter.FromEntity no longer strips ampersands. |
 +| ''​FIX''​ | GraffitiHTMLExporter.CleanupHTML now removes blank paragraph tags. For new lines, these tags should be ''<​p><​br /></​p>''​. Blank paragraph tags are stripped out by QuillJS and appear to be ignored in most browsers. |
 +| ''​FIX''​ | GraffitiHTMLLabel now properly draws text on HiDPI displays. |
 +| ''​FIX''​ | GraffitiHTMLLabel can no longer rarely encounter OutOfBoundsExceptions when drawing under an overly-specific set of circumstances. |
 +| ''​FIX''​ | GraffitiMenuWindow now appropriately sizes to its container if the dimensions have changed when you call ShowInPlace. |
 +| ''​FIX''​ | GraffitiMenuWindow now uses Cocoa declares for determining position when building for Cocoa. |
 | ''​FIX''​ | GraffitiPropertyList should no longer encounter OutOfBoundsExceptions when editing a password cell after performing actions outside the cell. | | ''​FIX''​ | GraffitiPropertyList should no longer encounter OutOfBoundsExceptions when editing a password cell after performing actions outside the cell. |
 +| ''​FIX''​ | GraffitiRadialProgress is now HiDPI-aware. |
 +| ''​FIX''​ | GraffitiRadialProgress once again honors the TextSize property. If TextSize is -1, then it will automatically calculate the size to fill the display. |
 +| ''​FIX''​ | GraffitiRadialProgress no longer draws some custom colors as white for certain styles. |
 +| ''​FIX''​ | GraffitiStepBar now uses a color-based hit detection method to get more accurate results on mouse events. |
 | ''​FIX''​ | GraffitiSyntaxEditor now longer forces soft tabs on HTML and PHP modes even when UseSoftTabs = False. | | ''​FIX''​ | GraffitiSyntaxEditor now longer forces soft tabs on HTML and PHP modes even when UseSoftTabs = False. |
-| ''​FIX''​ | GraffitiFieldLabel ​now fires ClearClicked regardless ​of content. |+| ''​FIX''​ | GraffitiSyntaxEditor ​now allows pasting in to Find and Replace fields ​of the built-in search pane. | 
 +| ''​FIX''​ | GraffitiSyntaxEditor now performs SelectAll on Find and Replace fields of the built-in search pane when triggered. | 
 +| ''​FIX''​ | GraffitiSyntaxEditor now allows copying from Find and Replace fields of the built-in search pane. | 
 +| ''​FIX''​ | GraffitiSyntaxEditor now allows cutting from Find and Replace fields of the built-in search pane. | 
 +| ''​FIX''​ | GraffitiSyntaxEditor now allows Undo and Redo on Find and Replace fields of the built-in search pane. | 
 +| ''​FIX''​ | GraffitiSyntaxEditor Tab and Shift+Tab keys now indent and outdent properly once again on macOS. | 
 +| ''​FIX''​ | GraffitiSyntaxEditor now properly accepts focus on open. | 
 +| ''​FIX''​ | GraffitiTabBar close icons now draw properly on the Y-axis. | 
 +| ''​FIX''​ | Changed to using Global.Tooltip for future compatibility. |
 | ''​FIX''​ | More analysis warnings. | | ''​FIX''​ | More analysis warnings. |
 | ''​NOTE''​ | GraffitiGrid rendering speed improvements. Note that large data sets will cause slowdowns the further in to the set you scroll. This is a result of tracking of variable row height support, and is unavoidable. Paging is recommended. | | ''​NOTE''​ | GraffitiGrid rendering speed improvements. Note that large data sets will cause slowdowns the further in to the set you scroll. This is a result of tracking of variable row height support, and is unavoidable. Paging is recommended. |
 +| ''​NOTE''​ | GraffitiGrid requires embedded ContainerControls to have a Transparent property value of False. It will set the backdrop accordingly. |
 | ''​NOTE''​ | GraffitiHTMLEditor updated to QuillJS 1.3.6 | | ''​NOTE''​ | GraffitiHTMLEditor updated to QuillJS 1.3.6 |
 | ''​NOTE''​ | This version represents a pretty major shift for GraffitiHTMLEditor as we finally move to inline styling for greater outside compatibility. Test liberally. | | ''​NOTE''​ | This version represents a pretty major shift for GraffitiHTMLEditor as we finally move to inline styling for greater outside compatibility. Test liberally. |
 | ''​NOTE''​ | Folder names have changed to avoid a naming collision when using IDE Scripts to automate changes. | | ''​NOTE''​ | Folder names have changed to avoid a naming collision when using IDE Scripts to automate changes. |
 | ''​NOTE''​ | GraffitiTextField is now rebranded as GraffitiFieldLabel | | ''​NOTE''​ | GraffitiTextField is now rebranded as GraffitiFieldLabel |
 +| ''​NOTE''​ | All classes now rely on the functionality in GraffitiColors for determining the system'​s appearance setting (Dark/​Light). | 
 +| ''​NOTE''​ | All calls to CType replaced with casting. | 
 +| ''​NOTE''​ | As of Release Candidate 1, methods in the Immersive module no longer begin with Immersive. |
 ===== Web ===== ===== Web =====
 ^ Type      ^ Change ​      ^ ^ Type      ^ Change ​      ^
 | ''​NEW''​ | Version information can be found in each class'​s ''​GraffitiSuiteVersion''​ Constant | | ''​NEW''​ | Version information can be found in each class'​s ''​GraffitiSuiteVersion''​ Constant |
-| ''​ADD''​ | GraffitiHTMLExporter now has a new toInlineStyles method for converting HTML+CSS to HTML with inline style Attributes. Uses the Premailer API Beta 0.1. |+| ''​ADD''​ | GraffitiHTMLExporter now has a new toInlineStyles method for converting HTML+CSS to HTML with inline style Attributes. |
 | ''​ADD''​ | GraffitiWebAlert now has a MessageShown(message as GraffitiWebAlertMessage) event that fires after the message is visible in the browser. | | ''​ADD''​ | GraffitiWebAlert now has a MessageShown(message as GraffitiWebAlertMessage) event that fires after the message is visible in the browser. |
 +| ''​ADD''​ | GraffitiWebAlerts that contain a Button with Default = True will now trigger that button'​s action when pressing Enter/​Return. |
 +| ''​ADD''​ | GraffitiWebAlertButton now has a Default as Boolean = False property. |
 | ''​ADD''​ | GraffitiWebButton now has an AutoDisable property to prevent subsequent unnecessary clicks while performing operations. | | ''​ADD''​ | GraffitiWebButton now has an AutoDisable property to prevent subsequent unnecessary clicks while performing operations. |
 +| ''​ADD''​ | GraffitiWebFavIcon now has a DetachFrom(Target as WebImageView) method. Call this method before any Close events to remove the reference from the browser that is created by AttachTo. |
 +| ''​ADD''​ | GraffitiWebFavIcon now supports arbitrary text in the notification icon by using the SetIconText method. |
 +| ''​ADD''​ | GraffitiWebGrid now has a CellMouseEnter(row as GraffitiWebGridRow,​ column as GraffitiWebGridColumn) event. |
 +| ''​ADD''​ | GraffitiWebGrid now has a CellMouseExit(row as GraffitiWebGridRow,​ column as GraffitiWebGridColumn) event. |
 +| ''​ADD''​ | GraffitiWebGrid now supports editing time values using the TimePicker and the following enum values: EditTypes.TimeWithSeconds,​ EditTypes.TimeWithoutSeconds. |
 +| ''​ADD''​ | GraffitiWebGrid now supports formatting time values with the following enum values: FormatTypes.TimeWithSeconds,​ FormatTypes.TimeWithoutSeconds. |
 +| ''​ADD''​ | GraffitiWebGrid has a new ''​NextRowOnEnter''​ property. When false, the Grid will attempt to navigate horizontally when the enter key is pressed. This should only be used in scenarios where SelectionType is set to Cell. |
 +| ''​ADD''​ | GraffitiWebGrid'​s EditBegin event has four new additional parameters for the location of the cell on the screen and dimensions: cellLeft as Integer, cellTop as Integer, cellWidth as Integer, cellHeight as Integer |
 +| ''​ADD''​ | GraffitiWebGrid'​s CellClick event now has parameters for the cell's Left, Top, Width and Height relative to the page. |
 +| ''​ADD''​ | GraffitiWebGrid'​s CellDoubleClick event now has parameters for the cell's Left, Top, Width and Height relative to the page. |
 +| ''​ADD''​ | GraffitiWebGrid'​s ContextClick event now has parameters for the cell's Left, Top, Width and Height relative to the page. |
 +| ''​ADD''​ | GraffitiWebGrid has a new EditorText(Assigns newValue as String) method for setting the text value of the editor field while Editing = True. Should only be used on EditTypes.Text. |
 +| ''​ADD''​ | GraffitiWebGrid has a new EditKeyPress(Row as GraffitiWebGridRow,​ Column as GraffitiWebGridColumn,​ KeyCode as Integer, AltKey as Boolean, CtrlKey as Boolean, ShiftKey as Boolean, MetaKey as Boolean, EditorValue as String) event for catching key presses in the editor. Does not catch modifier keys alone. |
 +| ''​ADD''​ | GraffitiWebHTMLEditor now has a DarkMode as Boolean property. |
 | ''​ADD''​ | GraffitiWebPopupMenu now exposes GotFocus and LostFocus events. | | ''​ADD''​ | GraffitiWebPopupMenu now exposes GotFocus and LostFocus events. |
 +| ''​ADD''​ | GraffitiWebTabPanel now has an Item(index as Integer) method for retrieving the specified item. |
 +| ''​ADD''​ | GraffitiWebTabPanel now has an ItemCount() as Integer method for retrieving the number of items currently added (Ubound + 1). |
 +| ''​ADD''​ | GraffitiWebTabPanel now has an ItemIndex(item as GraffitiWebTabPanelItem) as Integer method for retrieving the index of the specified item. |
 +| ''​ADD''​ | GraffitiWebTabPanel now has a Value() as GraffitiWebTabPanelItem property for setting or retrieving the current value. |
 +| ''​ADD''​ | GraffitiWebTabPanelItem now has a Style property for setting the tab style. Must be set upon creation. |
 +| ''​ADD''​ | GraffitiWebTabPanelItem now has a StyleActive property for setting the tab style when active. Must be set upon creation. |
 +| ''​ADD''​ | GraffitiWebTabPanelItem now has a PageStyle property for setting the style of the tab's contents container. Must be set upon creation. |
 +| ''​ADD''​ | GraffitiWebTextField now has a MaxLength as Integer = -1 property. Set to -1 for the maximum HTML limit of 524288. |
 +| ''​FIX''​ | Under certain scenarios, NilObjectExceptions could be encountered when executing code in Destructors of pages or Containers that caused a NilObjectException in GraffitiControlWrapper. These are now logged when not debugging to prevent unhandled exception issues in compiled apps. |
 | ''​FIX''​ | Loading FontAwesome no longer causes a load slowdown and errors in the console. | | ''​FIX''​ | Loading FontAwesome no longer causes a load slowdown and errors in the console. |
 +| ''​FIX''​ | All classes that support embedding FontAwesome icons no longer improperly render when using non-English characters. |
 +| ''​FIX''​ | GraffitiWebAlert now uses UUIDs from GraffitiWebAlertMessages and GraffitiWebAlertButtons rather than names internally. |
 | ''​FIX''​ | GraffitiHTMLExporter now does a case sensitive compare when encoding and decoding HTML entities. | | ''​FIX''​ | GraffitiHTMLExporter now does a case sensitive compare when encoding and decoding HTML entities. |
 +| ''​FIX''​ | GraffitiWebAdSense no longer throws a JavaScript exception on the first ad shown in Edge. |
 | ''​FIX''​ | GraffitiWebAccordion no longer applies an unnecessary text color to labels contained within. | | ''​FIX''​ | GraffitiWebAccordion no longer applies an unnecessary text color to labels contained within. |
-| ''​FIX''​ | GraffitiWebButton no longer loads all event code, even when handlers aren't used. | 
 | ''​FIX''​ | GraffitiWebAccordion no longer hides separators. | | ''​FIX''​ | GraffitiWebAccordion no longer hides separators. |
 | ''​FIX''​ | GraffitiWebAlert will no longer throw JavaScript exceptions on unsafe GraffitiWebAlertButton names. These are now altered to be safe and may be different than the name you assign. Please update your code. | | ''​FIX''​ | GraffitiWebAlert will no longer throw JavaScript exceptions on unsafe GraffitiWebAlertButton names. These are now altered to be safe and may be different than the name you assign. Please update your code. |
 +| ''​FIX''​ | GraffitiWebAlert no longer has a typo in the "​theMessage"​ parameter. Handler code changes will be necessary. |
 +| ''​FIX''​ | GraffitiWebBarcodeReader once again functions properly on iOS Safari. |
 +| ''​FIX''​ | GraffitiWebButton no longer loads all event code, even when handlers aren't used. |
 +| ''​FIX''​ | GraffitiWebButton has improved icon parsing. |
 +| ''​FIX''​ | GraffitiWebButton no longer fires events multiple times on pages that Shown, then Hidden, then Shown again. |
 +| ''​FIX''​ | GraffitiWebButtonSegment has improved icon parsing. |
 +| ''​FIX''​ | GraffitiWebCalendar now properly filters repeating events based on view. |
 +| ''​FIX''​ | GraffitiWebCalendar no longer displays a start time for repeating All Day events. |
 | ''​FIX''​ | GraffitiWebCalendar now properly applies StyleDayToday and StyleDayFuture after switching views. | | ''​FIX''​ | GraffitiWebCalendar now properly applies StyleDayToday and StyleDayFuture after switching views. |
 +| ''​FIX''​ | GraffitiWebCamera once again functions properly on iOS Safari. |
 +| ''​FIX''​ | GraffitiWebDatePicker variants once again properly apply StartDate and EndDate without either failing or causing other issues. |
 +| ''​FIX''​ | GraffitiWebDatePicker no longer loses all default styling when a custom style is applied. This allows for additive styling of, for example, a border color to show invalid entry. |
 +| ''​FIX''​ | GraffitiWebDatePicker variants once again properly disable and enable dates without throwing a JavaScript exception. |
 +| ''​FIX''​ | GraffitiWebDatePicker variants have improved WebStyle handling. |
 +| ''​FIX''​ | GraffitiWebDatePicker variants now display Spanish Day/Month names in lowercase in accordance with rules set forth by the Royal Spanish Language Academy. |
 +| ''​FIX''​ | GraffitiWebDatePicker variants now more appropriately position the popup when certain styles are applied to the ''<​body>''​ tag. |
 +| ''​FIX''​ | GraffitiWebFavIcon will no longer throw a NilObjectException in some scenarios when calling SetIconCount. |
 +| ''​FIX''​ | GraffitiWebFavIcon will no longer throw a NilObjectException when flashing and the instance is destroyed. |
 +| ''​FIX''​ | GraffitiWebFieldMask should no longer encounter NilObjectExceptions when initialized improperly. |
 +| ''​FIX''​ | GraffitiWebFontAwesome once again loads properly in Firefox. |
 | ''​FIX''​ | GraffitiWebGrid once again allows mouse selection in cell editor. | | ''​FIX''​ | GraffitiWebGrid once again allows mouse selection in cell editor. |
 | ''​FIX''​ | GraffitiWebGrid'​s Currency EditType no longer causes a JavaScript error in Safari. | | ''​FIX''​ | GraffitiWebGrid'​s Currency EditType no longer causes a JavaScript error in Safari. |
 +| ''​FIX''​ | GraffitiWebGrid scrolling should be much faster in all scenarios. |
 +| ''​FIX''​ | GraffitiWebGrid'​s DeselectAll method now works when SelectionMode = Single. |
 +| ''​FIX''​ | GraffitiWebGrid no longer throws a JavaScript exception when loading data that contains doubles or currency before adding columns. |
 +| ''​FIX''​ | GraffitiWebGrid no longer throws a JavaScript exception in Edge when collapsing a tree parent row. |
 +| ''​FIX''​ | GraffitiWebGrid columns can once again be both resized and reordered in the browser. |
 +| ''​FIX''​ | GraffitiWebGrid once again clears the in-browser data when calling ResetGrid. |
 +| ''​FIX''​ | GraffitiWebGrid no longer retains a large empty space when hiding the first column. |
 +| ''​FIX''​ | GraffitiWebGrid no longer fires SelectionChange twice. |
 +| ''​FIX''​ | GraffitiWebGrid loading has been optimized a bit more. It no longer sends data to the browser on each property change before the first full load. |
 | ''​FIX''​ | GraffitiWebHTMLEditor no longer inappropriately exposes the Length property in the inspector. | | ''​FIX''​ | GraffitiWebHTMLEditor no longer inappropriately exposes the Length property in the inspector. |
 | ''​FIX''​ | GraffitiWebHTMLEditor no longer inappropriately exposes the PlainText property in the inspector. You can assign PlainText to the HTML property. | | ''​FIX''​ | GraffitiWebHTMLEditor no longer inappropriately exposes the PlainText property in the inspector. You can assign PlainText to the HTML property. |
 | ''​FIX''​ | GraffitiWebHTMLEditor no longer throws a JavaScript exception when attempting to load Tweets. | | ''​FIX''​ | GraffitiWebHTMLEditor no longer throws a JavaScript exception when attempting to load Tweets. |
 +| ''​FIX''​ | GraffitiWebHTMLEditor now relies entirely on QuillJS to do the heavy lifting in SelStart, SelLength, and SelText. This should fix a number of rarely reported issues where these properties would be offset by the number of block elements appearing in the text above the selection. |
 +| ''​FIX''​ | GraffitiWebHTMLEditor now relies on Quill to pass back the plain text, rather than stripping this itself. Should be the best forward-compatible option, although causes more data to be passed between the server and client. |
 +| ''​FIX''​ | GraffitiWebHTMLEditor now does a lexical comparison on changes to HTML when receiving the text changed notification rather than a simple equals comparison. |
 +| ''​FIX''​ | GraffitiWebHTMLEditor now handles raw HTML not generated by QuillJS a bit better. |
 +| ''​FIX''​ | GraffitiWebHTMLEditor no longer throws a JavaScript exception on getFormat. |
 +| ''​FIX''​ | GraffitiWebHTMLEditor now properly returns format properties on selection change. |
 +| ''​FIX''​ | GraffitiWebHTMLEditor now uses the new table style as seen in the desktop version. |
 +| ''​FIX''​ | GraffitiWebHTMLEditor no longer removes spaces while typing in Firefox. |
 +| ''​FIX''​ | GraffitiWebHTMLEditor once again honors the WordWrap property. |
 +| ''​FIX''​ | GraffitiWebLabel has improved icon parsing. |
 | ''​FIX''​ | GraffitiWebPDF once again honors table LineHeight properties. | | ''​FIX''​ | GraffitiWebPDF once again honors table LineHeight properties. |
 | ''​FIX''​ | GraffitiWebPDF no longer forces a download when using FromHTML. You should use the Download() method instead. | | ''​FIX''​ | GraffitiWebPDF no longer forces a download when using FromHTML. You should use the Download() method instead. |
 +| ''​FIX''​ | GraffitiWebPDFCellStyle no longer exposes the unused HasFillColor property. |
 | ''​FIX''​ | GraffitiWebPopupMenu now properly sizes on GraffitiWebSidebar. | | ''​FIX''​ | GraffitiWebPopupMenu now properly sizes on GraffitiWebSidebar. |
 | ''​FIX''​ | GraffitiWebPopupMenu now honors lock properties on containers in GraffitiWebSidebar. | | ''​FIX''​ | GraffitiWebPopupMenu now honors lock properties on containers in GraffitiWebSidebar. |
 +| ''​FIX''​ | GraffitiWebPopupMenu now sets the SelectedItem property for single select instances when the item is set as selected when added. |
 +| ''​FIX''​ | GraffitiWebPopupMenu now properly removes previous StyleTag values when set to Nil. |
 +| ''​FIX''​ | GraffitiWebPopupMenu now properly removes SkinTag values when set to None on MultipleSelect variants. |
 +| ''​FIX''​ | GraffitiWebProgressRadial has improved icon parsing. |
 +| ''​FIX''​ | GraffitiWebProgressSemiCircle has improved icon parsing. |
 +| ''​FIX''​ | GraffitiWebTabBar no longer throws a NilObjectException when removing tabs under certain circumstances. |
 +| ''​FIX''​ | GraffitiWebTabPanel'​s Items property is no longer exposed. Use methods for add/​remove/​retrieve. |
 +| ''​FIX''​ | GraffitiWebTextField no longer appears to be disabled when ReadOnly = True. |
 +| ''​FIX''​ | GraffitiWebTextField has improved icon parsing. |
 +| ''​FIX''​ | GraffitiWebTimePicker will now attempt to ensure that it remains positioned within the browser'​s viewport. |
 +| ''​FIX''​ | GraffitiWebToolbar now properly updates GraffitiWebToolbarButton width in the browser when changed directly via buttonInstance.Width = <n> |
 +| ''​FIX''​ | GraffitiWebTree once again raises the Open event. |
 | ''​FIX''​ | GraffitiWebTree'​s CheckAll and UncheckAll methods once again function correctly. | | ''​FIX''​ | GraffitiWebTree'​s CheckAll and UncheckAll methods once again function correctly. |
 | ''​FIX''​ | GraffitiWebTree'​s GetIndexOf method now uses the framework'​s IndexOf method. | | ''​FIX''​ | GraffitiWebTree'​s GetIndexOf method now uses the framework'​s IndexOf method. |
 +| ''​FIX''​ | GraffitiWebTree'​s ItemChecked and ItemUnchecked events no longer fire when the selection is changed programmatically. |
 +| ''​CHANGE''​ | GraffitiWebAccordionNavItem.NotificationCount is now a Double, and all Constructors updated to match. |
 +| ''​CHANGE''​ | GraffitiWebAccordionNavItem.NotificationCount is now formatted to the user's locale. |
 +| ''​NOTE''​ | Removed deprecated GraffitiWebAlert.ButtonClick event with string parameters. Use GraffitiWebAlert.ButtonClicked. |
 +| ''​NOTE''​ | Removed deprecated GraffitiWebAlert.ButtonClick_O event. Use GraffitiWebAlert.ButtonClicked. |
 +| ''​NOTE''​ | Replaced deprecated GraffitiWebAlert.MessageClosed with parameters and functionality from MessageClosed_O. |
 +| ''​NOTE''​ | Removed deprecated GraffitiWebAlert.MessageClosed_O event. Use GraffitiWebAlert.MessageClosed. |
 | ''​NOTE''​ | Folder names have changed to avoid a naming collision when using IDE Scripts to automate changes. | | ''​NOTE''​ | Folder names have changed to avoid a naming collision when using IDE Scripts to automate changes. |
 +| ''​NOTE''​ | GraffitiWebHTMLEditor updated to QuillJS 1.3.6 |
 +| ''​NOTE''​ | FontAwesome support updated to Version 5.10.1 |
 +| ''​NOTE''​ | Various Edge browser issues fixed. |