WordPress.org

Make WordPress Core

Changeset 30818


Ignore:
Timestamp:
12/11/2014 09:34:18 AM (5 years ago)
Author:
nacin
Message:

Editor focus: Don't trigger when typing while the mouse is outside the editor.

Merges [30817] to the 4.1 branch.

props avryl.
fixes #20668.

Location:
branches/4.1
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.1

  • branches/4.1/src/wp-admin/js/editor-expand.js

    r30743 r30818  
    804804        } );
    805805
     806        function recalcEditorRect() {
     807            editorRect = $editor.offset();
     808            editorRect.right = editorRect.left + $editor.outerWidth();
     809            editorRect.bottom = editorRect.top + $editor.outerHeight();
     810        }
     811
    806812        function activate() {
    807813            if ( ! _isActive ) {
     
    910916                    // Always recalculate the editor area entering the overlay with the mouse.
    911917                    .on( 'mouseenter.focus', function() {
    912                         editorRect = $editor.offset();
    913                         editorRect.right = editorRect.left + $editor.outerWidth();
    914                         editorRect.bottom = editorRect.top + $editor.outerHeight();
     918                        recalcEditorRect();
    915919
    916920                        $window.on( 'scroll.focus', function() {
     
    938942                    // Fade in when the mouse moves away form the editor area.
    939943                    .on( 'mousemove.focus', function( event ) {
    940                         var nx = event.pageX,
    941                             ny = event.pageY;
     944                        var nx = event.clientX,
     945                            ny = event.clientY,
     946                            pageYOffset = window.pageYOffset,
     947                            pageXOffset = window.pageXOffset;
    942948
    943949                        if ( x && y && ( nx !== x || ny !== y ) ) {
    944950                            if (
    945                                 ( ny <= y && ny < editorRect.top ) ||
    946                                 ( ny >= y && ny > editorRect.bottom ) ||
    947                                 ( nx <= x && nx < editorRect.left ) ||
    948                                 ( nx >= x && nx > editorRect.right )
     951                                ( ny <= y && ny < editorRect.top - pageYOffset ) ||
     952                                ( ny >= y && ny > editorRect.bottom - pageYOffset ) ||
     953                                ( nx <= x && nx < editorRect.left - pageXOffset ) ||
     954                                ( nx >= x && nx > editorRect.right - pageXOffset )
    949955                            ) {
    950956                                traveledX += Math.abs( x - nx );
     
    952958
    953959                                if ( (
    954                                     ny <= editorRect.top - buffer ||
    955                                     ny >= editorRect.bottom + buffer ||
    956                                     nx <= editorRect.left - buffer ||
    957                                     nx >= editorRect.right + buffer
     960                                    ny <= editorRect.top - buffer - pageYOffset ||
     961                                    ny >= editorRect.bottom + buffer - pageYOffset ||
     962                                    nx <= editorRect.left - buffer - pageXOffset ||
     963                                    nx >= editorRect.right + buffer - pageXOffset
    958964                                ) && (
    959965                                    traveledX > 10 ||
     
    11521158                    editor.on( 'focus', focus );
    11531159                    editor.on( 'blur', blur );
     1160                    editor.on( 'wp-autoresize', recalcEditorRect );
    11541161                };
    11551162
     
    11591166                    editor.off( 'focus', focus );
    11601167                    editor.off( 'blur', blur );
     1168                    editor.off( 'wp-autoresize', recalcEditorRect );
    11611169                };
    11621170
Note: See TracChangeset for help on using the changeset viewer.