WordPress.org

Make WordPress Core

Ticket #19845: 19845.5.diff

File 19845.5.diff, 4.4 KB (added by azaozz, 6 years ago)
  • src/wp-includes/js/media-views.js

     
    28062806                tagName:   'div',
    28072807                className: 'uploader-editor',
    28082808                template:  media.template( 'uploader-editor' ),
     2809                _localDrag: false,
    28092810
    28102811                initialize: function() {
     2812                        var self = this;
     2813
    28112814                        this.$document = $(document);
    28122815                        this.dropzones = [];
    28132816                        this.files = [];
     
    28192822                        this.$document.on( 'dragover', _.bind( this.containerDragover, this ) );
    28202823                        this.$document.on( 'dragleave', _.bind( this.containerDragleave, this ) );
    28212824
     2825                        this.$document.on( 'dragstart', function() {
     2826                                self._localDrag = true;
     2827                        });
     2828
     2829                        this.$document.on( 'dragend', function() {
     2830                                self._localDrag = false;
     2831                        });
     2832
    28222833                        return this;
    28232834                },
    28242835
     
    28872898                },
    28882899
    28892900                containerDragover: function() {
    2890                         this.overContainer = true;
    2891                         this.refresh();
     2901                        if ( ! this._localDrag ) {
     2902                                this.overContainer = true;
     2903                                this.refresh();
     2904                        }
    28922905                },
    28932906
    28942907                containerDragleave: function() {
     
    28992912                },
    29002913
    29012914                dropzoneDragover: function( e ) {
    2902                         $( e.target ).addClass( 'droppable' );
    2903                         this.overDropzone = true;
    2904                         _.defer( _.bind( this.refresh, this ) );
    2905                         return false;
     2915                        if ( ! this._localDrag ) {
     2916                                $( e.target ).addClass( 'droppable' );
     2917                                this.overDropzone = true;
     2918                                _.defer( _.bind( this.refresh, this ) );
     2919                                return false;
     2920                        }
    29062921                },
    29072922
    29082923                dropzoneDragleave: function( e ) {
  • src/wp-includes/js/tinymce/plugins/wordpress/plugin.js

     
    1 /* global tinymce, getUserSetting, setUserSetting, switchEditors */
     1/* global tinymce, getUserSetting, setUserSetting */
    22tinymce.PluginManager.add( 'wordpress', function( editor ) {
    33        var DOM = tinymce.DOM, wpAdvButton, modKey, style,
    44                last = 0;
     
    276276        });
    277277
    278278        editor.on( 'init', function() {
    279                 var env = tinymce.Env, topx, reset,
     279                var env = tinymce.Env, topx, reset, localDrag,
    280280                        deltax = 0,
    281281                        bodyClass = ['mceContentBody'], // back-compat for themes that use this in editor-style.css...
    282                         doc = editor.getDoc();
     282                        doc = editor.getDoc(),
     283                        dom = editor.dom;
    283284
    284285                if ( editor.getParam( 'directionality' ) === 'rtl' ) {
    285286                        bodyClass.push('rtl');
     
    299300
    300301                tinymce.each( bodyClass, function( cls ) {
    301302                        if ( cls ) {
    302                                 editor.dom.addClass( doc.body, cls );
     303                                dom.addClass( doc.body, cls );
    303304                        }
    304305                });
    305306
     
    318319
    319320                if ( ! ( 'ontouchstart' in window ) ) {
    320321                        // When scrolling with mouse wheel or trackpad inside the editor, don't scroll the parent window
    321                         editor.dom.bind( doc, 'onwheel' in doc ? 'wheel' : 'mousewheel', function( event ) {
     322                        dom.bind( doc, 'onwheel' in doc ? 'wheel' : 'mousewheel', function( event ) {
    322323                                var delta, top,
    323324                                        docElement = doc.documentElement;
    324325
     
    370371                                event.preventDefault();
    371372                        });
    372373                }
     374
     375                dom.bind( doc, 'dragstart', function() {
     376                        localDrag = true;
     377                });
     378
     379                dom.bind( doc, 'dragend', function() {
     380                        localDrag = false;
     381                });
     382
     383                dom.bind( doc, 'dragover', function( event ) {
     384                        if ( ! localDrag && typeof window.jQuery !== 'undefined' ) {
     385                                // Propagate the event to its container for the parent window to catch.
     386                                window.jQuery( editor.getContainer() ).trigger( event );
     387                        }
     388                });
    373389        });
    374390
    375391        // Word count
     
    399415                // Keep empty paragraphs :(
    400416                e.content = e.content.replace( /<p>(<br ?\/?>|\u00a0|\uFEFF)?<\/p>/g, '<p>&nbsp;</p>' );
    401417
    402                 if ( editor.getParam( 'wpautop', true ) && typeof switchEditors !== 'undefined' ) {
    403                         e.content = switchEditors.pre_wpautop( e.content );
     418                if ( editor.getParam( 'wpautop', true ) && typeof window.switchEditors !== 'undefined' ) {
     419                        e.content = window.switchEditors.pre_wpautop( e.content );
    404420                }
    405421        });
    406422
     
    443459                editor.dom.bind( editor.getBody(), 'dragstart', function() {
    444460                        _hideButtons();
    445461                });
    446 
    447                 editor.dom.bind( editor.getWin(), 'dragover', function(e) {
    448                         if ( typeof window.jQuery !== 'undefined' ) {
    449                                 // Propagate the event to its container for the parent window to catch.
    450                                 jQuery( editor.getContainer() ).trigger(e);
    451                         }
    452                 });
    453462        });
    454463
    455464        editor.on( 'BeforeExecCommand', function() {