]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/js/tinymce/plugins/wpview/plugin.js
WordPress 4.1
[autoinstalls/wordpress.git] / wp-includes / js / tinymce / plugins / wpview / plugin.js
index 3de4949f8679a9d9fa76ed9ec0e93b5eb67fa31c..6016e3bdc2c0f1cc800d2975540c08d125e793b5 100644 (file)
@@ -115,8 +115,13 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
                var clipboard,
                        dom = editor.dom;
 
-               // Bail if node is already selected.
-               if ( ! viewNode || viewNode === selected ) {
+               if ( ! viewNode ) {
+                       return;
+               }
+
+               // Adjust the toolbar position and bail if node is already selected.
+               if ( viewNode === selected ) {
+                       adjustToolbarPosition( viewNode );
                        return;
                }
 
@@ -128,6 +133,7 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
                deselect();
                selected = viewNode;
                dom.setAttrib( viewNode, 'data-mce-selected', 1 );
+               adjustToolbarPosition( viewNode );
 
                clipboard = dom.create( 'div', {
                        'class': 'wpview-clipboard',
@@ -151,6 +157,24 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
                editor.fire( 'wpview-selected', viewNode );
        }
 
+       function adjustToolbarPosition( viewNode ) {
+               var delta = 0,
+                       toolbar = editor.$( viewNode ).find( '.toolbar' ),
+                       editorToolbar = tinymce.$( editor.editorContainer ).find( '.mce-toolbar-grp' )[0],
+                       editorToolbarBottom = ( editorToolbar && editorToolbar.getBoundingClientRect().bottom ) || 0;
+               
+               if ( toolbar.length && editor.iframeElement ) {
+                       // 48 = 43 for the toolbar + 5 buffer
+                       delta = viewNode.getBoundingClientRect().top + editor.iframeElement.getBoundingClientRect().top - editorToolbarBottom - 48;
+               }
+
+               if ( delta < 0 ) {
+                       toolbar.removeClass( 'mce-arrow-down' ).css({ top: ( -43 + delta * -1 ) });
+               } else if ( delta > 0 && ! toolbar.hasClass( 'mce-arrow-down' ) ) {
+                       toolbar.addClass( 'mce-arrow-down' ).css({ top: '' });
+               }
+       }
+
        /**
         * Deselect a selected view and remove clipboard
         */