Permalink
Browse files

Dialog: Respect maxHeight when determining size on open. Fixes #4820 …

…- Dialog: Auto height does not respect the maxHeight option.
  • Loading branch information...
1 parent 70b16ef commit d4551bc3b8dfbfd925700dcb9f71e7729b125889 @scottgonzalez scottgonzalez committed Dec 7, 2012
Showing with 12 additions and 7 deletions.
  1. +2 −2 tests/unit/dialog/dialog_common.js
  2. +10 −5 ui/jquery.ui.dialog.js
@@ -10,8 +10,8 @@ TestHelpers.commonWidgetTests( "dialog", {
draggable: true,
height: 'auto',
hide: null,
- maxHeight: false,
- maxWidth: false,
+ maxHeight: null,
+ maxWidth: null,
minHeight: 150,
minWidth: 150,
modal: false,
View
@@ -48,8 +48,8 @@ $.widget("ui.dialog", {
draggable: true,
hide: null,
height: "auto",
- maxHeight: false,
- maxWidth: false,
+ maxHeight: null,
+ maxWidth: null,
minHeight: 150,
minWidth: 150,
modal: false,
@@ -89,6 +89,7 @@ $.widget("ui.dialog", {
display: this.element[0].style.display,
width: this.element[0].style.width,
minHeight: this.element[0].style.minHeight,
+ maxHeight: this.element[0].style.maxHeight,
height: this.element[0].style.height
};
this.originalTitle = this.element.attr( "title" );
@@ -632,16 +633,16 @@ $.widget("ui.dialog", {
},
_size: function() {
-
// If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
// divs will both have width and height set, so we need to reset them
- var nonContentHeight, minContentHeight,
+ var nonContentHeight, minContentHeight, maxContentHeight,
options = this.options;
// reset content sizing
this.element.show().css({
width: "auto",
minHeight: 0,
+ maxHeight: "none",
height: 0
});
@@ -657,14 +658,18 @@ $.widget("ui.dialog", {
})
.outerHeight();
minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
+ maxContentHeight = typeof options.maxHeight === "number" ?
+ Math.max( 0, options.maxHeight - nonContentHeight ) :
+ "none";
if ( options.height === "auto" ) {
this.element.css({
minHeight: minContentHeight,
+ maxHeight: maxContentHeight,
height: "auto"
});
} else {
- this.element.height( Math.max( options.height - nonContentHeight, 0 ) );
+ this.element.height( Math.max( 0, options.height - nonContentHeight ) );
}
if (this.uiDialog.is( ":data(ui-resizable)" ) ) {

0 comments on commit d4551bc

Please sign in to comment.