Skip to content
Permalink
Browse files

draggable: fixed numerous issues with over/out logic on connected sor…

…table lists (fixes #3988)
  • Loading branch information
Paul Bakaus
Paul Bakaus committed Feb 10, 2009
1 parent 51c338b commit 7989bf1bee9d6c224909741bd92dd905f783a3d5
Showing with 16 additions and 3 deletions.
  1. +16 −3 ui/ui.draggable.js
@@ -500,11 +500,17 @@ $.ui.plugin.add("draggable", "connectToSortable", {
};

$.each(inst.sortables, function(i) {

if(checkPos.call(inst, this.instance.containerCache)) {

//Copy over some variables to allow calling the sortable's native _intersectsWith
this.instance.positionAbs = inst.positionAbs;
this.instance.helperProportions = inst.helperProportions;
this.instance.offset.click = inst.offset.click;

if(this.instance._intersectsWith(this.instance.containerCache)) {

//If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
if(!this.instance.isOver) {

this.instance.isOver = 1;
//Now we fake the start of dragging for the sortable instance,
//by cloning the list group item, appending it to the sortable and using it as inst.currentItem
@@ -539,9 +545,16 @@ $.ui.plugin.add("draggable", "connectToSortable", {
//If it doesn't intersect with the sortable, and it intersected before,
//we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval
if(this.instance.isOver) {

this.instance.isOver = 0;
this.instance.cancelHelperRemoval = true;
this.instance.options.revert = false; //No revert here

//Prevent reverting on this forced stop
this.instance.options.revert = false;

// The out event needs to be triggered independently
this.instance._trigger('out', event, this.instance._uiHash(this.instance));

this.instance._mouseStop(event, true);
this.instance.options.helper = this.instance.options._helper;

0 comments on commit 7989bf1

Please sign in to comment.
You can’t perform that action at this time.