JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.5
[ckeditor.git] / _source / plugins / pagebreak / plugin.js
index 3a1c642..04d22ae 100644 (file)
@@ -32,10 +32,10 @@ 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
@@ -62,7 +62,13 @@ CKEDITOR.plugins.add( 'pagebreak',
                                                                childStyle = child && ( child.name == 'span' ) && child.attributes.style;\r
 \r
                                                        if ( childStyle && ( /page-break-after\s*:\s*always/i ).test( style ) && ( /display\s*:\s*none/i ).test( childStyle ) )\r
-                                                               return editor.createFakeParserElement( element, 'cke_pagebreak', 'div' );\r
+                                                       {\r
+                                                               var fakeImg = editor.createFakeParserElement( element, 'cke_pagebreak', 'div' );\r
+                                                               var label = editor.lang.pagebreakAlt;\r
+                                                               fakeImg.attributes[ 'alt' ] = label;\r
+                                                               fakeImg.attributes[ 'aria-label' ] = label;\r
+                                                               return fakeImg;\r
+                                                       }\r
                                                }\r
                                        }\r
                                });\r
@@ -77,22 +83,38 @@ CKEDITOR.plugins.pagebreakCmd =
        exec : function( editor )\r
        {\r
                // Create the element that represents a print break.\r
+               var label = editor.lang.pagebreakAlt;\r
                var breakObject = CKEDITOR.dom.element.createFromHtml( '<div style="page-break-after: always;"><span style="display: none;">&nbsp;</span></div>' );\r
 \r
                // Creates the fake image used for this element.\r
                breakObject = editor.createFakeElement( breakObject, 'cke_pagebreak', 'div' );\r
+               breakObject.setAttributes( { alt : label, 'aria-label' : label, title : label } );\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 ( previous && CKEDITOR.dtd[ previous.getName() ].div )\r
+                               breakObject.move( previous );\r
                }\r
+\r
+               editor.fire( 'saveSnapshot' );\r
        }\r
 };\r