Fixed Issues:
- #589: Fixed: The editor causes memory leaks in create and destroy cycles.
- #1397: Fixed: Using the dialog to remove headers from a table with one header row only throws an error.
- #1479: Fixed: Justification for styled content in BR mode is disabled.
- #2816: Fixed: Enhanced Image resize handler is visible in read-only mode.
- #2874: Fixed: Enhanced Image resize handler is not created when the editor is initialized in read-only mode.
- #2775: Fixed: Clipboard paste buttons have wrong state when read-only mode is set by the mouse event listener with the Div Editing Area plugin.
- #1901: Fixed: Cannot open the context menu over a Widget with the Shift+F10 keyboard shortcut.
Other Changes:
- Updated WebSpellChecker (WSC) and SpellCheckAsYouType (SCAYT) plugins:
- Language dictionary update: German language was extended with over 600k new words.
- Language dictionary update: Swedish language was extended with over 300k new words.
- Grammar support added for Australian and New Zealand English, Polish, Slovak, Slovenian and Austrian languages.
- Changed wavy red and green lines that underline spelling and grammar errors to straight ones.
-
#55: Fixed: WSC does not use
CKEDITOR.getUrl()
when referencing style sheets. -
#166: Fixed: SCAYT does not use
CKEDITOR.getUrl()
when referencing style sheets. - #56: [Chrome] Fixed: SCAYT/WSC throws errors when running inside a Chrome extension.
- Fixed: After removing a dictionary, the words are not underlined and considered as incorrect.
- Fixed: The Slovenian (
sl_SL
) language does not work. - Fixed: Quotes with code
U+2019
(Right single quotation mark) are considered separators. - Fixed: Wrong error message formatting when the service ID is invalid.
- Fixed: Absent languages in the Languages tab when using SCAYT with the Shared Spaces plugin.
Fixed Issues:
- #2721, #487: Fixed: The order of sublist items is reversed when a higher level list item is removed.
- #2527: Fixed: Emoji autocomplete order does not prioritize emojis with the name starting from the used string.
- #2572: Fixed: Icons in the Emoji dropdown navigation groups are not centered.
- #1191: Fixed: Items in the elements path are draggable.
- #2292: Fixed: Dropping a list with a link on the editor's margin causes a console error and removes the dragged text from editor.
- #2756: Fixed: The Auto Link plugin causes an error when typing in the source editing mode.
-
#1986: Fixed: The Cell Properties dialog from the Table Tools plugin shows styles that are not allowed through
config.allowedContent
. - #2565: [IE, Edge] Fixed: Buttons in the editor toolbar are activated by clicking them with the right mouse button.
- #2792: Fixed: A bug in the Copy Formatting plugin that caused the following issues:
Fixed Issues:
- #2403: Fixed: Styling inline editor initialized inside a table with the Table Selection plugin is causing style leaks.
- #2514: Fixed: Pasting table data into inline editor initialized inside a table with the Table Selection plugin inserts pasted content into the wrapping table.
- #2451: Fixed: The Remove Format plugin changes selection.
- #2546: Fixed: The separator in the toolbar moves when buttons are focused.
-
#2506: Fixed: Enhanced Image throws a type error when an empty
<figure>
tag with animage
class is upcasted. -
#2650: Fixed: Table dialog validator fails when the
getValue()
function is defined in the global scope. - #2690: Fixed: Decimal characters are removed from the inside of numbered lists when pasting content using the Paste from Word plugin.
- #2205: Fixed: It is not possible to add new list items under an item containing a block element.
- #2411, #2438 Fixed: Apply numbered list option throws a console error for a specific markup.
- #2430 Fixed: Color Button and List Block items are draggable.
Other Changes:
- Updated the WebSpellChecker (WSC) plugin:
- #52 Fixed: Clicking "Finish Checking" without a prior action would hang the Spell Checking dialog.
-
#2603: Corrected the GPL license entry in the
package.json
file.
Fixed Issues:
Security Updates:
-
Fixed XSS vulnerability in the HTML parser reported by maxarr.
Issue summary: It was possible to execute XSS inside CKEditor after persuading the victim to: (i) switch CKEditor to source mode, then (ii) paste a specially crafted HTML code, prepared by the attacker, into the opened CKEditor source area, and (iii) switch back to WYSIWYG mode.
An upgrade is highly recommended!
New Features:
- #2062: Added the emoji dropdown that allows the user to choose the emoji from the toolbar and search for them using keywords.
- #2154: The Link plugin now supports phone number links.
- #1815: The Auto Link plugin supports typing link completion.
- #2478: Link can be inserted using the Ctrl/Cmd + K keystroke.
- #651: Text pasted using the Paste from Word plugin preserves indentation in paragraphs.
- #2248: Added support for justification in the BBCode plugin. Thanks to Matěj Kmínek!
- #706: Added a different cursor style when selecting cells for the Table Selection plugin.
-
#2072: The UI Button plugin supports custom
aria-haspopup
property values. The Menu Buttonaria-haspopup
value is nowmenu
, the Panel Button and Rich Comboaria-haspopup
value is nowlistbox
. - #1176: The Balloon Panel can now be attached to a selection instead of an element.
-
#2202: Added the
contextmenu_contentsCss
configuration option to allow adding custom CSS to the Context Menu.
Fixed Issues:
- #1477: Fixed: On destroy, Balloon Toolbar does not destroy its content.
- #2394: Fixed: Emoji dropdown does not show up with repeated symbols in a single line.
- #1181: [Chrome] Fixed: Opening the context menu in a read-only editor results in an error.
- #2276: [iOS] Fixed: Button state does not refresh properly.
- #1489: Fixed: Table contents can be removed in read-only mode when the Table Selection plugin is used.
- #1264 Fixed: Right-click does not clear the selection created with the Table Selection plugin.
-
#586 Fixed: The
required
attribute is not correctly recognized by the Form Elements plugin dialog. Thanks to Roli Züger! - #2380 Fixed: Styling HTML comments in a top-level element results in extra paragraphs.
- #2294 Fixed: Pasting content from Microsoft Outlook and then bolding it results in an error.
-
#2035 [Edge] Fixed:
Permission denied
is thrown when opening a Panel instance. -
#965 Fixed: The
config.forceSimpleAmpersand
option does not work. Thanks to Alex Maris! -
#2448: Fixed: The [
Escape HTML Entities
] plugin with custom additional entities configuration breaks HTML escaping. - #898: Fixed: Enhanced Image long alternative text protrudes into the editor when the image is selected.
- #1113: [Firefox] Fixed: Nested contenteditable elements path is not updated on focus with the Div Editing Area plugin.
- #1682 Fixed: Hovering the Balloon Toolbar panel changes its size, causing flickering.
-
#421 Fixed: Expandable Button puts the
(Selected)
text at the end of the label when clicked. -
#1454: Fixed: The
onAbort
method of the Upload Widget is not called when the loader is aborted. - #1451: Fixed: The context menu is incorrectly positioned when opened with Shift+F10.
-
#1722:
CKEDITOR.filter.instances
is causing memory leaks. - #2491: Fixed: The Mentions plugin is not matching diacritic characters.
- #2519: Fixed: The Accessibility Help dialog should display all available keystrokes for a single command.
API Changes:
-
#2453: The
CKEDITOR.ui.panel.block.getItems
method now also returnsinput
elements in addition to links. -
#2224: The
CKEDITOR.tools.convertToPx
function now converts negative values. -
#2253: The widget definition
insert
method now passeseditor
andcommandData
. Thanks to marcparmet! -
#2045: Extracted
tools.eventsBuffer
andtools.throttle
functions logic into a separate namespace.-
tools.eventsBuffer
was extracted intotools.buffers.event
, -
tools.throttle
was extracted intotools.buffers.throttle
.
-
-
#2466: The
CKEDITOR.filter
constructor accepts an additionalrules
parameter allowing to bind the editor and filter together. -
#2493: The
editor.getCommandKeystroke
method accepts an additionalall
parameter allowing to retrieve an array of all command keystrokes. -
#2483: Button's DOM element created with the
hasArrow
definition option can by identified by the.cke_button_expandable
CSS class.
Other Changes: