r1927 - trunk/ui

r1927 - trunk/ui


Author: scott.gonzalez
Date: Fri Jan 30 20:33:36 2009
New Revision: 1927
Modified:
trunk/ui/ui.dialog.js
Log:
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);
});
Modified: trunk/ui/ui.dialog.js
==============================================================================
--- trunk/ui/ui.dialog.js    (original)
+++ trunk/ui/ui.dialog.js    Fri Jan 30 20:33:36 2009
@@ -244,8 +244,7 @@
            .filter(':first')
            .focus();
-        if(options.shadow)
-            this._createShadow();
+        (options.shadow && this._createShadow());
        this._trigger('open', event);
        this._isOpen = true;
@@ -306,16 +305,14 @@
            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 @@
            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 @@
                // 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 @@
        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 @@
        this.shadow.remove();
        this.shadow = null;
    }
-    
});
$.extend($.ui.dialog, {