Ticket #6146: 6146.patch
File 6146.patch, 3.2 KB (added by , 13 years ago) |
---|
-
_source/core/dom/element.js
1219 1219 return null; 1220 1220 }, 1221 1221 1222 getDocumentPosition : function( refDocument )1222 getDocumentPosition : function( refDocument, ignoreXScrolling ) 1223 1223 { 1224 1224 var x = 0, y = 0, 1225 body = this.getDocument().getBody(), 1226 quirks = this.getDocument().$.compatMode == 'BackCompat'; 1225 doc = this.getDocument(), 1226 body = doc.getBody(), 1227 quirks = doc.$.compatMode == 'BackCompat'; 1227 1228 1228 var doc = this.getDocument();1229 1229 1230 1230 if ( document.documentElement[ "getBoundingClientRect" ] ) 1231 1231 { … … 1257 1257 1258 1258 if ( needAdjustScrollAndBorders ) 1259 1259 { 1260 x = box.left + ( !quirks && $docElem.scrollLeft || body.$.scrollLeft ); 1260 x = box.left; 1261 // The scrolling addition might cause problems (#6146). 1262 if ( !CKEDITOR.env.ie || ( ignoreXScrolling && CKEDITOR.env.ie ) ) 1263 x += ( !quirks && $docElem.scrollLeft || body.$.scrollLeft ); 1261 1264 x -= clientLeft; 1262 1265 y = box.top + ( !quirks && $docElem.scrollTop || body.$.scrollTop ); 1263 1266 y -= clientTop; -
_source/plugins/floatpanel/plugin.js
16 16 function getPanel( editor, doc, parentElement, definition, level ) 17 17 { 18 18 // Generates the panel key: docId-eleId-skinName-langDir[-uiColor][-CSSs][-level] 19 var key = 20 doc.getUniqueId() + 21 '-' + parentElement.getUniqueId() + 22 '-' + editor.skinName + 23 '-' + editor.lang.dir + 24 ( ( editor.uiColor && ( '-' + editor.uiColor ) ) || '' ) + 25 ( ( definition.css && ( '-' + definition.css ) ) || '' ) + 26 ( ( level && ( '-' + level ) ) || '' ); 19 var key = CKEDITOR.tools.genKey( doc.getUniqueId(), parentElement.getUniqueId(), editor.skinName, 20 editor.lang.dir, editor.uiColor || '', definition.css || '', level || '' ); 27 21 28 22 var panel = panels[ key ]; 29 23 … … 98 92 3 = bottom-left 99 93 4 = bottom-right 100 94 */ 101 showBlock : function( name, offsetParent, corner, offsetX, offsetY )95 showBlock : function( name, offsetParent, corner, offsetX, offsetY, ignoreXScrolling ) 102 96 { 103 97 var panel = this._.panel, 104 98 block = panel.showBlock( name ); … … 109 103 var element = this.element, 110 104 iframe = this._.iframe, 111 105 definition = this._.definition, 112 position = offsetParent.getDocumentPosition( element.getDocument() ),106 position = offsetParent.getDocumentPosition( element.getDocument(), ignoreXScrolling ), 113 107 rtl = this._.dir == 'rtl'; 114 108 115 109 var left = position.x + ( offsetX || 0 ), -
_source/plugins/panelbutton/plugin.js
36 36 return; 37 37 } 38 38 39 _.panel.showBlock( this._.id, this.document.getById( this._.id ), 4 );39 _.panel.showBlock( this._.id, this.document.getById( this._.id ), 4, 0, 0, 1 ); 40 40 }; 41 41 42 42