> This is the {{site.productname}} Community version changelog. For information about the latest {{site.cloudname}} or {{site.enterpriseversion}} Release, see: [{{site.productname}} Release Notes]({{site.baseurl}}/release-notes/).
## 5.9.0 - 2021-08-26
### Added
- Added a new `mceFocus` command that focuses the editor. Equivalent to using `editor.focus()`.
- Added a new `mceTableToggleClass` command which toggles the provided class on the currently selected table.
- Added a new `mceTableCellToggleClass` command which toggles the provided class on the currently selected table cells.
- Added a new `tablecellvalign` toolbar button and menu item for vertical table cell alignment.
- Added a new `tablecellborderwidth` toolbar button and menu item to change table cell border width.
- Added a new `tablecellborderstyle` toolbar button and menu item to change table cell border style.
- Added a new `tablecaption` toolbar button and menu item to toggle captions on tables.
- Added a new `mceTableToggleCaption` command that toggles captions on a selected table.
- Added a new `tablerowheader` toolbar button and menu item to toggle the header state of row cells.
- Added a new `tablecolheader` toolbar button and menu item to toggle the header state of column cells.
- Added a new `tablecellbordercolor` toolbar button and menu item to select table cell border colors, with an accompanying setting `table_border_color_map` to customize the available values.
- Added a new `tablecellbackgroundcolor` toolbar button and menu item to select table cell background colors, with an accompanying setting `table_background_color_map` to customize the available values.
- Added a new `language` menu item and toolbar button to add `lang` attributes to content, with an accompanying `content_langs` setting to specify the languages available.
- A new `lang` format is now available that can be used with `editor.formatter`, or applied with the `Lang` editor command.
- Added a new `language` icon for the `language` toolbar button.
- Added a new `table-row-numbering` icon.
- Added new plugin commands: `mceEmoticons` (Emoticons), `mceWordCount` (Word Count), and `mceTemplate` (Template).
- Added a new `iframe_aria_text` setting to set the iframe title attribute.
- Added a new DomParser `Node.children()` API to return all the children of a `Node`.
### Improved
- Sticky toolbars can now be offset from the top of the page using the new `toolbar_sticky_offset` setting.
- Fancy menu items now accept an `initData` property to allow custom initialization data.
- Improved the load time of the `fullpage` plugin by using the existing editor schema rather than creating a new one.
- Improved the performance when UI components are rendered.
- The context toolbar no longer unnecessarily repositions to the top of large elements when scrolling.
- The context toolbar will now move out of the way when it overlaps with the selection, such as in table cells.
- The context toolbar now uses a short animation when transitioning between different locations.
- `Env.browser` now uses the User-Agent Client Hints API where it is available.
- Icons with a `-rtl` suffix in their name will now automatically be used when the UI is rendered in right-to-left mode.
- The `formatter.match` API now accepts an optional `similar` parameter to check if the format partially matches.
- The `formatter.formatChanged` API now supports providing format variables when listening for changes.
- The formatter will now fire `FormatApply` and `FormatRemove` events for the relevant actions.
- The `autolink` plugin link detection now permits custom protocols.
- The `autolink` plugin valid link detection has been improved.
### Changed
- Changed the load order so content CSS is loaded before the editor is populated with content.
- Changed the `emoticons`, `wordcount`, `code`, `codesample`, and `template` plugins to open dialogs using commands.
- The context toolbar will no longer show an arrow when it overlaps the content, such as in table cells.
- The context toolbar will no longer overlap the statusbar for toolbars using `node` or `selection` positions.
### Fixed
- The `editor.fire` API was incorrectly mutating the original `args` provided.
- Unbinding an event handler did not take effect immediately while the event was firing.
- Binding an event handler incorrectly took effect immediately while the event was firing.
- Unbinding a native event handler inside the `remove` event caused an exception that blocked editor removal.
- The `SetContent` event contained the incorrect `content` when using the `editor.selection.setContent()` API.
- The editor content could be edited after calling `setProgressState(true)` in iframe mode.
- Tabbing out of the editor after calling `setProgressState(true)` behaved inconsistently in iframe mode.
- Flash of unstyled content while loading the editor because the content CSS was loaded after the editor content was rendered.
- Partially transparent RGBA values provided in the `color_map` setting were given the wrong hex value.
- HTML comments with mismatched quotes were parsed incorrectly under certain circumstances.
- The editor could crash when inserting certain HTML content.
- Inserting certain HTML content into the editor could result in invalid HTML once parsed.
- Links in notification text did not show the correct mouse pointer.
- Using the Tab key to navigate into the editor on Microsoft Internet Explorer 11 would incorrectly focus the toolbar.
- The editor selection could be placed in an incorrect location when undoing or redoing changes in a document containing `contenteditable="false"` elements.
- Menus and context menus were not closed when clicking into a different editor.
- Context menus on Android were not displayed when more than one HTML element was selected.
- Disabled nested menu items could still be opened.
- The nested menu item chevron icon was not fading when the menu item was disabled.
- `imagetools` buttons were incorrectly enabled for remote images without `imagetools_proxy` set.
- Only table content would be deleted when partially selecting a table and content outside the table.
- The table cell selection handling was incorrect in some cases when dealing with nested tables.
- Removing a table row or column could result in the cursor getting placed in an invalid location.
- Pressing the Tab key to navigate through table cells did not skip noneditable cells.
- Clicking on a noneditable table cell did not show a visual selection like other noneditable elements.
- Some table operations would incorrectly cause table row attributes and styles to be lost.
- The selection was incorrectly lost when using the `mceTableCellType` and `mceTableRowType` commands.
- The `mceTableRowType` was reversing the order of the rows when converting multiple header rows back to body rows.
- The table dialog did not always respect the `table_style_with_css` option.
- Pasting into a table with multiple cells selected could cause the content to be pasted in the wrong location.
- The `TableModified` event was not fired when pasting cells into a table.
- The table paste column before and after icons were not flipped in RTL mode.
- Fixed table corruption when deleting a `contenteditable="false"` cell.
- The `dir` attribute was being incorrectly applied to list items.
- Applying selector formats would sometimes not apply the format correctly to elements in a list.
- For formats that specify an attribute or style that should be removed, the formatter `match` API incorrectly returned `false`.
- The type signature on the `formatter.matchNode` API had the wrong return type (was `boolean` but should have been `Formatter | undefined`).
- The `formatter.formatChanged` API would ignore the `similar` parameter if another callback had already been registered for the same format.
- The `formatter.formatChanged` API would sometimes not run the callback the first time the format was removed.
- Base64 encoded images with spaces or line breaks in the data URI were not displayed correctly. Patch contributed by RoboBurned
### Deprecated
- The `bbcode`, `fullpage`, `legacyoutput`, and `spellchecker` plugins have been deprecated and marked for removal in the next major release.
## 5.8.2 - 2021-06-23
### Fixed
@ -410,7 +500,7 @@ class: changelog
## 5.2.1 - 2020-03-25
### Fixed
- Fixed the "is decorative" checkbox in the image dialog clearing after certain dialog events#FOAM-11
- Fixed the "is decorative" checkbox in the image dialog clearing after certain dialog events.
- Fixed possible uncaught exception when a `style` attribute is removed using a content filter on `setContent`.
- Fixed the table selection not functioning correctly in Microsoft Edge 44 or higher.
- Fixed the table resize handles not functioning correctly in Microsoft Edge 44 or higher.
@ -444,8 +534,8 @@ class: changelog
- Added `quickbars_image_toolbar` setting to allow for the image quickbar to be turned off.
- Added iframe and img `loading` attribute to the default schema. Patch contributed by ataylor32.
- Added new `getNodeFilters`/`getAttributeFilters` functions to the `editor.serializer` instance.
- Added new `a11y_advanced_options` setting to allow additional accessibility options to be added#FOAM-11
- Added new accessibility options and behaviours to the image dialog using `a11y_advanced_options`#FOAM-11
- Added new `a11y_advanced_options` setting to allow additional accessibility options to be added.
- Added new accessibility options and behaviours to the image dialog using `a11y_advanced_options`.
- Added the ability to use the window `PrismJS` instance for the `codesample` plugin instead of the bundled version to allow for styling custom languages.
- Added error message events that fire when a resource loading error occurs.