[Spice-devel] [PATCH spice-gtk] widget: fix keyboard ungrab after click

Frediano Ziglio fziglio at redhat.com
Mon Jun 20 13:33:19 UTC 2016


> From: Marc-André Lureau <marcandre.lureau at redhat.com>
> 
> Since the switch to a container widget (gtkstack then gtkeventbox), the
> grab may be lost when clicking on the display. Since events are treated
> at the top level container, set widget "above-child" to trap all of them
> to solve this.
> 
> Fixes:
> https://bugs.freedesktop.org/show_bug.cgi?id=96595
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>
> Reported-by: Frediano Ziglio <fziglio at redhat.com>

I can confirm the patch fixes the issue.
However my knowledge about Gtk+ is not enough to ack it.
I don't know if is worth to copy the issue and how to reproduce on the
commit message.

> ---
>  src/spice-widget.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/src/spice-widget.c b/src/spice-widget.c
> index 4ca74bf..4cfbcfa 100644
> --- a/src/spice-widget.c
> +++ b/src/spice-widget.c
> @@ -632,6 +632,8 @@ static void spice_display_init(SpiceDisplay *display)
>                            GDK_KEY_PRESS_MASK |
>                            GDK_SCROLL_MASK);
>      gtk_widget_set_can_focus(widget, true);
> +    gtk_event_box_set_above_child(GTK_EVENT_BOX(widget), true);
> +

TRUE, yes, would be time Gtk+ move to stdbool.h syntax.
Or are you changing these? I can find 515 occurrences of TRUE and 68 of true.

>      d->grabseq = spice_grab_sequence_new_from_string("Control_L+Alt_L");
>      d->activeseq = g_new0(gboolean, d->grabseq->nkeysyms);
>      d->mouse_cursor = get_blank_cursor();

Frediano


More information about the Spice-devel mailing list