r3022 committed - Sortable: Support hash, array, string for cursorAt option. Partial fi...

r3022 committed - Sortable: Support hash, array, string for cursorAt option. Partial fi...


Revision: 3022
Author: scott.gonzalez
Date: Mon Aug 3 06:17:00 2009
Log: Sortable: Support hash, array, string for cursorAt option. Partial
fix for #2525 - Standardised way to pass coordinates to plugins.
http://code.google.com/p/jquery-ui/source/detail?r=3022
Modified:
/trunk/ui/ui.sortable.js
=======================================
--- /trunk/ui/ui.sortable.js    Mon Jul 27 22:50:23 2009
+++ /trunk/ui/ui.sortable.js    Mon Aug 3 06:17:00 2009
@@ -132,8 +132,7 @@
        this.originalPageY = event.pageY;
        //Adjust the mouse offset relative to the helper if 'cursorAt' is
supplied
-        if(o.cursorAt)
-            this._adjustOffsetFromHelper(o.cursorAt);
+        (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
        //Cache the former DOM position
        this.domPosition = { prev: this.currentItem.prev()[0], parent:
this.currentItem.parent()[0] };
@@ -724,10 +723,24 @@
    },
    _adjustOffsetFromHelper: function(obj) {
-        if(obj.left != undefined) this.offset.click.left = obj.left +
this.margins.left;
-        if(obj.right != undefined) this.offset.click.left =
this.helperProportions.width - obj.right + this.margins.left;
-        if(obj.top != undefined) this.offset.click.top = obj.top +
this.margins.top;
-        if(obj.bottom != undefined) this.offset.click.top =
this.helperProportions.height - obj.bottom + this.margins.top;
+        if (typeof obj == 'string') {
+            obj = obj.split(' ');
+        }
+        if ($.isArray(obj)) {
+            obj = {left: +obj[0], top: +obj[1] || 0};
+        }
+        if ('left' in obj) {
+            this.offset.click.left = obj.left + this.margins.left;
+        }
+        if ('right' in obj) {
+            this.offset.click.left = this.helperProportions.width - obj.right +
this.margins.left;
+        }
+        if ('top' in obj) {
+            this.offset.click.top = obj.top + this.margins.top;
+        }
+        if ('bottom' in obj) {
+            this.offset.click.top = this.helperProportions.height - obj.bottom +
this.margins.top;
+        }
    },
    _getParentOffset: function() {