Side navigation
Ticket #2122: uidroppable-fix_element_comparer_and_accept_fn.patch
File uidroppable-fix_element_comparer_and_accept_fn.patch, 2.8 KB (added by mnichols, January 07, 2008 06:31PM UTC)
This patch fixes element comparisons on droppable in the trunk and also extends the accept function argument
Index: ui.droppable.js
===================================================================
--- ui.droppable.js (revision 4364)
+++ ui.droppable.js (working copy)
@@ -66,9 +66,8 @@
over: function(e) {
var draggable = $.ui.ddmanager.current;
- if (!draggable || draggable.element == this.element) return; // Bail if draggable and droppable are same element
-
- if (this.options.accept(draggable.element)) {
+ if (!draggable || $(draggable.element)[0] == $(this.element)[0]) return; // Bail if draggable and droppable are same element
+ if (this.options.accept(this.ui(draggable))) {
$.ui.plugin.call(this, 'over', [e, this.ui(draggable)]);
$(this.element).triggerHandler("dropover", [e, this.ui(draggable)], this.options.over);
}
@@ -77,9 +76,9 @@
out: function(e) {
var draggable = $.ui.ddmanager.current;
- if (!draggable || draggable.element == this.element) return; // Bail if draggable and droppable are same element
+ if (!draggable || $(draggable.element)[0] == $(this.element)[0]) return; // Bail if draggable and droppable are same element
- if (this.options.accept(draggable.element)) {
+ if (this.options.accept(this.ui(draggable))) {
$.ui.plugin.call(this, 'out', [e, this.ui(draggable)]);
$(this.element).triggerHandler("dropout", [e, this.ui(draggable)], this.options.out);
}
@@ -88,9 +87,9 @@
drop: function(e) {
var draggable = $.ui.ddmanager.current;
- if (!draggable || draggable.element == this.element) return; // Bail if draggable and droppable are same element
+ if (!draggable || $(draggable.element)[0] == $(this.element)[0]) return; // Bail if draggable and droppable are same element
- if(this.options.accept(draggable.element)) {
+ if(this.options.accept(this.ui(draggable))) {
$.ui.plugin.call(this, 'drop', [e, this.ui(draggable)]);
$(this.element).triggerHandler("drop", [e, this.ui(draggable)], this.options.drop);
}
@@ -163,7 +162,7 @@
if(m[i].item.disabled) continue;
m[i].offset = $(m[i].item.element).offset();
- if (t && m[i].item.options.accept(t.element)) //Activate the droppable if used directly from draggables
+ if (t && m[i].item.options.accept.call(m[i].item,m[i].item.ui(t))) //Activate the droppable if used directly from draggables
m[i].item.activate.call(m[i].item, e);
}
@@ -175,8 +174,8 @@
if (!this.item.disabled && $.ui.intersect(draggable, this, this.item.options.tolerance))
this.item.drop.call(this.item, e);
-
- if (!this.item.disabled && this.item.options.accept(draggable.element)) {
+
+ if (!this.item.disabled && this.item.options.accept.call(this.item,this.item.ui(draggable))) {
this.out = 1; this.over = 0;
this.item.deactivate.call(this.item, e);
}
Download in other formats:
Original Format
File uidroppable-fix_element_comparer_and_accept_fn.patch, 2.8 KB (added by mnichols, January 07, 2008 06:31PM UTC)
This patch fixes element comparisons on droppable in the trunk and also extends the accept function argument
Index: ui.droppable.js
===================================================================
--- ui.droppable.js (revision 4364)
+++ ui.droppable.js (working copy)
@@ -66,9 +66,8 @@
over: function(e) {
var draggable = $.ui.ddmanager.current;
- if (!draggable || draggable.element == this.element) return; // Bail if draggable and droppable are same element
-
- if (this.options.accept(draggable.element)) {
+ if (!draggable || $(draggable.element)[0] == $(this.element)[0]) return; // Bail if draggable and droppable are same element
+ if (this.options.accept(this.ui(draggable))) {
$.ui.plugin.call(this, 'over', [e, this.ui(draggable)]);
$(this.element).triggerHandler("dropover", [e, this.ui(draggable)], this.options.over);
}
@@ -77,9 +76,9 @@
out: function(e) {
var draggable = $.ui.ddmanager.current;
- if (!draggable || draggable.element == this.element) return; // Bail if draggable and droppable are same element
+ if (!draggable || $(draggable.element)[0] == $(this.element)[0]) return; // Bail if draggable and droppable are same element
- if (this.options.accept(draggable.element)) {
+ if (this.options.accept(this.ui(draggable))) {
$.ui.plugin.call(this, 'out', [e, this.ui(draggable)]);
$(this.element).triggerHandler("dropout", [e, this.ui(draggable)], this.options.out);
}
@@ -88,9 +87,9 @@
drop: function(e) {
var draggable = $.ui.ddmanager.current;
- if (!draggable || draggable.element == this.element) return; // Bail if draggable and droppable are same element
+ if (!draggable || $(draggable.element)[0] == $(this.element)[0]) return; // Bail if draggable and droppable are same element
- if(this.options.accept(draggable.element)) {
+ if(this.options.accept(this.ui(draggable))) {
$.ui.plugin.call(this, 'drop', [e, this.ui(draggable)]);
$(this.element).triggerHandler("drop", [e, this.ui(draggable)], this.options.drop);
}
@@ -163,7 +162,7 @@
if(m[i].item.disabled) continue;
m[i].offset = $(m[i].item.element).offset();
- if (t && m[i].item.options.accept(t.element)) //Activate the droppable if used directly from draggables
+ if (t && m[i].item.options.accept.call(m[i].item,m[i].item.ui(t))) //Activate the droppable if used directly from draggables
m[i].item.activate.call(m[i].item, e);
}
@@ -175,8 +174,8 @@
if (!this.item.disabled && $.ui.intersect(draggable, this, this.item.options.tolerance))
this.item.drop.call(this.item, e);
-
- if (!this.item.disabled && this.item.options.accept(draggable.element)) {
+
+ if (!this.item.disabled && this.item.options.accept.call(this.item,this.item.ui(draggable))) {
this.out = 1; this.over = 0;
this.item.deactivate.call(this.item, e);
}