aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2008-09-14 14:48:16 +0000
committerScott González <scott.gonzalez@gmail.com>2008-09-14 14:48:16 +0000
commit608cab6e3bc43475305cddd4bc50cba6e18069a8 (patch)
treeb7b0594dde6968593cd862bc6b059d911551650f /ui
parent8bd855a162784f138ed8764692d472d97c725fcb (diff)
downloadjquery-ui-608cab6e3bc43475305cddd4bc50cba6e18069a8.tar.gz
jquery-ui-608cab6e3bc43475305cddd4bc50cba6e18069a8.zip
Dialog: Fixed #3389: Non-draggable dialogs shouldn't instantiate draggables.
Diffstat (limited to 'ui')
-rw-r--r--ui/ui.dialog.js47
1 files changed, 26 insertions, 21 deletions
diff --git a/ui/ui.dialog.js b/ui/ui.dialog.js
index d1438fff9..ec38a983d 100644
--- a/ui/ui.dialog.js
+++ b/ui/ui.dialog.js
@@ -111,26 +111,7 @@ $.widget("ui.dialog", {
$.ui.disableSelection(this);
});
- if ($.fn.draggable) {
- uiDialog.draggable({
- cancel: '.ui-dialog-content',
- helper: options.dragHelper,
- handle: '.ui-dialog-titlebar',
- start: function() {
- self._moveToTop();
- (options.dragStart && options.dragStart.apply(self.element[0], arguments));
- },
- drag: function() {
- (options.drag && options.drag.apply(self.element[0], arguments));
- },
- stop: function() {
- (options.dragStop && options.dragStop.apply(self.element[0], arguments));
- $.ui.dialog.overlay.resize();
- }
- });
- (options.draggable || uiDialog.draggable('disable'));
- }
-
+ (options.draggable && $.fn.draggable && this._makeDraggable());
(options.resizable && $.fn.resizable && this._makeResizable());
this._createButtons(options.buttons);
@@ -171,6 +152,28 @@ $.widget("ui.dialog", {
});
},
+ _makeDraggable: function() {
+ var self = this,
+ options = this.options;
+
+ this.uiDialog.draggable({
+ cancel: '.ui-dialog-content',
+ helper: options.dragHelper,
+ handle: '.ui-dialog-titlebar',
+ start: function() {
+ self._moveToTop();
+ (options.dragStart && options.dragStart.apply(self.element[0], arguments));
+ },
+ drag: function() {
+ (options.drag && options.drag.apply(self.element[0], arguments));
+ },
+ stop: function() {
+ (options.dragStop && options.dragStop.apply(self.element[0], arguments));
+ $.ui.dialog.overlay.resize();
+ }
+ });
+ },
+
_setData: function(key, value){
(setDataSwitch[key] && this.uiDialog.data(setDataSwitch[key], value));
switch (key) {
@@ -178,7 +181,9 @@ $.widget("ui.dialog", {
this._createButtons(value);
break;
case "draggable":
- this.uiDialog.draggable(value ? 'enable' : 'disable');
+ (value
+ ? this._makeDraggable()
+ : this.uiDialog.draggable('destroy'));
break;
case "height":
this.uiDialog.height(value);