On Tue, Mar 30, 2010 at 1:58 AM, Stef Epardaud <span dir="ltr">&lt;<a href="mailto:stef@epardaud.fr">stef@epardaud.fr</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Tue, Mar 30, 2010 at 01:50:45AM -0700, Daniel Cheng wrote:<br>
&gt;      I want to do more than most file managers and let users visit<br>
&gt;      subdirectories by pressing control while over them, so they can continue<br>
&gt;      the drag operation inside the directory (and go deeper potentially).<br>
&gt;      A separate event makes it much easier to detect the key press.<br>
<br>
</div>But what was the rationale for preventing key events while doing DnD?<br></blockquote><div><br></div><div>I&#39;m not 100% sure, but I&#39;m assume it&#39;s so that the process of dragging and dropping doesn&#39;t trigger unrelated mouse / keyboard listeners.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br>
&gt;      No I mean, when an external application initiates a drag and then enters<br>
&gt;      my browser window/document to look for potential places where it could<br>
&gt;      drop it. I want to detect that and highlight all drop targets in the<br>
&gt;      page. I would do this in the &quot;drag&quot; or &quot;dragstart&quot; events if this was<br>
&gt;      started in the document, but how to do it when it is started by an<br>
&gt;      external application?<br>
&gt;<br>
&gt;    I&#39;d probably use a dragenter listener on the body of the document.<br>
<br>
</div>I couldn&#39;t get that to work properly with FF 3.6 and gave up after a few<br>
crashes and hangs (which admitedly are not the spec&#39;s fault).</blockquote><div><br></div><div>This is probably just an artifact of an incomplete implementation. I don&#39;t think any released browser has implemented 100% of the DnD interfaces yet. I&#39;ve also  noticed that some browsers hang if you use alert() during a DnD event.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Why not make the implied drag and/or dragstart explicitely fired when<br>
external applications start DnD in the browser? That might make it<br>
simpler and more consistent.<br></blockquote><div><br></div><div>Because those events are intended for a source node. It introduces several new problems (which node should get the event? how do authors differentiate between the two different types of dragstart?) without really solving anything that isn&#39;t already handled by other events. If you have drop targets in your page, you don&#39;t really care about a drag and drop operation in progress unless the item is dragged over your page--at which point one can simply use dragenter / dragover / dragleave.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888">--<br>
Stéphane Epardaud<br>
</font></blockquote></div><br>