[Spice-devel] [PATCH spice-gtk v2 5/5] gtk: Avoid deprecated gdk_pointer_grab

Victor Toso victortoso at redhat.com
Wed Dec 21 13:55:27 UTC 2016


Hi,

On Wed, Dec 21, 2016 at 11:51:06AM +0100, Christophe Fergeau wrote:
> For the record, without this patch, the client mouse cursor is not
> hidden as expected when running on wayland and the guest is in mouse
> server mode, not sure why...
> So in addition to switching away from deprecated API, this fixes/works
> around a bug.
>
> Christophe

That should go to the commit log then, with some reference to the bugs.

>
> On Mon, Dec 19, 2016 at 05:26:36PM +0100, Pavel Grunt wrote:
> > ---
> >  src/spice-widget.c | 24 ++++++++++++++++++------
> >  1 file changed, 18 insertions(+), 6 deletions(-)
> > 
> > diff --git a/src/spice-widget.c b/src/spice-widget.c
> > index 791f5b0..cf18fa6 100644
> > --- a/src/spice-widget.c
> > +++ b/src/spice-widget.c
> > @@ -1016,6 +1016,17 @@ static gboolean do_pointer_grab(SpiceDisplay *display)
> >  #endif
> >  
> >      try_keyboard_grab(display);
> > +    G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > +#if GTK_CHECK_VERSION(3, 20, 0)
> > +    status = gdk_seat_grab(spice_display_get_default_seat(display),
> > +                           window,
> > +                           GDK_SEAT_CAPABILITY_ALL_POINTING,
> > +                           TRUE,
> > +                           blank,
> > +                           NULL,
> > +                           NULL,
> > +                           NULL);
> > +#else
> >      /*
> >       * from gtk-vnc:
> >       * For relative mouse to work correctly when grabbed we need to
> > @@ -1025,8 +1036,6 @@ static gboolean do_pointer_grab(SpiceDisplay *display)
> >       * what window the pointer is actally over, so use 'FALSE' for
> >       * 'owner_events' parameter
> >       */
> > -    /* FIXME: gdk_pointer_grab() is deprecated */
> > -    G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> >      status = gdk_pointer_grab(window, FALSE,
> >                       GDK_POINTER_MOTION_MASK |
> >                       GDK_BUTTON_PRESS_MASK |
> > @@ -1036,6 +1045,7 @@ static gboolean do_pointer_grab(SpiceDisplay *display)
> >                       NULL,
> >                       blank,
> >                       GDK_CURRENT_TIME);
> > +#endif
> >      G_GNUC_END_IGNORE_DEPRECATIONS
> >      grab_successful = (status == GDK_GRAB_SUCCESS);
> >      if (!grab_successful) {
> > @@ -1135,9 +1145,6 @@ static void mouse_wrap(SpiceDisplay *display, GdkEventMotion *motion)
> >  
> >  }
> >  
> > -/* FIXME: gdk_pointer_ungrab()/gdk_display_warp_pointer() are deprecated */
> > -G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > -
> >  static void try_mouse_ungrab(SpiceDisplay *display)
> >  {
> >      SpiceDisplayPrivate *d = display->priv;
> > @@ -1147,7 +1154,13 @@ static void try_mouse_ungrab(SpiceDisplay *display)
> >      if (!d->mouse_grab_active)
> >          return;
> >  
> > +    G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > +#if GTK_CHECK_VERSION(3, 20, 0)
> > +    gdk_seat_ungrab(spice_display_get_default_seat(display));
> > +#else
> >      gdk_pointer_ungrab(GDK_CURRENT_TIME);
> > +#endif
> > +    G_GNUC_END_IGNORE_DEPRECATIONS
> >      gtk_grab_remove(GTK_WIDGET(display));
> >  #ifdef G_OS_WIN32
> >      ClipCursor(NULL);
> > @@ -1170,7 +1183,6 @@ static void try_mouse_ungrab(SpiceDisplay *display)
> >      g_signal_emit(display, signals[SPICE_DISPLAY_MOUSE_GRAB], 0, false);
> >      spice_gtk_session_set_pointer_grabbed(d->gtk_session, false);
> >  }
> > -G_GNUC_END_IGNORE_DEPRECATIONS
> >  
> >  static void update_mouse_grab(SpiceDisplay *display)
> >  {
> > -- 
> > 2.11.0
> > 
> > _______________________________________________
> > Spice-devel mailing list
> > Spice-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/spice-devel



> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20161221/b06dbd30/attachment.sig>


More information about the Spice-devel mailing list