@@ -401,6 +401,7 @@ define( [ "jquery",
401
401
$ ( window ) . one ( "hashchange.popupBinder" , function ( ) {
402
402
realInstallListener ( ) ;
403
403
} ) ;
404
+ $ . mobile . urlHistory . ignoreNextHashChange = true ;
404
405
$ . mobile . path . set ( activeEntry . url + $ . mobile . dialogHashKey ) ;
405
406
$ . mobile . urlHistory . addNew ( activeEntry . url + $ . mobile . dialogHashKey , activeEntry . transition , activeEntry . title , activeEntry . pageUrl , activeEntry . role ) ;
406
407
}
@@ -416,6 +417,12 @@ define( [ "jquery",
416
417
}
417
418
418
419
if ( $ . mobile . hashListeningEnabled && ! abort ) {
420
+ // Opera 11.62 build 1347 on Linux will not fire a hashchange when going back to an identical URL,
421
+ // so we need to set one up with a timeout - make sure _onHashChange reacts well to being called
422
+ // superfluously
423
+ this . _teardownHashChangeTimeout = setTimeout ( function ( ) {
424
+ $ ( window ) . trigger ( "hashchange.popup" ) ;
425
+ } , 300 ) ;
419
426
window . history . back ( ) ;
420
427
}
421
428
else {
@@ -571,6 +578,11 @@ define( [ "jquery",
571
578
_onHashChange : function ( immediate ) {
572
579
this . _haveNavHook = false ;
573
580
581
+ if ( this . _teardownHashChangeTimeout ) {
582
+ clearTimeout ( this . _teardownHashChangeTimeout ) ;
583
+ this . _teardownHashChangeTimeout = 0 ;
584
+ }
585
+
574
586
if ( this . _myOwnHashChange ) {
575
587
this . _myOwnHashChange = false ;
576
588
this . _inProgress = false ;
0 commit comments