Ticket #6664: 6664.patch
File 6664.patch, 5.7 KB (added by , 13 years ago) |
---|
-
_source/plugins/pagebreak/plugin.js
24 24 25 25 // Add the style that renders our placeholder. 26 26 editor.addCss( 27 'img.cke_pagebreak' + 27 'div.cke_pagebreak, ' + 28 '.cke_show_blocks div.cke_pagebreak' + // Be friendly with "showblocks" plugin. 28 29 '{' + 29 30 'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/pagebreak.gif' ) + ');' + 30 31 'background-position: center center;' + … … 35 36 'width:100% !important; _width:99.9% !important;' + 36 37 'border-top: #999999 1px dotted;' + 37 38 'border-bottom: #999999 1px dotted;' + 39 'padding:0;' + 40 'margin:5px 0px;' + // Leave some places making it easier for the user to put cursor around the page-break. 38 41 'height: 5px !important;' + 39 'page-break-after: always;' +40 41 42 '}' ); 42 43 }, 43 44 … … 46 47 // Register a filter to displaying placeholders after mode change. 47 48 48 49 var dataProcessor = editor.dataProcessor, 49 dataFilter = dataProcessor && dataProcessor.dataFilter; 50 dataFilter = dataProcessor && dataProcessor.dataFilter, 51 htmlFilter = dataProcessor && dataProcessor.htmlFilter; 50 52 53 if ( htmlFilter ) 54 { 55 htmlFilter.addRules( 56 { 57 attributes : { 58 'class' : function( value, element ) 59 { 60 var className = value.replace( 'cke_pagebreak', '' ); 61 if ( className != value ) 62 { 63 var span = CKEDITOR.htmlParser.fragment.fromHtml( '<span style="display: none;"> </span>' ); 64 element.children.length = 0; 65 element.add( span ); 66 var attrs = element.attributes; 67 delete attrs[ 'aria-label' ]; 68 delete attrs.contenteditable; 69 } 70 return className; 71 } 72 } 73 }, 5 ); 74 } 75 51 76 if ( dataFilter ) 52 77 { 53 78 dataFilter.addRules( … … 63 88 64 89 if ( childStyle && ( /page-break-after\s*:\s*always/i ).test( style ) && ( /display\s*:\s*none/i ).test( childStyle ) ) 65 90 { 66 var fakeImg = editor.createFakeParserElement( element, 'cke_pagebreak', 'div' ); 91 attributes.contenteditable = "false"; 92 attributes[ 'class' ] = "cke_pagebreak"; 93 attributes[ '_cke_display_name' ] = "pagebreak"; 94 67 95 var label = editor.lang.pagebreakAlt; 68 fakeImg.attributes[ 'alt' ] = label;69 fakeImg.attributes[ 'aria-label' ] = label; 70 return fakeImg;96 label && ( attributes[ 'aria-label' ] = label ); 97 98 element.children.length = 0; 71 99 } 72 100 } 73 101 } … … 82 110 { 83 111 exec : function( editor ) 84 112 { 85 // Create the element that represents a print break. 113 // Create read-only element that represents a print break. 114 var breakObject = CKEDITOR.dom.element.createFromHtml( '<div style="page-break-after: always;" ' + 115 'contenteditable="false" _cke_display_name="pagebreak" class="cke_pagebreak"></div>' ); 116 86 117 var label = editor.lang.pagebreakAlt; 87 var breakObject = CKEDITOR.dom.element.createFromHtml( '<div style="page-break-after: always;"><span style="display: none;"> </span></div>');118 label && breakObject.setAttribute( 'aria-label', label ); 88 119 89 // Creates the fake image used for this element.90 breakObject = editor.createFakeElement( breakObject, 'cke_pagebreak', 'div' );91 breakObject.setAttribute( 'alt', label );92 breakObject.setAttribute( 'aria-label', label );93 94 120 var ranges = editor.getSelection().getRanges( true ); 95 121 96 122 editor.fire( 'saveSnapshot' ); -
_source/plugins/elementspath/plugin.js
82 82 { 83 83 var index = elementsList.push( element ) - 1; 84 84 var name; 85 if ( element.getAttribute( '_cke_real_element_type' ) ) 85 if ( element.getAttribute( '_cke_display_name' ) ) 86 name = element.getAttribute( '_cke_display_name' ); 87 else if ( element.getAttribute( '_cke_real_element_type' ) ) 86 88 name = element.getAttribute( '_cke_real_element_type' ); 87 89 else 88 90 name = element.getName(); -
_source/plugins/wysiwygarea/plugin.js
18 18 19 19 var notWhitespaceEval = CKEDITOR.dom.walker.whitespaces( true ); 20 20 21 // Elements that could have empty new line around, including table, pre-formatted block, hr, page-break. (#6554) 22 function nonExitable( element ) 23 { 24 return ( element.getName() in nonExitableElementNames ) 25 || element.isBlockBoundary() && CKEDITOR.dtd.$empty[ element.getName() ] 26 || element.isReadOnly(); 27 } 28 21 29 function checkReadOnly( selection ) 22 30 { 23 31 if ( selection.getType() == CKEDITOR.SELECTION_ELEMENT ) … … 317 325 var element = fixedBlock.getNext( isNotWhitespace ); 318 326 if ( element && 319 327 element.type == CKEDITOR.NODE_ELEMENT && 320 !nonExitable ElementNames[ element.getName() ])328 !nonExitable( element ) ) 321 329 { 322 330 range.moveToElementEditStart( element ); 323 331 fixedBlock.remove(); … … 327 335 element = fixedBlock.getPrevious( isNotWhitespace ); 328 336 if ( element && 329 337 element.type == CKEDITOR.NODE_ELEMENT && 330 !nonExitable ElementNames[ element.getName() ])338 !nonExitable( element ) ) 331 339 { 332 340 range.moveToElementEditEnd( element ); 333 341 fixedBlock.remove();