]> source.dussan.org Git - jquery-ui.git/commitdiff
Dialog: Respect maxHeight when determining size on open. Fixes #4820 - Dialog: Auto...
authorScott González <scott.gonzalez@gmail.com>
Fri, 7 Dec 2012 21:57:03 +0000 (16:57 -0500)
committerScott González <scott.gonzalez@gmail.com>
Fri, 7 Dec 2012 21:57:03 +0000 (16:57 -0500)
tests/unit/dialog/dialog_common.js
ui/jquery.ui.dialog.js

index 9657a9887f598bdb9e845dcdaec0a89d532ceb50..1a9b4e1095425387927a4fcb2cf53275038af52e 100644 (file)
@@ -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,
index 939571a68774fa41a125e4565e5669dfe5216c3d..2553109bacfe3d0c5c1072df7f7b3f0f42cb0304 100644 (file)
@@ -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)" ) ) {