Important Notes:
-
#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
config.imageUploadUrl
property.
New Features:
- #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.keystrokeToArray
method. It converts a keystroke into its string representation, returning every key name as a separate array element. -
#1053: Introduced the
CKEDITOR.tools.object.merge
method. It allows to merge two objects, returning the new object with all properties from both objects deeply cloned. -
#1073: Introduced the
CKEDITOR.tools.array.every
method. It invokes a given test function on every array element and returnstrue
if all elements pass the test.
Fixed Issues:
- #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.focus
API 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_colors
option are not correctly highlighted in the Color Button Text Color or Background Color panel. -
#1094: Fixed: Widget definition
upcast
methods 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
uploadWidgetDefinition
. - #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.skin
is 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.
API Changes:
-
#1097: Widget
upcast
methods are now called in the widget definition's context. -
#1118: Added the
show
option in theballoonPanel.attach
method, allowing to attach a hidden Balloon Panelinstance. -
#1145: Added the
skipNotifications
option to theCKEDITOR.fileTools.uploadWidgetDefinition
, allowing to switch off default notifications displayed by upload widgets.
Other Changes:
New Features:
-
#568: Added possibility to adjust nested editables' filters using the
CKEDITOR.filter.disallowedContent
property.
Fixed Issues:
-
#554: Fixed:
change
event not fired when typing the first character after pasting into the editor. Thanks to Daniel Miller! -
#566: Fixed: The CSS
border
shorthand 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.enterMode
is set toCKEDITOR.ENTER_BR
. - #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.
Other Changes:
- Updated the WebSpellChecker plugin:
- #40: Fixed: IE10 throws an error when spell checking is started.
-
#800: Added the
CKEDITOR.dom.selection.isCollapsed
method 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
CKEDITOR.dialogCommand
.
New Features:
- #455: Added Advanced Content Filter integration with the Justify plugin.
Fixed Issues:
-
#663: [Chrome] Fixed: Clicking the scrollbar throws an
Uncaught TypeError: element.is is not a function
error. - #520: Fixed: Widgets cannot be properly pasted into a table cell.
-
#579: Fixed: Internal
cke_table-faked-selection-table
class 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.cloneContents
method selects the whole element when the selection starts at the beginning of that element. -
#644: Fixed: The
range.extractContents
method returns an incorrect result when multiple nodes are selected. -
#684: Fixed: The
elementPath.contains
method incorrectly excludes the last element instead of root when thefromTop
parameter is set totrue
.
Other Changes:
- Updated the SCAYT (Spell Check As You Type) plugin:
- #148: Fixed: SCAYT leaves underlined word after the CKEditor Replace dialog corrects it.
-
#751: Added the
CKEDITOR.dom.nodeList.toArray
method which returns an array representation of a node list.
New Features:
- Added a new Mexican Spanish localization. Thanks to David Alexandro Rodriguez!
- #413: Added Paste as Plain Text keyboard shortcut to the Accessibility Help instructions.
Fixed Issues:
- #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.getCommandKeystroke
method does not obtain the correct keystroke. - #534: [IE] Fixed: Paste from Word does not work in Quirks Mode.
-
#450: Fixed:
CKEDITOR.filter
incorrectly transforms themargin
CSS property.
Important Notes:
-
#13793: The
embed_provider
configuration 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.0
library which has some known vulnerabilities (it's a security precaution, there was no security issue in CKEditor due to the way it was used).
New Features:
- #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.template
removed. CKEditor can now be used with theunsafe-eval
Content Security Policy. Thanks to Caridy Patiño! -
#16971: Added support for color in the
background
property 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.enableContextMenu
configuration option for enabling and disabling the context menu. -
#16937: The
command
parameter in CKEDITOR.editor.getCommandKeystroke now also accepts a command name as an argument. -
#17010: The
CKEDITOR.dom.range.shrink
method now allows for skipping bogus<br>
elements.
Fixed Issues:
- #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
<span>
elements withheight
style 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<div>
. - #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.getCss
API documentation. Thanks to knusperpixel! - #17027: Fixed: Command event data should be initialized as an empty object.
- Fixed the behavior of HTML parser when parsing
src
/srcdoc
attributes 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.
Other Changes:
- 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.org
to cdnjs, due to closing ofcdn.mathjax.org
scheduled 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.