Ticket #4570: greedyDropBadScope.diff

File greedyDropBadScope.diff, 1.2 KB (added by rbrackett, 11 years ago)
  • ui/ui.droppable.js

     
    103103                var childrenIntersection = false;
    104104                this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
    105105                        var inst = $.data(this, 'droppable');
    106                         if(inst.options.greedy && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)) {
     106                        if(inst.options.greedy && inst.options.scope === draggable.options.scope && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)) {
    107107                                childrenIntersection = true; return false;
    108108                        }
    109109                });
     
    251251
    252252                        var parentInstance;
    253253                        if (this.options.greedy) {
    254                                 var parent = this.element.parents(':data(droppable):eq(0)');
     254                                var drop = this;
     255                                var parent = this.element.parents(':data(droppable):eq(0)').filter(function() {
     256                                        return ($.data(this, "droppable").option("scope") === drop.options.scope);
     257                                });
    255258                                if (parent.length) {
    256259                                        parentInstance = $.data(parent[0], 'droppable');
    257260                                        parentInstance.greedyChild = (c == 'isover' ? 1 : 0);