Ticket #7358: 7358_2.patch
File 7358_2.patch, 1.7 KB (added by , 13 years ago) |
---|
-
_source/plugins/selection/plugin.js
70 70 71 71 // #### checkSelectionChange : END 72 72 73 function rangeRequiresFix( range ) 74 { 75 function isInlineCt( node ) 76 { 77 return node && node.type == CKEDITOR.NODE_ELEMENT 78 && node.getName() in CKEDITOR.dtd.$removeEmpty; 79 } 80 81 var start = range.startContainer, 82 offset = range.startOffset; 83 84 if ( start.type == CKEDITOR.NODE_TEXT ) 85 return false; 86 87 // 1. Empty inline element. <span>^</span> 88 // 2. Adjoin to inline element. <p><strong>text</strong>^</p> 89 return !CKEDITOR.tools.trim( start.getHtml() ) ? isInlineCt( start ) : isInlineCt( start.getChild( offset - 1 ) ) || isInlineCt( start.getChild( offset ) ) 90 } 91 73 92 var selectAllCmd = 74 93 { 75 94 modes : { wysiwyg : 1, source : 1 }, … … 158 177 // executed, so they'll not get blocked by it. 159 178 switch ( e.data.keyCode ) 160 179 { 180 case 13 : // ENTER 181 case CKEDITOR.SHIFT + 13 : // SHIFT-ENTER 161 182 case 37 : // LEFT-ARROW 162 183 case 39 : // RIGHT-ARROW 163 184 case 8 : // BACKSPACE 164 185 removeFillingChar( editor.document ); 165 186 } 166 } );187 }, null, null, 10 ); 167 188 168 189 var fillingCharBefore; 169 190 function beforeData() … … 1256 1277 startContainer.appendText( '' ); 1257 1278 } 1258 1279 1259 if ( range.collapsed && CKEDITOR.env.webkit ) 1280 if ( range.collapsed 1281 && CKEDITOR.env.webkit 1282 && rangeRequiresFix( range ) ) 1260 1283 { 1261 1284 // Append a zero-width space so WebKit will not try to 1262 1285 // move the selection by itself (#1272).