JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.4b
[ckeditor.git] / _source / plugins / pagebreak / plugin.js
index cd70e55..8c0c9f7 100644 (file)
@@ -32,10 +32,11 @@ CKEDITOR.plugins.add( 'pagebreak',
                                'clear: both;' +\r
                                'display: block;' +\r
                                'float: none;' +\r
-                               'width: 100%;' +\r
+                               'width:100% !important; _width:99.9% !important;' +\r
                                'border-top: #999999 1px dotted;' +\r
                                'border-bottom: #999999 1px dotted;' +\r
-                               'height: 5px;' +\r
+                               'height: 5px !important;' +\r
+                               'page-break-after: always;' +\r
 \r
                        '}' );\r
        },\r
@@ -81,17 +82,31 @@ CKEDITOR.plugins.pagebreakCmd =
                // Creates the fake image used for this element.\r
                breakObject = editor.createFakeElement( breakObject, 'cke_pagebreak', 'div' );\r
 \r
-               var ranges = editor.getSelection().getRanges();\r
+               var ranges = editor.getSelection().getRanges( true );\r
 \r
-               for ( var range, i = 0 ; i < ranges.length ; i++ )\r
+               editor.fire( 'saveSnapshot' );\r
+\r
+               for ( var range, i = ranges.length - 1 ; i >= 0; i-- )\r
                {\r
                        range = ranges[ i ];\r
 \r
-                       if ( i > 0 )\r
+                       if ( i < ranges.length -1 )\r
                                breakObject = breakObject.clone( true );\r
 \r
                        range.splitBlock( 'p' );\r
                        range.insertNode( breakObject );\r
+                       if ( i == ranges.length - 1 )\r
+                       {\r
+                               range.moveToPosition( breakObject, CKEDITOR.POSITION_AFTER_END );\r
+                               range.select();\r
+                       }\r
+\r
+                       var previous = breakObject.getPrevious();\r
+\r
+                       if ( CKEDITOR.dtd[ previous.getName() ].div )\r
+                               breakObject.move( previous );\r
                }\r
+\r
+               editor.fire( 'saveSnapshot' );\r
        }\r
 };\r