From e01f30ae20f577d75436d75f92a95d89756832fb Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Thu, 24 Jan 2019 11:23:28 +0000 Subject: [PATCH] TinyMCE Classic Block: fix repositioning of the inline toolbar on scrolling. Props iseulde, azaozz. Fixes #46062. git-svn-id: https://develop.svn.wordpress.org/trunk@44697 602fd350-edb4-49c9-b593-d223f7449a82 --- .../vendor/tinymce/plugins/wordpress/plugin.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/js/_enqueues/vendor/tinymce/plugins/wordpress/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/wordpress/plugin.js index 252d4d642e..3f2cf567ac 100644 --- a/src/js/_enqueues/vendor/tinymce/plugins/wordpress/plugin.js +++ b/src/js/_enqueues/vendor/tinymce/plugins/wordpress/plugin.js @@ -1064,12 +1064,20 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) { } } - // For full height editor. - editor.on( 'resizewindow scrollwindow', hide ); - // For scrollable editor. - editor.dom.bind( editor.getWin(), 'resize scroll', hide ); + editor.dom.bind( editor.getWin(), 'resize', hide ); + + if ( editor.inline ) { + // Enable `capture` for the event. + // This will hide/reposition the toolbar on any scrolling in the document. + document.addEventListener( 'scroll', hide, true ); + } else { + editor.dom.bind( editor.getWin(), 'scroll', hide ); + // For full height iframe editor. + editor.on( 'resizewindow scrollwindow', hide ); + } editor.on( 'remove', function() { + document.removeEventListener( 'scroll', hide, true ); editor.off( 'resizewindow scrollwindow', hide ); editor.dom.unbind( editor.getWin(), 'resize scroll', hide ); } );