Skip to content
This repository was archived by the owner on Oct 8, 2021. It is now read-only.

Commit 41ad1ab

Browse files
committed
Toolbar: removing popup removes page-header-fixed class
Fixes gh-6987 Fixes gh-6939
1 parent 78bd5b3 commit 41ad1ab

File tree

2 files changed

+24
-19
lines changed

2 files changed

+24
-19
lines changed

js/widgets/fixedToolbar.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -277,19 +277,22 @@ define( [ "jquery", "../widget", "../core", "../animationComplete", "../navigati
277277
},
278278

279279
_destroy: function() {
280-
var $el = this.element,
280+
var classes,
281+
$el = this.element,
281282
header = $el.hasClass( "ui-header" ),
282-
hasFixedChildren = $el.closest( ".ui-page" ).children( ".ui-header-fixed" ).length > 0;
283+
hasFixedChildren = $el
284+
.closest( ".ui-page" )
285+
.children( ".ui-header-fixed" )
286+
.length > 0;
283287

284288
$el.closest( ".ui-page" ).css( "padding-" + ( header ? "top" : "bottom" ), "" );
285289
$el.removeClass( "ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden" );
286-
$el.closest( ".ui-page" ).removeClass( "ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen" );
287-
290+
classes = "ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen";
288291
if ( !hasFixedChildren ) {
289-
290-
$el.closest( ".ui-page" ).removeClass( "ui-page-header-fixed" );
291-
292+
classes += "ui-page-header-fixed";
292293
}
294+
295+
$el.closest( ".ui-page" ).removeClass( classes );
293296
}
294297

295298
});

tests/integration/fixed-toolbar/fixedToolbar.js

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -317,37 +317,39 @@
317317
asyncTest( "page-retains-fixed-header-on-popup-remove" , function() {
318318
expect( 1 );
319319

320-
var pageSelector = "#page-retains-fixed-header-on-popup-removed";
320+
var page = $( "#page-retains-fixed-header-on-popup-removed" ).page();
321321

322322
$.testHelper.pageSequence([
323323
function() {
324-
$.mobile.changePage( pageSelector );
324+
$.mobile.pageContainer.change( page );
325325
},
326326

327327
function() {
328-
var $page = $( pageSelector ),
329-
$popup;
328+
var popup;
330329

331-
$popup = $( "<div data-nstest-role='popup' />" )
330+
popup = $( "<div data-nstest-role='popup' />" )
332331
.append( "<div data-nstest-role='header' />" )
333332
.append( "<h1>Dynamic Popup</h1>" );
334333

335-
$page.append( $popup );
334+
page.append( popup );
336335

337-
$popup.popup( { positionTo: "window" } ).trigger( "create" );
336+
popup.popup( { positionTo: "window" } ).trigger( "create" );
338337

339-
$popup.on( "popupafterclose", function() {
340-
$popup.remove();
341-
ok( $.mobile.activePage.hasClass( "ui-page-header-fixed" ), "page should retain the fixed header after popup is removed" );
338+
popup.on( "popupafterclose", function() {
339+
popup.remove();
340+
ok( $.mobile.pageContainer.
341+
pagecontainer( "getActivePage" )
342+
.hasClass( "ui-page-header-fixed" ),
343+
"page should retain the fixed header after popup is removed" );
342344
start();
343345
});
344346

345-
$popup.popup( "open" ).popup( "close" );
347+
popup.popup( "open" ).popup( "close" );
346348
},
347349

348350
function() {
349351

350-
$.mobile.changePage( "#default" );
352+
$.mobile.pageContainer.change( "#default" );
351353

352354
}
353355
]);

0 commit comments

Comments
 (0)