mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-10-05 01:44:18 +00:00
Dialog: adjusting minHeight when the height option is less than the minHeight to prevent unexpectedly large dialogs. Fixes #4101 (Ui Dialog height does not adjust minHeight). Fixes #4122 (Dialog's content area isn't resized when height is adjusted).
This commit is contained in:
parent
8634ba993c
commit
27c3c52625
@ -19,7 +19,6 @@ var setDataSwitch = {
|
||||
drag: "drag.draggable",
|
||||
dragStop: "stop.draggable",
|
||||
maxHeight: "maxHeight.resizable",
|
||||
minHeight: "minHeight.resizable",
|
||||
maxWidth: "maxWidth.resizable",
|
||||
minWidth: "minWidth.resizable",
|
||||
resizeStart: "start.resizable",
|
||||
@ -351,7 +350,7 @@ $.widget("ui.dialog", {
|
||||
maxWidth: options.maxWidth,
|
||||
maxHeight: options.maxHeight,
|
||||
minWidth: options.minWidth,
|
||||
minHeight: options.minHeight,
|
||||
minHeight: self._minHeight(),
|
||||
start: function() {
|
||||
$(this).addClass("ui-dialog-resizing");
|
||||
(options.resizeStart && options.resizeStart.apply(self.element[0], arguments));
|
||||
@ -371,6 +370,14 @@ $.widget("ui.dialog", {
|
||||
.find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
|
||||
},
|
||||
|
||||
_minHeight: function() {
|
||||
var options = this.options;
|
||||
|
||||
return (options.height == 'auto'
|
||||
? options.minHeight
|
||||
: Math.min(options.minHeight, options.height));
|
||||
},
|
||||
|
||||
_position: function(pos) {
|
||||
var wnd = $(window), doc = $(document),
|
||||
pTop = doc.scrollTop(), pLeft = doc.scrollLeft(),
|
||||
@ -425,7 +432,8 @@ $.widget("ui.dialog", {
|
||||
|
||||
_setData: function(key, value){
|
||||
var self = this,
|
||||
uiDialog = self.uiDialog;
|
||||
uiDialog = self.uiDialog,
|
||||
resize = false;
|
||||
|
||||
(setDataSwitch[key] && uiDialog.data(setDataSwitch[key], value));
|
||||
switch (key) {
|
||||
@ -446,13 +454,16 @@ $.widget("ui.dialog", {
|
||||
: uiDialog.draggable('destroy'));
|
||||
break;
|
||||
case "height":
|
||||
uiDialog.height(value);
|
||||
resize = true;
|
||||
break;
|
||||
case "minHeight":
|
||||
resize = true;
|
||||
break;
|
||||
case "position":
|
||||
self._position(value);
|
||||
break;
|
||||
case "resizable":
|
||||
var isResizable = uiDialog.is(':data(resizable)');
|
||||
var isResizable = uiDialog.is(':ui-resizable');
|
||||
|
||||
// currently resizable, becoming non-resizable
|
||||
(isResizable && !value && uiDialog.resizable('destroy'));
|
||||
@ -468,11 +479,12 @@ $.widget("ui.dialog", {
|
||||
$(".ui-dialog-title", self.uiDialogTitlebar).html(value || ' ');
|
||||
break;
|
||||
case "width":
|
||||
uiDialog.width(value);
|
||||
resize = true;
|
||||
break;
|
||||
}
|
||||
|
||||
$.widget.prototype._setData.apply(self, arguments);
|
||||
(resize && self._size());
|
||||
},
|
||||
|
||||
_size: function() {
|
||||
@ -496,13 +508,17 @@ $.widget("ui.dialog", {
|
||||
})
|
||||
.height();
|
||||
|
||||
this.element
|
||||
.css({
|
||||
this.element.css(options.height == 'auto'
|
||||
? {
|
||||
minHeight: Math.max(options.minHeight - nonContentHeight, 0),
|
||||
height: options.height == 'auto'
|
||||
? 'auto'
|
||||
: Math.max(options.height - nonContentHeight, 0)
|
||||
height: 'auto'
|
||||
}
|
||||
: {
|
||||
height: Math.max(options.height - nonContentHeight, 0)
|
||||
});
|
||||
|
||||
(this.uiDialog.is(':ui-resizable') &&
|
||||
this.uiDialog.resizable('option', 'minHeight', this._minHeight()));
|
||||
}
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user