- #1249: Enabled the Upload Image plugin by default in standard and full presets. Also, it will no longer log an error in case of missing
- #933: Introduced Balloon Toolbar plugin.
- #662: Introduced image inlining for the Paste from Word plugin.
- #468: [Edge] Introduced support for the Clipboard API.
- #607: Manually inserted Hex color is prefixed with a hash character (
#) if needed. It ensures a valid Hex color value is used when setting the table cell border or background color with the Color Dialog window.
- #584: Font size and Family and Format drop-downs are not toggleable anymore. Default option to reset styles added.
- #856: Introduced the
CKEDITOR.tools.keystrokeToArraymethod. It converts a keystroke into its string representation, returning every key name as a separate array element.
- #1053: Introduced the
CKEDITOR.tools.object.mergemethod. It allows to merge two objects, returning the new object with all properties from both objects deeply cloned.
- #1073: Introduced the
CKEDITOR.tools.array.everymethod. It invokes a given test function on every array element and returns
trueif all elements pass the test.
- #796: Fixed: A list is pasted from OneNote in the reversed order.
- #834: [IE9-11] Fixed: The editor does not save the selected state of radio buttons inserted by the Form Elementsplugin.
- #704: [Edge] Fixed: Using Ctrl/Cmd + Z breaks widget structure.
- #591: Fixed: A column is inserted in a wrong order inside the table if any cell has a vertical split.
- #787: Fixed: Using Cut inside a nested table does not cut the selected content.
- #842: Fixed: List style not restored when toggling list indent level in the Indent List plugin.
- #711: Fixed: Dragging widgets should only work with the left mouse button.
- #862: Fixed: The "Object Styles" group in the Styles Combo plugin is visible only if the whole element is selected.
- #994: Fixed: Typo in the
CKEDITOR.focusManager.focusAPI documentation. Thanks to benjy!
- #1014: Fixed: The Table Tools Cell Properties dialog is now Advanced Content Filter aware — it is not possible to change the cell width or height if corresponding styles are disabled.
- #877: Fixed: A list with custom bullets with exotic characters crashes the editor when pasted from Word.
- #605: Fixed: Inline widgets do not preserve trailing spaces.
- #1008: Fixed: Shorthand Hex colors from the
config.colorButton_colorsoption are not correctly highlighted in the Color Button Text Color or Background Color panel.
- #1094: Fixed: Widget definition
upcastmethods are called for every element.
- #1057: Fixed: The Notification plugin overwrites Web Notifications API due to leakage to the global scope.
- #1068: Fixed: Upload widget paste listener ignores changes to the
- #921: Fixed: [Edge] CKEditor erroneously perceives internal copy and paste as type "external".
- #1213: Fixed: Multiple images uploaded using Upload Image plugin are randomly duplicated or mangled.
- #532: Fixed: Removed an outdated user guide link from the About dialog.
- #1221: Fixed: Invalid CSS loaded by Balloon Panel plugin when
config.skinis loaded using a custom path.
- #522: Fixed: Widget selection is not removed when widget is inside table cell with Table Selection plugin enabled.
- #1027: Fixed: Cannot add multiple images to the table with Table Selection plugin in certain situations.
- #1069: Fixed: Wrong shape processing by Paste from Word plugin.
- #995: Fixed: Hyperlinked image gets inserted twice by Paste from Word plugin.
- #1287: Fixed: Widget plugin throws exception if included in editor build but not loaded into editor's instance.
- #1097: Widget
upcastmethods are now called in the widget definition's context.
- #1118: Added the
showoption in the
balloonPanel.attachmethod, allowing to attach a hidden Balloon Panelinstance.
- #1145: Added the
skipNotificationsoption to the
CKEDITOR.fileTools.uploadWidgetDefinition, allowing to switch off default notifications displayed by upload widgets.
- #568: Added possibility to adjust nested editables' filters using the
- #554: Fixed:
changeevent not fired when typing the first character after pasting into the editor. Thanks to Daniel Miller!
- #566: Fixed: The CSS
bordershorthand property with zero width (
border: 0px solid #000;) causes the table to have the border attribute set to 1.
- #779: Fixed: The Remove Format plugin removes elements with language definition inserted by the Languageplugin.
- #423: Fixed: The Paste from Word plugin pastes paragraphs into the editor even if
CKEDITOR.config.enterModeis set to
- #719: Fixed: Image inserted using the Enhanced Image plugin can be resized when the editor is in read-only mode.
- #577: Fixed: The "Delete Columns" command provided by the Table Tools plugin throws an error when trying to delete columns.
- #867: Fixed: Typing into a selected table throws an error.
- #817: Fixed: The Save plugin does not work in Source Mode.
- Updated the WebSpellChecker plugin:
- #40: Fixed: IE10 throws an error when spell checking is started.
- #800: Added the
CKEDITOR.dom.selection.isCollapsedmethod which is a simpler way to check if the selection is collapsed.
- #830: Added an option to define which dialog tab should be shown by default when creating
- #663: [Chrome] Fixed: Clicking the scrollbar throws an
Uncaught TypeError: element.is is not a functionerror.
- #520: Fixed: Widgets cannot be properly pasted into a table cell.
- #579: Fixed: Internal
cke_table-faked-selection-tableclass is visible in the Stylesheet Classes field of the Table Properties dialog.
- #545: [Edge] Fixed: Error thrown when pressing the Select All button in Source Mode.
- #582: Fixed: Double slash in the path to stylesheet needed by the Table Selection plugin. Thanks to Marius Dumitru Florea!
- #491: Fixed: Unnecessary dependency on the Editor Toolbar plugin inside the Notification plugin.
- #646: Fixed: Error thrown into the browser console after opening the Styles Combo plugin menu in the editor without any selection.
- #501: Fixed: Double click does not open the dialog for modifying anchors inserted via the Link plugin.
- #9780: [IE8-9] Fixed: Clicking inside an empty read-only editor throws an error.
- #16820: [IE10] Fixed: Clicking below a single horizontal rule throws an error.
- #426: Fixed: The
range.cloneContentsmethod selects the whole element when the selection starts at the beginning of that element.
- #644: Fixed: The
range.extractContentsmethod returns an incorrect result when multiple nodes are selected.
- #684: Fixed: The
elementPath.containsmethod incorrectly excludes the last element instead of root when the
fromTopparameter is set to
- Added a new Mexican Spanish localization. Thanks to David Alexandro Rodriguez!
- #413: Added Paste as Plain Text keyboard shortcut to the Accessibility Help instructions.
- #515: [Chrome] Fixed: Mouse actions on CKEditor scrollbar throw an exception when the Table Selection plugin is loaded.
- #493: Fixed: Selection started from a nested table causes an error in the browser while scrolling down.
- #415: [Firefox] Fixed: Enter key breaks the table structure when pressed in a table selection.
- #457: Fixed: Error thrown when deleting content from the editor with no selection.
- #478: [Chrome] Fixed: Error thrown by the Enter Key plugin when pressing Enter with no selection.
- #424: Fixed: Error thrown by Tab Key Handling and Indent List plugins when pressing Tab with no selection in inline editor.
- #476: Fixed: Anchors inserted with the Link plugin on collapsed selection cannot be edited.
- #417: Fixed: The Table Resize plugin throws an error when used with a table with only header or footer rows.
- #523: Fixed: The
editor.getCommandKeystrokemethod does not obtain the correct keystroke.
- #534: [IE] Fixed: Paste from Word does not work in Quirks Mode.
- #450: Fixed:
CKEDITOR.filterincorrectly transforms the
- #13793: The
embed_providerconfiguration option for the Media Embed and Semantic Media Embed plugins is no longer preset by default.
- The UI Color plugin now uses a custom color picker instead of the
YUI 2.7.0library which has some known vulnerabilities (it's a security precaution, there was no security issue in CKEditor due to the way it was used).
- #16755: Added the Table Selection plugin that lets you select and manipulate an arbitrary rectangular table fragment (a few cells, a row or a column).
- #16961: Added support for pasting from Microsoft Excel.
- #13381: Dynamic code evaluation call in
CKEDITOR.templateremoved. CKEditor can now be used with the
unsafe-evalContent Security Policy. Thanks to Caridy Patiño!
- #16971: Added support for color in the
backgroundproperty containing also other styles for table cells in the Table Tools plugin.
- #16847: Added support for parsing and inlining any formatting created using the Microsoft Word style system to the Paste from Word plugin.
- #16818: Added table cell height parsing in the Paste from Word plugin.
- #16850: Added a new
config.enableContextMenuconfiguration option for enabling and disabling the context menu.
- #16937: The
commandparameter in CKEDITOR.editor.getCommandKeystroke now also accepts a command name as an argument.
- #17010: The
CKEDITOR.dom.range.shrinkmethod now allows for skipping bogus
- #16935: [Chrome] Fixed: Blurring the editor in Source Mode throws an error.
- #16825: [Chrome] Fixed: Error thrown when destroying a focused inline editor.
- #16857: Fixed: Ctrl+Shift+V blocked by Copy Formatting.
- #16845: [IE] Fixed: Cursor jumps to the top of the scrolled editor after focusing it when the Copy Formatting plugin is enabled.
- #16786: Fixed: Added missing translations for the Copy Formatting plugin.
- #14714: [WebKit/Blink] Fixed: Exception thrown on refocusing a blurred inline editor.
- #16913: [Firefox, IE] Fixed: Paste as Plain Text keystroke does not work.
- #16968: Fixed: [Safari] Paste as Plain Text is not handled by the editor.
- #16912: Fixed: Exception thrown when a single image is pasted using Paste from Word.
- #16821: Fixed: Extraneous
heightstyle stacked when pasting from Word.
- #16866: [IE, Edge] Fixed: Whitespaces not preserved when pasting from Word.
- #16860: Fixed: Paragraphs which only look like lists incorrectly transformed into them when pasting from Word.
- #16817: Fixed: When pasting from Word, paragraphs are transformed into lists with some corrupted data.
- #16833: [IE11] Fixed: Malformed list with headers pasted from Word.
- #16826: [IE] Fixed: Superfluous paragraphs within lists pasted from Word.
- #12465: Fixed: Cannot change the state of checkboxes or radio buttons if the properties dialog was invoked with a double-click.
- #13062: Fixed: Impossible to unlink when the caret is at the edge of the link.
- #13585: Fixed: Error when wrapping two adjacent
<div>elements with a
- #16811: Fixed: Table alignment is not preserved by the Paste from Word plugin.
- #16810: Fixed: Vertical align in tables is not supported by the Paste from Word plugin.
- #11956: [Blink, IE] Fixed: Link dialog does not open on a double click on the second word of the link with a background color or other styles.
- #10472: Fixed: Unable to use Table Resize on table header and footer.
- #14762: Fixed: Hovering over an empty table (without rows or cells) throws an error when the Table Resize plugin is active.
- #16777: [Edge] Fixed: The Clipboard plugin does not allow to drop widgets into the editor.
- #14894: [Chrome] Fixed: The editor scrolls to the top after focusing or when a dialog is opened.
- #14769: Fixed: URLs with '-' in host are not detected by the Auto Link plugin.
- #16804: Fixed: Focus is not on the first menu item when the user opens a context menu or a drop-down list from the editor toolbar.
- #14407: [IE] Fixed: Non-editable widgets can be edited.
- #16927: Fixed: An error thrown if a bundle containing the Color Button plugin is run in ES5 strict mode. Thanks to Igor Rubinovich!
- #16920: Fixed: Several plugins not using the Dialog plugin as a direct dependency.
- PR#336: Fixed: Typo in
CKEDITOR.getCssAPI documentation. Thanks to knusperpixel!
- #17027: Fixed: Command event data should be initialized as an empty object.
- Fixed the behavior of HTML parser when parsing
srcdocattributes of the
<iframe>element in a CKEditor setup with ACF turned off and without the Iframe Dialog plugin. The issue was originally reported as a security issue by Sriramk21 from Pegasystems and was later downgraded by the security team into a normal issue due to the requirement of having ACF turned off. Disabling Advanced Content Filter is against security best practices, so the problem described above has not been considered a security issue as such.
- Updated SCAYT (Spell Check As You Type) and WebSpellChecker plugins:
- Fixed: DOM Exception after clicking "Remove Language" on a selected word with enabled Language plugin in SCAYT.
- #16958: Switched the default MathJax CDN provider for the Mathematical Formulas plugin from
cdn.mathjax.orgto cdnjs, due to closing of
cdn.mathjax.orgscheduled for April 30, 2017.
- #16954: Removed the paste dialog.
- #16982: Latest Safari now supports enhanced Clipboard API introduced in CKEditor 4.5.0.
- #17025: Updated Bender.js to 0.4.2.