JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.4.2
[ckeditor.git] / _source / plugins / div / dialogs / div.js
index c1bfb8f..4b67ed2 100644 (file)
                        var containedBlocks = [], block;\r
 \r
                        // Get all ranges from the selection.\r
-                       var selection = editor.document.getSelection();\r
-                       var ranges = selection.getRanges();\r
+                       var selection = editor.document.getSelection(),\r
+                               ranges = selection.getRanges();\r
                        var bookmarks = selection.createBookmarks();\r
                        var i, iterator;\r
 \r
                                                                {\r
                                                                        var styleName;\r
                                                                        if ( ( styleName = this.getValue() ) )\r
-                                                                               styles[ styleName ].applyToObject( element );\r
+                                                                       {\r
+                                                                               var style = styles[ styleName ];\r
+                                                                               var customData = element.getCustomData( 'elementStyle' ) || '';\r
+\r
+                                                                               style.applyToObject( element );\r
+                                                                               element.setCustomData( 'elementStyle', customData + style._.definition.attributes.style );\r
+                                                                       }\r
                                                                }\r
                                                        },\r
                                                        {\r
                                                                                        commit : function( element )\r
                                                                                        {\r
                                                                                                // Merge with 'elementStyle', which is of higher priority.\r
-                                                                                               var value = this.getValue(),\r
-                                                                                                               merged = [ value, element.getAttribute( 'style' ) ].join( ';' );\r
-                                                                                               value && element.setAttribute( 'style', merged );\r
+                                                                                               var merged = this.getValue() + ( element.getCustomData( 'elementStyle' ) || '' );\r
+                                                                                               element.setAttribute( 'style', merged );\r
                                                                                        }\r
                                                                                }\r
                                                                ]\r
                        ],\r
                        onLoad : function()\r
                        {\r
-                               setupFields.call(this);\r
+                               setupFields.call( this );\r
 \r
                                // Preparing for the 'elementStyle' field.\r
                                var dialog = this,\r
                        },\r
                        onOk : function()\r
                        {\r
-                               editor.fire( 'saveSnapshot' );\r
                                if ( command == 'editdiv' )\r
                                        containers = [ this._element ];\r
                                else\r
                                        // Remove empty 'style' attribute.\r
                                        !containers[ i ].getAttribute( 'style' ) && containers[ i ].removeAttribute( 'style' );\r
                                }\r
-                               editor.fire( 'saveSnapshot' );\r
 \r
                                this.hide();\r
                        },\r
                        onHide : function()\r
                        {\r
+                               // Remove style only when editing existing DIV. (#6315)\r
+                               if ( command == 'editdiv' )\r
+                                       this._element.removeCustomData( 'elementStyle' );\r
                                delete this._element;\r
                        }\r
                };\r