[whatwg] More questions about the DnD API

Daniel Cheng dcheng at google.com
Tue Mar 30 01:31:15 PDT 2010

On Tue, Mar 30, 2010 at 12:38 AM, Stef Epardaud <stef at epardaud.fr> wrote:

> On Mon, Mar 29, 2010 at 02:04:22PM -0700, Daniel Cheng wrote:
> >      I'm still trying to use the DnD for a real-world use, and keep
> hitting
> >      problems. This is the HTML 5 draft at 7.9.4 Drag-and-drop processing
> >      model:
> >      "From this point until the end of the drag-and-drop operation,
> device
> >      input events (e.g. mouse and keyboard events) must be suppressed."
> >
> >    DragEvent (via MouseEvent) should expose ctrlKey, altKey, metaKey, and
> >    shiftKey properties.
> But then it's up to the developer to detect that the keys weren't
> pressed before (implement keydown events themselves), which is less
> practical.

If you're copying the behavior of file managers, isn't it simply a matter of
setting dropEffect to whatever the current state of the modifier keys are?

function dragOver(e) {
  if (e.ctrlKey) e.dropEffect = 'copy';
  else e.dropEffect = 'move';

I'm not sure how having separate keyboard events would help in this case,
since you can't set dropEffect directly from a keyboard event.

> >    dragstart and drag events are fired at the source node, but since
> you're
> >    dragging from a non-DOM application, you won't get any. You should
> still be
> >    getting dragenter / dragover / dragleave / drop if the item is
> >    dragged/dropped over a DOM page though. It works for me in WebKit.
> But if I want to be notified that an external application started a drag
> in my document, where should I place the listener then? document? body
> node?

If an external application initiates a drag in your DOM page via the
appropriate method for your platform, it should be the same as if a user
initiated it. The dragstart event / drag events should end up getting fired
at whatever node the application initiated the drag on. Maybe I'm
misunderstanding your question though...

> --
> Stéphane Epardaud
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20100330/ce32a98b/attachment-0002.htm>

More information about the whatwg mailing list