Ticket #1648: 1648.patch

File 1648.patch, 4.2 KB (added by Alfonso Martínez de Lizarrondo, 12 years ago)

proposal

  • fckplugin.js

     
    1010        "_MaximumX" : null,
    1111        "_LastX" : null,
    1212        "_TableMap" : null,
     13        "_doc" : document,
    1314        "_IsInsideNode" : function( w, domNode, pos )
    1415        {
    1516                var myCoords = FCKTools.GetWindowPosition( w, domNode ) ;
     
    99100
    100101                // Calculate maximum and minimum x-coordinate delta.
    101102                var borderIndex = FCKDragTableHandler._GetResizeBarPosition() ;
    102                 var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
     103                var offset = FCKDragTableHandler._GetIframeOffset();
    103104                var table = FCKTools.GetElementAscensor( FCKDragTableHandler._LeftCell, "table" );
    104105                var minX = null ;
    105106                var maxX = null ;
     
    309310                var mouseY = evt.clientY ;
    310311                if ( node.ownerDocument == document )
    311312                {
    312                         var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
     313                        var offset = this._GetIframeOffset() ;
    313314                        mouseX -= offset.x ;
    314315                        mouseY -= offset.y ;
    315316                }
     
    373374                var node = evt.srcElement || evt.target ;
    374375                if ( node.ownerDocument == FCK.EditorDocument )
    375376                {
    376                         var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
     377                        var offset = this._GetIframeOffset() ;
    377378                        mouse.x += offset.x ;
    378379                        mouse.y += offset.y ;
    379380                }
     
    392393        {
    393394                if ( this._ResizeBar == null )
    394395                {
    395                         this._ResizeBar = document.createElement( "div" ) ;
     396                        this._ResizeBar = this._doc.createElement( "div" ) ;
    396397                        var paddingBar = this._ResizeBar ;
    397398                        var paddingStyles = { 'position' : 'absolute', 'cursor' : 'e-resize' } ;
    398399                        if ( FCKBrowserInfo.IsIE )
     
    400401                        else
    401402                                paddingStyles.opacity = 0.10 ;
    402403                        FCKDomTools.SetElementStyles( paddingBar, paddingStyles ) ;
    403                         document.body.appendChild( paddingBar ) ;
     404                        this._avoidStyles( paddingBar );
     405                        paddingBar.setAttribute('_fcktemp', true);
     406                        this._doc.body.appendChild( paddingBar ) ;
    404407                        FCKTools.AddEventListener( paddingBar, "mousemove", this._ResizeBarMouseMoveListener ) ;
    405408                        FCKTools.AddEventListener( paddingBar, "mousedown", this._ResizeBarMouseDownListener ) ;
    406409                        FCKTools.AddEventListener( document, "mouseup", this._ResizeBarMouseUpListener ) ;
     
    408411
    409412                        // IE doesn't let the tranparent part of the padding block to receive mouse events unless there's something inside.
    410413                        // So we need to create a spacer image to fill the block up.
    411                         var filler = document.createElement( "img" ) ;
     414                        var filler = this._doc.createElement( "img" ) ;
     415                        filler.setAttribute('_fcktemp', true);
    412416                        filler.border = 0 ;
    413417                        filler.src = FCKConfig.BasePath + "images/spacer.gif" ;
    414418                        filler.style.position = "absolute" ;
     
    429433                }
    430434
    431435                var paddingBar = this._ResizeBar ;
    432                 var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
    433                 var tablePos = FCKTools.GetWindowPosition( w, table ) ;
     436                var offset = this._GetIframeOffset() ;
     437                var tablePos = this._GetTablePosition( w, table ) ;
    434438                var barHeight = table.offsetHeight ;
    435439                var barTop = offset.y + tablePos.y ;
    436440                // Do not let the resize bar intrude into the toolbar area.
     
    471475                var visibleBar = null ;
    472476                if ( paddingBar.getElementsByTagName( "div" ).length < 1 )
    473477                {
    474                         visibleBar = document.createElement( "div" ) ;
     478                        visibleBar = this._doc.createElement( "div" ) ;
     479                        this._avoidStyles( visibleBar );
     480                        visibleBar.setAttribute('_fcktemp', true);
    475481                        paddingBar.appendChild( visibleBar ) ;
    476482                }
    477483                else
     
    497503                                        top             : '-100000px',
    498504                                        left    : '-100000px'
    499505                                } ) ;
     506        },
     507        "_GetIframeOffset" : function ()
     508        {
     509                return FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
     510        },
     511        "_GetTablePosition" : function ( w, table )
     512        {
     513                return FCKTools.GetWindowPosition( w, table ) ;
     514        },
     515        "_avoidStyles" : function( element )
     516        {
     517                FCKDomTools.SetElementStyles( element,
     518                        {
     519                                padding         : '0',
     520                                backgroundImage : 'none',
     521                                border          : '0'
     522                        } ) ;
     523
     524        },
     525        "AfterSetHTML" : function()
     526        {
     527                FCKDragTableHandler._ResizeBar = null ;
     528                FCKDragTableHandler._doc = FCK.EditorDocument ;
    500529        }
     530
    501531};
    502532
    503533FCK.Events.AttachEvent( "OnMouseMove", FCKDragTableHandler.MouseMoveListener ) ;
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy