JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.3.2
[ckeditor.git] / _source / plugins / pagebreak / plugin.js
index eaee4a6..5587330 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -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
@@ -55,7 +56,8 @@ CKEDITOR.plugins.add( 'pagebreak',
                                        {\r
                                                div : function( element )\r
                                                {\r
-                                                       var style = element.attributes.style,\r
+                                                       var attributes = element.attributes,\r
+                                                               style = attributes && attributes.style,\r
                                                                child = style && element.children.length == 1 && element.children[ 0 ],\r
                                                                childStyle = child && ( child.name == 'span' ) && child.attributes.style;\r
 \r
@@ -82,6 +84,8 @@ CKEDITOR.plugins.pagebreakCmd =
 \r
                var ranges = editor.getSelection().getRanges();\r
 \r
+               editor.fire( 'saveSnapshot' );\r
+\r
                for ( var range, i = 0 ; i < ranges.length ; i++ )\r
                {\r
                        range = ranges[ i ];\r
@@ -91,6 +95,18 @@ CKEDITOR.plugins.pagebreakCmd =
 \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