Dialog: Restore inline styles for dimensions/display. Fixes #8119 - Dialog: Destroying a dialog leaves some styles changed.

This commit is contained in:
Scott González 2012-12-05 11:53:34 -05:00
parent 70f5d18c71
commit f59f5a8b12
2 changed files with 18 additions and 10 deletions

View File

@ -34,12 +34,9 @@ test("init", function() {
});
test("destroy", function() {
expect( 6 );
expect( 7 );
// Dialogs are expected to be hidden on destroy, so make sure they're hidden
// before the test
$( "#dialog1, #form-dialog" ).hide();
domEqual( "#dialog1", function() {
var dialog = $( "#dialog1" ).dialog().dialog( "destroy" );
equal( dialog.parent()[ 0 ], $( "#qunit-fixture" )[ 0 ] );
@ -50,6 +47,16 @@ test("destroy", function() {
equal( dialog.parent()[ 0 ], $( "#qunit-fixture" )[ 0 ] );
equal( dialog.index(), 2 );
});
// Ensure dimensions are restored (#8119)
$( "#dialog1" ).show().css({
width: "400px",
minHeight: "100px",
height: "200px"
});
domEqual( "#dialog1", function() {
$( "#dialog1" ).dialog().dialog( "destroy" );
});
});
test( "enable/disable disabled", function() {

View File

@ -84,6 +84,12 @@ $.widget("ui.dialog", {
},
_create: function() {
this.originalCss = {
display: this.element[0].style.display,
width: this.element[0].style.width,
minHeight: this.element[0].style.minHeight,
height: this.element[0].style.height
};
this.originalTitle = this.element.attr( "title" );
this.options.title = this.options.title || this.originalTitle;
this.oldPosition = {
@ -127,12 +133,7 @@ $.widget("ui.dialog", {
this.element
.removeUniqueId()
.removeClass( "ui-dialog-content ui-widget-content" )
.css({
width: "",
minHeight: "",
height: ""
})
.hide()
.css( this.originalCss )
// without detaching first, the following becomes really slow
.detach();