Make WordPress Core

Ticket #28272: 28272.2.diff

File 28272.2.diff, 2.4 KB (added by valendesigns, 10 years ago)
  • src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js

    diff --git src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
    index d8b735f..af655ae 100644
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    808808                editor.undoManager.add();
    809809        }
    810810
     811        function selectImageParent( event ) {
     812                var node = editor.selection.getNode(),
     813                  parent = node.parentNode;
     814
     815                if ( node.nodeName === 'IMG' ) {
     816
     817                        // Prevent dragging images out of the caption elements
     818                        if ( event.type == 'dragstart' && editor.dom.getParent( node, '.wp-caption' ) ) {
     819                                event.preventDefault();
     820                        }
     821
     822                        // Select anchor nodes without text content
     823                        if ( parent && parent.nodeName === 'A' && ! hasTextContent( parent ) ) {
     824                                editor.selection.select( parent );
     825                        }
     826
     827                        // Select anchor nodes without text content, which wrap an inner node like strong or em
     828                        if ( parent && parent.nodeName !== 'A' && parent.parentNode && parent.parentNode.nodeName === 'A' && ! hasTextContent( parent.parentNode ) ) {
     829                                editor.selection.select( parent.parentNode );
     830                        }
     831                }
     832        }
     833
    811834        editor.on( 'init', function() {
    812835                var dom = editor.dom,
    813836                        captionClass = editor.getParam( 'wpeditimage_html5_captions' ) ? 'html5-captions' : 'html4-captions';
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    10381061                        }
    10391062                });
    10401063
    1041                 dom.bind( editor.getDoc(), 'dragstart', function( event ) {
    1042                         var node = editor.selection.getNode();
    1043 
    1044                         // Prevent dragging images out of the caption elements
    1045                         if ( node.nodeName === 'IMG' && dom.getParent( node, '.wp-caption' ) ) {
    1046                                 event.preventDefault();
    1047                         }
    1048                 });
    1049 
    10501064                // Prevent IE11 from making dl.wp-caption resizable
    10511065                if ( tinymce.Env.ie && tinymce.Env.ie > 10 ) {
    10521066                        // The 'mscontrolselect' event is supported only in IE11+
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    12201234                }
    12211235        });
    12221236
     1237        editor.on( 'dragstart', function( event ) {
     1238                selectImageParent( event );
     1239        });
     1240
     1241        editor.on( 'contextmenu', function( event ) {
     1242                selectImageParent( event );
     1243        });
     1244
     1245        editor.on( 'keydown', function( event ) {
     1246                if ( tinymce.util.VK.metaKeyPressed( event ) ) {
     1247                        selectImageParent( event );
     1248                }
     1249        });
     1250
    12231251        return {
    12241252                _do_shcode: parseShortcode,
    12251253                _get_shcode: getShortcode