Some random hacking of the qooxdoo 0.7 code reveals thatt if I patch the 
current 0.7 branch code like this, it does what I want. But this is 
hardly the solution and might have many unintended consequences.

qx.ui.core.Widget.prototype.supportsDrop = function (dragCache)
{
  var supportsDropMethod = this.getSupportsDropMethod();
  if (supportsDropMethod !== null) {
    return supportsDropMethod.call(this, dragCache);
  }
  return true; // the original code checks for (dragCache.sourceWidget 
== this), but have to return true by default otherwise it will alway 
return false
};

qx.event.handler.DragAndDropHandler.prototype.getDropTarget = 
qx.core.Variant.select("qx.client",
{
  "gecko" : function(e)
  {
    var vCurrent = e.getTarget();

// we need to comment out the following bit
//        if (vCurrent == this.__dragCache.sourceWidget) {
//          vCurrent = 
qx.event.handler.EventHandler.getTargetObject(qx.html.ElementFromPoint.getElementFromPoint(e.getPageX(),
 
e.getPageY()));
//        } else {


      vCurrent = qx.event.handler.EventHandler.getTargetObject(null, 
vCurrent);


//        }

    while (vCurrent != null)
    {

      if (!vCurrent.supportsDrop(this.__dragCache)) {
        return null;
      }

      if (this.supportsDrop(vCurrent)) {
        return vCurrent;
      }

      vCurrent = vCurrent.getParent();
    }

    return null;
  },

  "default" : function(e)
  {
    var vCurrent = e.getTarget();

    while (vCurrent != null)
    {
      if (!vCurrent.supportsDrop(this.__dragCache)) {
        return null;
      }

      if (this.supportsDrop(vCurrent)) {
        return vCurrent;
      }

      vCurrent = vCurrent.getParent();
    }

    return null;
  }
});

bibliograph schrieb:
> Hello Sebastian and others,
>
> I am still having the same problem with drag and drop over the tree and 
> both Derrell and I cannot do anything without your input. I have 
> produced a screencast to demonstrate the problem:
>
> http://m41s09.vlinux.de/dragDropProblem.avi  (Sorry, 2MB)
>
> I am using Firefox 2.06. In the screencast, I am monitoring the drag 
> target (variable vCurrent) in 
> qx.event.handler.DragAndDropHandler.getDropTarget() .
>
> In seconds 00-11, I am dragging on the source widget (a treevirtual) 
> itself. The drag target is sometimes a label, a hbox layout, or the 
> split pane, but NEVER the TreeVirtual, which it should be. Since the 
> drop Target doesn't find a supportsDrop method, it bubbles up to the 
> client document and then returns false because drop target is identical 
> with drag source.
>
> In seconds 11- 21, I am hovering over the left TreeVirtual, and the drop 
> target is correct.
>
> I have experimented with the code that retrieves the correct drop type, 
> but I do simply not have the background to know what I am doing there.
>
> It is really important to solve this if qooxdoo is to have extensive 
> drag & drop support and I hope you can help.
>
> Thanks,
>
> Christian
>
>
>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >>  http://get.splunk.com/
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>   


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to