Index: _source/plugins/tableresize/plugin.js =================================================================== --- _source/plugins/tableresize/plugin.js (revision 5572) +++ _source/plugins/tableresize/plugin.js (revision ) @@ -103,7 +103,7 @@ function columnResizer( editor ) { - var pillar, document, resizer, startOffset, currentShift; + var pillar, document, resizer, startOffset, currentShift = null; var leftSideCells, rightSideCells, leftShiftBoundary, rightShiftBoundary; @@ -115,7 +115,7 @@ document.removeListener( 'mouseup', onMouseUp ); resizer.removeListener( 'mousedown', onMouseDown ); resizer.removeListener( 'mouseout', onMouseOut ); - resizer.hide(); + resizer.remove(); } function resizeStart() @@ -148,7 +148,7 @@ rightSideCells = rightColumnCells; leftShiftBoundary = pillar.x - leftMinSize; rightShiftBoundary = pillar.x + rightMinSize; - + resizer.setOpacity( 0.5 ); startOffset = parseInt( resizer.getStyle( 'left' ), 10 ); currentShift = 0; @@ -225,17 +225,35 @@ } document = editor.document; - resizer = CKEDITOR.dom.element.createFromHtml( '
' ); - // Place the resizer after body to prevent it from being editable. - document.getDocumentElement().append( resizer ); + resizer.on( 'resizestart', function( e ) + { + e.data.$.returnValue = false; + return false; + }); + + resizer.on( 'drag', function( e ) + { + e.data.$.returnValue = false; + return false; + }); + + resizer.on( 'dragstart', function( e ) + { + e.data.$.returnValue = false; + return false; + }); + this.attachTo = function( targetPillar ) { // Accept only one pillar at a time. - if ( currentShift ) + if ( currentShift !== null ) return; + document.getBody().append( resizer ); + pillar = targetPillar; resizer.setStyles( { @@ -247,6 +265,7 @@ resizer.on( 'mousedown', onMouseDown, this ); resizer.on( 'mouseout', onMouseOut, this ); + currentShift = 0; // Display the resizer to receive events but don't show it, // only change the cursor to resizable shape. @@ -265,7 +284,7 @@ return; var dest = new CKEDITOR.dom.element( evt.data.$.relatedTarget || evt.data.$.toElement ); - while( dest && !dest.equals( target ) && !dest.is( 'body' ) ) + while( dest && dest.$ && !dest.equals( target ) && !dest.is( 'body' ) ) dest = dest.getParent(); if ( !dest || dest.equals( target ) ) return; @@ -286,6 +305,7 @@ editor.document.getBody().on( 'mousemove', function( evt ) { evt = evt.data; + if ( window.bar ) debugger; // Considering table, tr, td, tbody but nothing else. var target = evt.getTarget(); @@ -306,6 +326,8 @@ var pillar = getPillarAtPosition( pillars, { x : evt.$.clientX, y : evt.$.clientY } ); if ( pillar ) { + if ( window.foo ) debugger; + !resizer && ( resizer = new columnResizer( editor ) ); resizer.attachTo( pillar ); }