r920 - trunk/ui

r920 - trunk/ui


Author: eduardolundgren
Date: Tue Nov 11 19:57:23 2008
New Revision: 920
Modified:
trunk/ui/ui.core.js
trunk/ui/ui.sortable.js
Log:
Core and Sortable: $.ui.contains method moved into the core. This method
could be util for another components.
Modified: trunk/ui/ui.core.js
==============================================================================
--- trunk/ui/ui.core.js    (original)
+++ trunk/ui/ui.core.js    Tue Nov 11 19:57:23 2008
@@ -66,7 +66,19 @@
                    set[i][1].apply(instance.element, args);
                }
            }
-        }    
+        }
+    },
+    
+    contains: function(a, b) {
+        var safari2 = $.browser.safari && $.browser.version < 522;
+     if (a.contains && !safari2) {
+     return a.contains(b);
+     }
+     if (a.compareDocumentPosition)
+     return !!(a.compareDocumentPosition(b) & 16);
+     while (b = b.parentNode)
+     if (b == a) return true;
+     return false;
    },
    
    cssCache: {},
@@ -80,7 +92,7 @@
        //Opera and Safari set width and height to 0px instead of auto
        //Safari returns rgba(0,0,0,0) when bgcolor is not set
        $.ui.cssCache[name] = !!(
-            (!(/auto|default/).test(tmp.css('cursor')) ||
(/^[1-9]/).test(tmp.css('height')) || (/^[1-9]/).test(tmp.css('width')) ||
+            (!(/auto|default/).test(tmp.css('cursor')) ||
(/^[1-9]/).test(tmp.css('height')) || (/^[1-9]/).test(tmp.css('width')) ||
            !(/none/).test(tmp.css('backgroundImage')) || !(/transparent|rgba\(0,
0, 0, 0\)/).test(tmp.css('backgroundColor')))
        );
        try { $('body').get(0).removeChild(tmp.get(0));    } catch(e){}
Modified: trunk/ui/ui.sortable.js
==============================================================================
--- trunk/ui/ui.sortable.js    (original)
+++ trunk/ui/ui.sortable.js    Tue Nov 11 19:57:23 2008
@@ -12,18 +12,6 @@
*/
(function($) {
-function contains(a, b) {
- var safari2 = $.browser.safari && $.browser.version < 522;
- if (a.contains && !safari2) {
- return a.contains(b);
- }
- if (a.compareDocumentPosition)
- return !!(a.compareDocumentPosition(b) & 16);
- while (b = b.parentNode)
- if (b == a) return true;
- return false;
-};
-
$.widget("ui.sortable", $.extend({}, $.ui.mouse, {
    _init: function() {
@@ -160,6 +148,10 @@
        var itemHeight = item.height, itemWidth = item.width;
        var itemTop = item.top, itemLeft = item.left;
+        if (this.cancelIntersection) {
+            return false;
+        }
+
        var isOverElementHeight = $.ui.isOverHeight(helperTop + dyClick,
itemTop, itemHeight);
        var isOverElementWidth = $.ui.isOverWidth(helperLeft + dxClick,
itemLeft, itemWidth);
        var isOverElement = isOverElementHeight && isOverElementWidth;
@@ -419,7 +411,7 @@
                        //When entering a new container, we will find the item with the
least distance and append our item near it
                        var dist = 10000; var itemWithLeastDistance = null; var base =
this.positionAbs[this.containers[i].floating ? 'left' : 'top'];
                        for (var j = this.items.length - 1; j >= 0; j--) {
-                            if(!contains(this.containers[i].element[0], this.items[j].item[0]))
continue;
+                            if(!$.ui.contains(this.containers[i].element[0],
this.items[j].item[0])) continue;
                            var cur =
this.items[j][this.containers[i].floating ? 'left' : 'top'];
                            if(Math.abs(cur - base) < dist) {
                                dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j];
@@ -711,14 +703,14 @@
            var intersection = this._intersectsWithEdge(this.items[i]);
-            if(!intersection) continue;
+            if (!intersection) continue;
            var item = this.items[i].item[0];
            if(item != this.currentItem[0] //cannot intersect with itself
                &&    this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != item
//no useless actions that have been done before
-                &&    !contains(this.placeholder[0], item) //no action if the item moved
is the parent of the item checked
-                && (this.options.type == 'semi-dynamic' ? !contains(this.element[0],
item) : true)
+                &&    !$.ui.contains(this.placeholder[0], item) //no action if the item
moved is the parent of the item checked
+                && (this.options.type
== 'semi-dynamic' ? !$.ui.contains(this.element[0], item) : true)
            ) {
                this.direction = intersection == 1 ? "down" : "up";
@@ -803,10 +795,10 @@
            this.currentItem.show();
        if(this.domPosition.prev !=
this.currentItem.prev().not(".ui-sortable-helper")[0] ||
this.domPosition.parent != this.currentItem.parent()[0])
this._propagate("update", e, null, noPropagation); //Trigger update
callback if the DOM position has changed
-        if(!contains(this.element[0], this.currentItem[0])) { //Node was moved
out of the current element
+        if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was
moved out of the current element
            this._propagate("remove", e, null, noPropagation);
            for (var i = this.containers.length - 1; i >= 0; i--){
-                if(contains(this.containers[i].element[0], this.currentItem[0])) {
+                if($.ui.contains(this.containers[i].element[0], this.currentItem[0])) {
                    this.containers[i]._propagate("update", e, this, noPropagation);
                    this.containers[i]._propagate("receive", e, this, noPropagation);
                }