Re: [PATCH spice-gtk 3/5] gtk: Avoid deprecated gdk_keyboard_grab

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2016-12-19 at 04:29 -0500, Frediano Ziglio wrote:
> > 
> > ---
> >  src/spice-widget.c | 26 ++++++++++++++++++++++----
> >  1 file changed, 22 insertions(+), 4 deletions(-)
> > 
> > diff --git a/src/spice-widget.c b/src/spice-widget.c
> > index a3d6526..cedc358 100644
> > --- a/src/spice-widget.c
> > +++ b/src/spice-widget.c
> > @@ -119,6 +119,9 @@ static void release_keys(SpiceDisplay
> > *display);
> >  static void size_allocate(GtkWidget *widget, GtkAllocation *conf,
> > gpointer
> >  data);
> >  static gboolean draw_event(GtkWidget *widget, cairo_t *cr,
> > gpointer data);
> >  static void update_size_request(SpiceDisplay *display);
> > +#if GTK_CHECK_VERSION(3, 20, 0)
> > +static GdkSeat *spice_display_get_default_seat(SpiceDisplay
> > *display);
> > +#endif
> >  
> >  /* --------------------------------------------------------------
> > -- */
> >  
> > @@ -811,9 +814,6 @@ SpiceGrabSequence
> > *spice_display_get_grab_keys(SpiceDisplay *display)
> >      return d->grabseq;
> >  }
> >  
> > -/* FIXME: gdk_keyboard_grab/ungrab() is deprecated */
> > -G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > -
> >  static void try_keyboard_grab(SpiceDisplay *display)
> >  {
> >      GtkWidget *widget = GTK_WIDGET(display);
> > @@ -849,8 +849,21 @@ static void try_keyboard_grab(SpiceDisplay
> > *display)
> >                                              GetModuleHandle(NULL)
> > , 0);
> >      g_warn_if_fail(d->keyboard_hook != NULL);
> >  #endif
> > +#if GTK_CHECK_VERSION(3, 20, 0)
> > +    G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> 
> The ignore deprecations should be on older code, not new one.

Actually it is the opposite, they must be on the code which is
potentially unavailable. The warnings are issued through
GDK_VERSION_MAX_ALLOWED (see configure.ac for more details)

> 
> > +    status =
> > gdk_seat_grab(spice_display_get_default_seat(display),
> > +                           gtk_widget_get_window(widget),
> > +                           GDK_SEAT_CAPABILITY_KEYBOARD,
> > +                           FALSE,
> > +                           NULL,
> > +                           NULL,
> > +                           NULL,
> > +                           NULL);
> > +    G_GNUC_END_IGNORE_DEPRECATIONS
> > +#else
> >      status = gdk_keyboard_grab(gtk_widget_get_window(widget),
> > FALSE,
> >                                 GDK_CURRENT_TIME);
> > +#endif
> >      if (status != GDK_GRAB_SUCCESS) {
> >          g_warning("keyboard grab failed %u", status);
> >          d->keyboard_grab_active = false;
> > @@ -869,7 +882,13 @@ static void try_keyboard_ungrab(SpiceDisplay
> > *display)
> >          return;
> >  
> >      SPICE_DEBUG("ungrab keyboard");
> > +#if GTK_CHECK_VERSION(3, 20, 0)
> > +    G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > +    gdk_seat_ungrab(spice_display_get_default_seat(display));
> > +    G_GNUC_END_IGNORE_DEPRECATIONS
> > +#else
> >      gdk_keyboard_ungrab(GDK_CURRENT_TIME);
> > +#endif
> 
> I would prefer something like glib-compat.h in spice-server

I will consider its resurrection 

Pavel
> 
> >  #ifdef G_OS_WIN32
> >      // do not use g_clear_pointer as Windows API have different
> > linkage
> >      if (d->keyboard_hook) {
> > @@ -880,7 +899,6 @@ static void try_keyboard_ungrab(SpiceDisplay
> > *display)
> >      d->keyboard_grab_active = false;
> >      g_signal_emit(widget, signals[SPICE_DISPLAY_KEYBOARD_GRAB],
> > 0, false);
> >  }
> > -G_GNUC_END_IGNORE_DEPRECATIONS
> >  
> >  
> >  static void update_keyboard_grab(SpiceDisplay *display)
> 
> Frediano
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]