server side callback

Giulio Camuffo giuliocamuffo at gmail.com
Mon Mar 11 14:53:37 PDT 2013


Hi all,

I've been struggling with a problem these last few days: I'm working
on QtWayland drag and drop support, and I noticed it requires some
protocol additions, of which this is a draft: https://pastee.org/hxq26
I want the" wl_data_source.dropped" event to be called after the
wl_data_device receives and returns from the the drop event. The
dropped event carries the action the target client chose, and i need
to be able to set the action (by calling
"wl_data_offer_accept_action") also from the "wl_data_device.drop"
event. Hence, i cannot simply post the "wl_data_source.dropped" event
just after the "wl_data_device.drop", because the
"wl_data_offer_accept_action" would be processed too late.

I could require the client to issue a request "notify_drop", at the
end of the drop event listener, which would send the
"wl_data_source.dropped", but a client that fails to do so would be
troublesome: when a Qt client starts a drag it goes into a loop, which
is exited only when the data is dropped. If the target client didn't
send the "notify_drop" the source client would never exit from the
loop, making it stuck.
A timer could free it after some time, but that is not a good solution.

What i need is a way to have a server-side callback when a certain
client-side event listener returns, all inside libwayland-client,
without the need for the client app to do anything. Is it possible?
I'm willing to implement it, but I don't know wayland's internals and
i'd need some pointing at.

Thanks,
Giulio


More information about the wayland-devel mailing list