From 292f42dc7ce175e53ea4851e9cd7e560869120d3 Mon Sep 17 00:00:00 2001 From: Gilles Dubuc Date: Wed, 23 Apr 2014 02:26:07 +0200 Subject: [PATCH] Fix Chrome bug where popstate could still reset scroll position Change-Id: I3418b2e446a210a406daacc1321103df1f09caa1 Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/486 --- resources/mmv/mmv.bootstrap.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/resources/mmv/mmv.bootstrap.js b/resources/mmv/mmv.bootstrap.js index 293600e42..9e5448a3d 100755 --- a/resources/mmv/mmv.bootstrap.js +++ b/resources/mmv/mmv.bootstrap.js @@ -373,6 +373,8 @@ * Cleans up the overlay */ MMVB.cleanupOverlay = function () { + var bootstrap = this; + $( document.body ).removeClass( 'mw-mmv-lightbox-open' ); if ( this.$overlay ) { @@ -380,8 +382,8 @@ } if ( this.savedScroll ) { - $.scrollTo( this.savedScroll, 0 ); - this.savedScroll = undefined; + // setTimeout because otherwise Chrome will scroll back to top after the popstate event handlers run + setTimeout( function() { $.scrollTo( bootstrap.savedScroll, 0 ); bootstrap.savedScroll = undefined; }, 0 ); } };