#9764: Widget System.
- Widget plugin introducing the Widget API.
- New editor.enterMode and editor.shiftEnterMode properties – normalized versions of config.enterMode andconfig.shiftEnterMode.
- Dynamic editor settings. Starting from CKEditor 4.3 Beta, Enter mode values and content filter instances may be changed dynamically (for example when the caret was placed in an element in which editor features should be adjusted). When you are implementing a new editor feature, you should base its behavior on dynamic or static Enter mode values depending on whether this feature works in selection context or globally on editor content.
- Dynamic Enter mode values – editor.setActiveEnterMode method, editor.activeEnterModeChange event, and two properties: editor.activeEnterMode and editor.activeShiftEnterMode.
- Dynamic content filter instances – editor.setActiveFilter method, editor.activeFilterChange event, andeditor.activeFilter property.
- "Fake" selection was introduced. It makes it possible to virtually select any element when the real selection remains hidden. See the selection.fake method.
- Default htmlParser.filter rules are not applied to non-editable elements (elements with contenteditable attribute set to false and their descendants) anymore. To add a rule which will be applied to all elements you need to pass an additional argument to the filter.addRules method.
- Dozens of new methods were introduced – most interesting ones:
- #10659: New Enhanced Image plugin that introduces a widget with integrated image captions, an option to center images, and dynamic "click and drag" resizing.
- #10664: New Mathematical Formulas plugin that introduces the MathJax widget.
- #7987: New Language plugin that implements Language toolbar button to support WCAG 3.1.2 Language of Parts.
- #10708: New smileys.