diff options
author | Scott González <scott.gonzalez@gmail.com> | 2009-01-31 04:33:36 +0000 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2009-01-31 04:33:36 +0000 |
commit | 171c7c067106f6b35b2f35829a7d847858a36c74 (patch) | |
tree | 947466688f8f1144371ae6d3992f6523c92f63e6 | |
parent | 6695e5ac7f5be9be2b25f62314ba80812a5fbf65 (diff) | |
download | jquery-ui-171c7c067106f6b35b2f35829a7d847858a36c74.tar.gz jquery-ui-171c7c067106f6b35b2f35829a7d847858a36c74.zip |
Dialog: Shadow cleanup.
- Don't hide shadow during drag/resize in IE6 (let the user do this one their own).
- Let users modify the shadow option after init.
.parents('.ui-dialog')
.bind('dragstart resizestart', function() {
$(this).find('.ui-dialog-content').dialog('option', 'shadow', false);
})
.bind('dragstop resizestop', function() {
$(this).find('.ui-dialog-content').dialog('option', 'shadow', true);
});
-rw-r--r-- | ui/ui.dialog.js | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/ui/ui.dialog.js b/ui/ui.dialog.js index 8c8f8320f..58f8457b8 100644 --- a/ui/ui.dialog.js +++ b/ui/ui.dialog.js @@ -244,8 +244,7 @@ $.widget("ui.dialog", { .filter(':first') .focus(); - if(options.shadow) - this._createShadow(); + (options.shadow && this._createShadow()); this._trigger('open', event); this._isOpen = true; @@ -306,16 +305,14 @@ $.widget("ui.dialog", { containment: 'document', start: function() { (options.dragStart && options.dragStart.apply(self.element[0], arguments)); - if($.browser.msie && $.browser.version < 7 && self.shadow) self.shadow.hide(); }, drag: function() { (options.drag && options.drag.apply(self.element[0], arguments)); - self._refreshShadow(1); + self._refreshShadow(); }, stop: function() { (options.dragStop && options.dragStop.apply(self.element[0], arguments)); $.ui.dialog.overlay.resize(); - if($.browser.msie && $.browser.version < 7 && self.shadow) self.shadow.show(); self._refreshShadow(); } }); @@ -339,17 +336,15 @@ $.widget("ui.dialog", { minHeight: options.minHeight, start: function() { (options.resizeStart && options.resizeStart.apply(self.element[0], arguments)); - if($.browser.msie && $.browser.version < 7 && self.shadow) self.shadow.hide(); }, resize: function() { (options.resize && options.resize.apply(self.element[0], arguments)); - self._refreshShadow(1); + self._refreshShadow(); }, handles: resizeHandles, stop: function() { (options.resizeStop && options.resizeStop.apply(self.element[0], arguments)); $.ui.dialog.overlay.resize(); - if($.browser.msie && $.browser.version < 7 && self.shadow) self.shadow.show(); self._refreshShadow(); } }) @@ -440,7 +435,11 @@ $.widget("ui.dialog", { // currently non-resizable, becoming resizable (isResizable || this._makeResizable(value)); - + break; + case "shadow": + (value + ? this.shadow || this._createShadow() + : this.shadow && this._destroyShadow()); break; case "title": $(".ui-dialog-title", this.uiDialogTitlebar).html(value || ' '); @@ -489,17 +488,16 @@ $.widget("ui.dialog", { return this.shadow; }, - _refreshShadow: function(dragging) { - // IE6 is simply to slow to handle the reflow in a good way, so - // resizing only happens on stop, and the shadow is hidden during drag/resize - if(dragging && $.browser.msie && $.browser.version < 7) return; + _refreshShadow: function() { + if (!this.options.shadow) { return; } - var offset = this.uiDialog.offset(); + var uiDialog = this.uiDialog, + offset = uiDialog.offset(); this.shadow.css({ left: offset.left, top: offset.top, - width: this.uiDialog.outerWidth(), - height: this.uiDialog.outerHeight() + width: uiDialog.outerWidth(), + height: uiDialog.outerHeight() }); }, @@ -507,7 +505,6 @@ $.widget("ui.dialog", { this.shadow.remove(); this.shadow = null; } - }); $.extend($.ui.dialog, { |