Skip to content

Commit d9750c8

Browse files
committed
Take '$.ui.dialog.maxZ' and 'self.overlay' into account.
1 parent 9ca8d93 commit d9750c8

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

tests/unit/dialog/dialog_options.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ test("width", function() {
442442
});
443443

444444
test("zIndex", function() {
445-
expect(6);
445+
expect(9);
446446

447447
el = $('<div></div>').dialog( { autoOpen: false } );
448448
equals(dlg().css( 'zIndex' ), 1000, "default zIndex");
@@ -454,11 +454,16 @@ test("zIndex", function() {
454454
equals(dlg().css( 'zIndex' ), $.ui.dialog.maxZ, "default zIndex");
455455
el.remove();
456456

457-
// The z-index will always be 1 higher than requested if 'moveToTop' gets called, such as when 'autoOpen' is true.
458-
el = $('<div></div>').dialog({zIndex: 2932 });
459-
equals(dlg().css('zIndex'), 2932 + 1, "explicit zIndex");
457+
// The z-index will be 1 higher than requested if 'moveToTop' gets called, such as when 'autoOpen' is true.
458+
newZIndex = $.ui.dialog.maxZ + 2932;
459+
el = $('<div></div>').dialog({zIndex: newZIndex });
460+
equals(dlg().css('zIndex'), newZIndex + 1, "explicit zIndex");
461+
equals( el.dialog( 'option', 'zIndex' ), newZIndex, 'get works for zIndex' );
462+
equals( newZIndex + 1, $.ui.dialog.maxZ, '$.ui.dialog.maxZ is updated to the new value' );
463+
460464
el.dialog('option', 'zIndex', 1748);
461465
equals(dlg().css('zIndex'), 1748, 'explicit zIndex after init');
466+
equals( el.dialog( 'option', 'zIndex' ), 1748 );
462467
el.remove();
463468

464469
// At the moment, an explicit zIndex option lower than $.ui.dialog.maxZ will be ignored since 'open' calls

ui/jquery.ui.dialog.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,20 @@ $.widget("ui.dialog", {
596596
.html( "" + ( value || "&#160;" ) );
597597
break;
598598
case "zIndex":
599-
uiDialog.css({ zIndex: value });
599+
if ( value > $.ui.dialog.maxZ ) {
600+
$.ui.dialog.maxZ = value;
601+
602+
if ( self.overlay ) {
603+
$.ui.dialog.maxZ += 1;
604+
$.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ;
605+
}
606+
607+
value = $.ui.dialog.maxZ;
608+
}
609+
610+
self.overlay && self.overlay.$el.css( "z-index", value > 0 ? value : 0 );
611+
uiDialog.css( "z-index", value );
612+
600613
break;
601614
}
602615

0 commit comments

Comments
 (0)