On 17 April 2015 at 16:15, Carlos Garnacho <carl...@gnome.org> wrote:
> Hey Michal,
>
> On Fri, Apr 17, 2015 at 2:47 PM, Michal Suchanek <hramr...@gmail.com> wrote:
> <snip>
>
>>> In the X11 world, this would roughly be a Virtual Core
>>> Pointer+Keyboard grab (not that touch and active grabs are trouble
>>> free in X11, but...), GTK+ for example does grab both devices on every
>>> of those grabbing places wayland/xdg protocols are trying to cater for
>>> (I've even pondered about adding a gdk_device_grab_pair() for years).
>>>
>>> I think some consistent model should be devised here, and embedded
>>> into the protocol (docs).
>>>
>>
>> The serious problem with X11 grabs is that they are completely
>> independent of the event that triggered them and can only be released
>> by the application that started them.
>>
>> So it happens that an application that gets stuck due to code error or
>> is running in a debugger at the time a grab is active never releases
>> the grab which
>>
>> 1) prevents other applications from receiving input
>> 2) prevents further grabs
>>
>> It might be worth considering if there is generic enough drag semantic
>> that the grab could be handled in compositor outside of application
>> code, even with click-lock and whatnot.
>
> Nothing prevents wayland compositors today from undoing grabs when
> clients get destroyed, or surfaces don't respond to pings. Affecting
> this proposal, the pointer should re-enter the surface underneath and
> keyboard focus restablished after the grab is "broken".

Nothing prevents the X server either. It hopefully breaks the grabs
initiated by clients when they are destroyed, too. However, there is
no mechanism for breaking a grab of a client other than destroying it
*and* destroying the client cannot be done from within the X session
because it is grabbed.

Thanks

Michal
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to