Skip to content
Permalink
Browse files

Dialog: Fixed #3220: Non-resizable dialogs shouldn't instantiate resi…

…zables.
  • Loading branch information...
scottgonzalez committed Sep 14, 2008
1 parent 7e9dcd2 commit 8bd855a162784f138ed8764692d472d97c725fcb
Showing with 45 additions and 29 deletions.
  1. +45 −29 ui/ui.dialog.js
@@ -34,9 +34,6 @@ $.widget("ui.dialog", {

var self = this,
options = this.options,
resizeHandles = typeof options.resizable == 'string'
? options.resizable
: 'n,e,s,w,se,sw,ne,nw',

uiDialogContent = this.element
.removeAttr('title')
@@ -134,30 +131,7 @@ $.widget("ui.dialog", {
(options.draggable || uiDialog.draggable('disable'));
}

if ($.fn.resizable) {
uiDialog.resizable({
cancel: '.ui-dialog-content',
helper: options.resizeHelper,
maxWidth: options.maxWidth,
maxHeight: options.maxHeight,
minWidth: options.minWidth,
minHeight: options.minHeight,
start: function() {
(options.resizeStart && options.resizeStart.apply(self.element[0], arguments));
},
resize: function() {
(options.autoResize && self._size.apply(self));
(options.resize && options.resize.apply(self.element[0], arguments));
},
handles: resizeHandles,
stop: function() {
(options.autoResize && self._size.apply(self));
(options.resizeStop && options.resizeStop.apply(self.element[0], arguments));
$.ui.dialog.overlay.resize();
}
});
(options.resizable || uiDialog.resizable('disable'));
}
(options.resizable && $.fn.resizable && this._makeResizable());

this._createButtons(options.buttons);
this._isOpen = false;
@@ -166,6 +140,37 @@ $.widget("ui.dialog", {
(options.autoOpen && this.open());
},

_makeResizable: function(handles) {
handles = (handles === undefined ? this.options.resizable : handles);
var self = this,
options = this.options,
resizeHandles = typeof handles == 'string'
? handles
: 'n,e,s,w,se,sw,ne,nw';

this.uiDialog.resizable({
cancel: '.ui-dialog-content',
helper: options.resizeHelper,
maxWidth: options.maxWidth,
maxHeight: options.maxHeight,
minWidth: options.minWidth,
minHeight: options.minHeight,
start: function() {
(options.resizeStart && options.resizeStart.apply(self.element[0], arguments));
},
resize: function() {
(options.autoResize && self._size.apply(self));
(options.resize && options.resize.apply(self.element[0], arguments));
},
handles: resizeHandles,
stop: function() {
(options.autoResize && self._size.apply(self));
(options.resizeStop && options.resizeStop.apply(self.element[0], arguments));
$.ui.dialog.overlay.resize();
}
});
},

_setData: function(key, value){
(setDataSwitch[key] && this.uiDialog.data(setDataSwitch[key], value));
switch (key) {
@@ -182,8 +187,19 @@ $.widget("ui.dialog", {
this._position(value);
break;
case "resizable":
(typeof value == 'string' && this.uiDialog.data('handles.resizable', value));
this.uiDialog.resizable(value ? 'enable' : 'disable');
var uiDialog = this.uiDialog,
isResizable = this.uiDialog.is(':data(resizable)');

// currently resizable, becoming non-resizable
(isResizable && !value && uiDialog.resizable('destroy'));

// currently resizable, changing handles
(isResizable && typeof value == 'string' &&
uiDialog.resizable('option', 'handles', value));

// currently non-resizable, becoming resizable
(isResizable || this._makeResizable(value));

break;
case "title":
$(".ui-dialog-title", this.uiDialogTitlebar).html(value || ' ');

0 comments on commit 8bd855a

Please sign in to comment.
You can’t perform that action at this time.