Dialog: Fixed #3032: Calling open on an already open dialog no longer causes problems.

This commit is contained in:
Scott González 2008-06-26 18:14:41 +00:00
parent 80e59fb0b2
commit 0f6d7502ca

View File

@ -144,6 +144,7 @@ $.widget("ui.dialog", {
} }
this.createButtons(options.buttons); this.createButtons(options.buttons);
this.isOpen = false;
(options.bgiframe && $.fn.bgiframe && uiDialog.bgiframe()); (options.bgiframe && $.fn.bgiframe && uiDialog.bgiframe());
(options.autoOpen && this.open()); (options.autoOpen && this.open());
@ -241,6 +242,8 @@ $.widget("ui.dialog", {
}, },
open: function() { open: function() {
if (this.isOpen) { return; }
this.overlay = this.options.modal ? new $.ui.dialog.overlay(this) : null; this.overlay = this.options.modal ? new $.ui.dialog.overlay(this) : null;
this.uiDialog.appendTo('body'); this.uiDialog.appendTo('body');
this.position(this.options.position); this.position(this.options.position);
@ -255,6 +258,8 @@ $.widget("ui.dialog", {
}; };
this.uiDialogTitlebarClose.focus(); this.uiDialogTitlebarClose.focus();
this.element.triggerHandler("dialogopen", [openEV, openUI], this.options.open); this.element.triggerHandler("dialogopen", [openEV, openUI], this.options.open);
this.isOpen = true;
}, },
// the force parameter allows us to move modal dialogs to their correct // the force parameter allows us to move modal dialogs to their correct
@ -282,6 +287,8 @@ $.widget("ui.dialog", {
}; };
this.element.triggerHandler("dialogclose", [closeEV, closeUI], this.options.close); this.element.triggerHandler("dialogclose", [closeEV, closeUI], this.options.close);
$.ui.dialog.overlay.resize(); $.ui.dialog.overlay.resize();
this.isOpen = false;
}, },
destroy: function() { destroy: function() {