Skip to content

Commit c9f3081

Browse files
committed
Dialog: Update the internal flag for whether or not the dialog is open before triggering the close event.
Fixes #5184 - isOpen in dialogclose event is true.
1 parent 828bcdd commit c9f3081

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

tests/unit/dialog/dialog_tickets.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,18 @@ test("#4826: setting resizable false toggles resizable on dialog", function() {
2626

2727
});
2828

29+
test("#5184: isOpen in dialogclose event is true", function() {
30+
expect( 3 );
31+
32+
el = $( "<div></div>" ).dialog({
33+
close: function() {
34+
ok( !el.dialog("isOpen"), "dialog is not open during close" );
35+
}
36+
});
37+
ok( el.dialog("isOpen"), "dialog is open after init" );
38+
el.dialog( "close" );
39+
ok( !el.dialog("isOpen"), "dialog is not open after close" );
40+
el.remove();
41+
});
42+
2943
})(jQuery);

ui/jquery.ui.dialog.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,8 @@ $.widget("ui.dialog", {
188188
(self.overlay && self.overlay.destroy());
189189
self.uiDialog.unbind('keypress.ui-dialog');
190190

191+
self._isOpen = false;
192+
191193
(self.options.hide
192194
? self.uiDialog.hide(self.options.hide, function() {
193195
self._trigger('close', event);
@@ -196,8 +198,6 @@ $.widget("ui.dialog", {
196198

197199
$.ui.dialog.overlay.resize();
198200

199-
self._isOpen = false;
200-
201201
// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
202202
if (self.options.modal) {
203203
var maxZ = 0;

0 commit comments

Comments
 (0)