2016-09-02 10:27 GMT+02:00 Olivier Fourdan <[email protected]>:
> Hi,
>
> ----- Original Message -----
>> 2016-09-01 11:52 GMT+02:00 Olivier Fourdan <[email protected]>:
>> > Hi
>> >
>> >> > +   keyboard->grab_serial =
>> >> > wl_display_get_serial(compositor->wl_display);
>> >> >     if (state == WL_KEYBOARD_KEY_STATE_PRESSED) {
>> >> > -           keyboard->grab_serial =
>> >> > -                   wl_display_get_serial(compositor->wl_display);
>> >> >             keyboard->grab_time = time;
>> >> >             keyboard->grab_key = key;
>> >> >     }
>> >> >
>> >>
>> >> I’m ok with that, but why not updating all three "grab_*" members?
>> >
>> > While I think the key itself would be OK, I suspect updating the grab_time
>> > on all states (ie like key release) might have additional side effects.
>> >
>> > So I took the most conservative approach which was to update the serial
>> > only, as this one is compared against the popup serial.
>>
>> I can't tell if it's right or not, but so maybe it would be good to
>> add a comment about it, unless someone (daniels?) can confirm it's
>> right.
>
> Well, this is needed when traversing submenus using the keyboard.
>
> Once you navigate to a submenu with the keyboard, the corresponding popup is 
> created by the toolkit using the serial provided by the compositor, which 
> will compare against the last known serial. If the grab serial is updated on 
> key press only, the serial won't match and the submenu will be dismissed.

Yes, i meant if it's right or not to leave the grab_time and grab_key
as they are.

>
> This can easily be reproduced using an up-to-date gtk+ from git master.
>
> Cheers,
> Olivier
_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to