Esanders has uploaded a new change for review. https://gerrit.wikimedia.org/r/179598
Change subject: Prevent parent window scroll in modal mode using overflow hidden ...................................................................... Prevent parent window scroll in modal mode using overflow hidden This appears to be the least evil way to achieve this, as scroll events are not cancelable. Remove previous technique which only worked for keystrokes. See http://stackoverflow.com/questions/1459676 Change-Id: Ib0d120676d54b92fdc6fd483088c24d45438feae --- M src/WindowManager.js 1 file changed, 12 insertions(+), 7 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/oojs/ui refs/changes/98/179598/1 diff --git a/src/WindowManager.js b/src/WindowManager.js index 0a231b9..da7f718 100644 --- a/src/WindowManager.js +++ b/src/WindowManager.js @@ -184,10 +184,9 @@ * * @param {jQuery.Event} e Mouse wheel event */ -OO.ui.WindowManager.prototype.onWindowMouseWheel = function ( e ) { - // Kill all events in the parent window if the child window is isolated, - // or if the event didn't come from the child window - return !( this.shouldIsolate() || !$.contains( this.getCurrentWindow().$frame[0], e.target ) ); +OO.ui.WindowManager.prototype.onWindowMouseWheel = function () { + // Kill all events in the parent window if the child window is isolated + return !this.shouldIsolate(); }; /** @@ -205,9 +204,8 @@ case OO.ui.Keys.UP: case OO.ui.Keys.RIGHT: case OO.ui.Keys.DOWN: - // Kill all events in the parent window if the child window is isolated, - // or if the event didn't come from the child window - return !( this.shouldIsolate() || !$.contains( this.getCurrentWindow().$frame[0], e.target ) ); + // Kill all events in the parent window if the child window is isolated + return !this.shouldIsolate(); } }; @@ -637,6 +635,10 @@ // Start listening for top-level window dimension changes 'orientationchange resize': this.onWindowResizeHandler } ); + // Disable window scrolling in isolated windows + if ( !this.shouldIsolate() ) { + $( this.getElementDocument().body ).css( 'overflow', 'hidden' ); + } this.globalEvents = true; } } else if ( this.globalEvents ) { @@ -651,6 +653,9 @@ // Stop listening for top-level window dimension changes 'orientationchange resize': this.onWindowResizeHandler } ); + if ( !this.shouldIsolate() ) { + $( this.getElementDocument().body ).css( 'overflow', '' ); + } this.globalEvents = false; } -- To view, visit https://gerrit.wikimedia.org/r/179598 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib0d120676d54b92fdc6fd483088c24d45438feae Gerrit-PatchSet: 1 Gerrit-Project: oojs/ui Gerrit-Branch: master Gerrit-Owner: Esanders <esand...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits