[PATCH] protocol: Add DnD actions

Carlos Garnacho carlosg at gnome.org
Thu Apr 9 03:12:18 PDT 2015

Hey Bill,

On miƩ, 2015-04-08 at 14:18 -0700, Bill Spitzak wrote:

> >        * Additionally to modifier state, there's other
> >          keyboard/accessibility features as DnD is done in 
> >          (eg. DnD driven by cursor keys), these must be 
> > implemented on
> >          the compositor, this sounds like conflicting with the
> >          expectation in your proposal to have the drag source 
> > receive
> >          key events [1].
> I don't understand at all. Your proposal also requires the drag 
> source 
> to receive key events, since it can use those to change the set of 
> actions (for instance to add the "ask" action like you said in the 
> previous question).

No, that's precisely why my proposal involves the compositor at all, 
the source offers all actions it can handle, after 
data_device.data_offer/enter, the offer does likewise.

The compositor has then a map of the actions that both parts agree on, 
and can toggle actions when the user presses modifier keys, but these 
modifier keys should only be honored if both parts recognize such 
option, it should always fall back into an action that both parts 
agree on, or the drag will be cancelled. Note that this way the 
compositor is the sole handler of pointer and keyboard events during 

It perhaps confuses you that "notify_actions" can be called multiple 
times on both sides, that would be barely useful on the drag source 
tbh, too late to add arguments to start_drag() though. It's more of a 
necessity on the dest side, where toolkits have to update the mask as 
the pointer drifts across widgets. Changes in either the action mask 
from any side or the action picked by the compositor must always 
result in "action" events being sent to both sides.

One thing the drag source stays responsible of is the pointer cursor, 
so it can change on reaction to wl_data_source.action.


> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel

More information about the wayland-devel mailing list