]> source.dussan.org Git - jquery-ui.git/commitdiff
Dialog: Shadow cleanup.
authorScott González <scott.gonzalez@gmail.com>
Sat, 31 Jan 2009 04:33:36 +0000 (04:33 +0000)
committerScott González <scott.gonzalez@gmail.com>
Sat, 31 Jan 2009 04:33:36 +0000 (04:33 +0000)
  - 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);
});

ui/ui.dialog.js

index 8c8f8320f576c16f1f3fc41917d4b86710be26d0..58f8457b8887d24e7d72e9fddef106f5afb82f6e 100644 (file)
@@ -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 || '&nbsp;');
@@ -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, {