[Spice-devel] [spice-gtk] build-sys: bump gtk requirement 3.12 -> 3.22

Victor Toso victortoso at redhat.com
Fri Jul 20 13:31:56 UTC 2018


Hi,

On Fri, Jul 20, 2018 at 09:20:59AM -0400, Frediano Ziglio wrote:
> > 
> > From: Victor Toso <me at victortoso.com>
> > 
> > Fedora 28: 3.22.30
> > Fedora 27: 3.22.26
> > Fedora 26: 3.22.21
> > RHEL 7.6: 3.22.30
> > RHEL 7.5: 3.22.26
> > RHEL 7.4: 3.22.10
> > Debian 10: 3.22.30
> > Debian  9: 3.22.11
> > 
> > Signed-off-by: Victor Toso <victortoso at redhat.com>
> 
> Last Ubuntu LTS (18.04) is happy too (3.22.30)
> 
> Any other reason you want to bump it (beside clean up) ?

Clipboard code path. It is hard enough thinking about x11 and
wayland, different DE such GNOME and KDE to also worry if code
path is this or that based on version at build time.

:)

> > ---
> >  configure.ac            |  4 +--
> >  src/spice-gtk-session.c | 38 -------------------------
> >  src/spice-widget-egl.c  |  6 ----
> >  src/spice-widget.c      | 61 +++--------------------------------------
> >  4 files changed, 6 insertions(+), 103 deletions(-)
> > 
> > diff --git a/configure.ac b/configure.ac
> > index 1cc3000..2d90b7b 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -130,8 +130,8 @@ AC_ARG_WITH([gtk],
> >    [with_gtk=3.0])
> >  
> >  case "$with_gtk" in
> > -  3.0) GTK_REQUIRED=3.12
> > -       GTK_ENCODED_VERSION="GDK_VERSION_3_12"
> > +  3.0) GTK_REQUIRED=3.22
> > +       GTK_ENCODED_VERSION="GDK_VERSION_3_22"
> >         ;;
> >    no)
> >         AS_IF([test x$enable_gtk_doc = xyes],
> > diff --git a/src/spice-gtk-session.c b/src/spice-gtk-session.c
> > index 705498a..3d8973e 100644
> > --- a/src/spice-gtk-session.c
> > +++ b/src/spice-gtk-session.c
> > @@ -119,7 +119,6 @@ enum {
> >  static guint32 get_keyboard_lock_modifiers(void)
> >  {
> >      guint32 modifiers = 0;
> > -#if GTK_CHECK_VERSION(3,18,0)
> >  /* Ignore GLib's too-new warnings */
> >  G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> >      GdkKeymap *keyboard = gdk_keymap_get_default();
> > @@ -136,43 +135,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> >          modifiers |= SPICE_INPUTS_SCROLL_LOCK;
> >      }
> >  G_GNUC_END_IGNORE_DEPRECATIONS
> > -#else
> > -#ifdef HAVE_X11_XKBLIB_H
> > -    Display *x_display = NULL;
> > -    XKeyboardState keyboard_state;
> > -
> > -    GdkScreen *screen = gdk_screen_get_default();
> > -    if (!GDK_IS_X11_DISPLAY(gdk_screen_get_display(screen))) {
> > -        SPICE_DEBUG("FIXME: gtk backend is not X11");
> > -        return 0;
> > -    }
> > -
> > -    x_display = GDK_SCREEN_XDISPLAY(screen);
> > -    XGetKeyboardControl(x_display, &keyboard_state);
> > -
> > -    if (keyboard_state.led_mask & 0x01) {
> > -        modifiers |= SPICE_INPUTS_CAPS_LOCK;
> > -    }
> > -    if (keyboard_state.led_mask & 0x02) {
> > -        modifiers |= SPICE_INPUTS_NUM_LOCK;
> > -    }
> > -    if (keyboard_state.led_mask & 0x04) {
> > -        modifiers |= SPICE_INPUTS_SCROLL_LOCK;
> > -    }
> > -#elif defined(G_OS_WIN32)
> > -    if (GetKeyState(VK_CAPITAL) & 1) {
> > -        modifiers |= SPICE_INPUTS_CAPS_LOCK;
> > -    }
> > -    if (GetKeyState(VK_NUMLOCK) & 1) {
> > -        modifiers |= SPICE_INPUTS_NUM_LOCK;
> > -    }
> > -    if (GetKeyState(VK_SCROLL) & 1) {
> > -        modifiers |= SPICE_INPUTS_SCROLL_LOCK;
> > -    }
> > -#else
> > -    g_warning("get_keyboard_lock_modifiers not implemented");
> > -#endif // HAVE_X11_XKBLIB_H
> > -#endif // GTK_CHECK_VERSION(3,18,0)
> >      return modifiers;
> >  }
> >  
> > diff --git a/src/spice-widget-egl.c b/src/spice-widget-egl.c
> > index 29d2f01..a6805dd 100644
> > --- a/src/spice-widget-egl.c
> > +++ b/src/spice-widget-egl.c
> > @@ -308,7 +308,6 @@ gl_make_current(SpiceDisplay *display, GError **err)
> >          }
> >      }
> >  #endif
> > -#if GTK_CHECK_VERSION(3,16,0)
> >  #ifdef GDK_WINDOWING_X11
> >      else
> >  #endif
> > @@ -320,7 +319,6 @@ gl_make_current(SpiceDisplay *display, GError **err)
> >          gtk_gl_area_make_current(GTK_GL_AREA(area));
> >          G_GNUC_END_IGNORE_DEPRECATIONS
> >      }
> > -#endif
> >  
> >      return TRUE;
> >  }
> > @@ -600,9 +598,7 @@ void spice_egl_update_display(SpiceDisplay *display)
> >      glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
> >      glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
> >  
> > -#if !GTK_CHECK_VERSION(3,16,0)
> >      glEGLImageTargetTexture2DOES(GL_TEXTURE_2D,
> >      (GLeglImageOES)d->egl.image);
> > -#endif
> >  
> >      glDisable(GL_BLEND);
> >      glGetIntegerv(GL_CURRENT_PROGRAM, &prog);
> > @@ -686,13 +682,11 @@ gboolean spice_egl_update_scanout(SpiceDisplay
> > *display,
> >  
> >      d->egl.scanout = *scanout;
> >  
> > -#if GTK_CHECK_VERSION(3,16,0)
> >      if (!gl_make_current(display, NULL))
> >          return FALSE;
> >  
> >      glBindTexture(GL_TEXTURE_2D, d->egl.tex_id);
> >      glEGLImageTargetTexture2DOES(GL_TEXTURE_2D,
> >      (GLeglImageOES)d->egl.image);
> > -#endif
> >  
> >      return TRUE;
> >  }
> > diff --git a/src/spice-widget.c b/src/spice-widget.c
> > index ecd29e9..cb35e72 100644
> > --- a/src/spice-widget.c
> > +++ b/src/spice-widget.c
> > @@ -573,7 +573,6 @@ static void grab_notify(SpiceDisplay *display, gboolean
> > was_grabbed)
> >          release_keys(display);
> >  }
> >  
> > -#if GTK_CHECK_VERSION(3,16,0)
> >  #if HAVE_EGL
> >  /* Ignore GLib's too-new warnings */
> >  G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > @@ -610,7 +609,6 @@ gl_area_realize(GtkGLArea *area, gpointer user_data)
> >  }
> >  G_GNUC_END_IGNORE_DEPRECATIONS
> >  #endif
> > -#endif
> >  
> >  static void
> >  drawing_area_realize(GtkWidget *area, gpointer user_data)
> > @@ -645,7 +643,6 @@ static void spice_display_init(SpiceDisplay *display)
> >      gtk_widget_set_double_buffered(area, true);
> >      gtk_stack_set_visible_child(d->stack, area);
> >  
> > -#if GTK_CHECK_VERSION(3,16,0)
> >  #if HAVE_EGL
> >  /* Ignore GLib's too-new warnings */
> >  G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > @@ -658,7 +655,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> >                       NULL);
> >      gtk_stack_add_named(d->stack, area, "gl-area");
> >  G_GNUC_END_IGNORE_DEPRECATIONS
> > -#endif
> >  #endif
> >      area = gtk_drawing_area_new();
> >      gtk_stack_add_named(d->stack, area, "gst-area");
> > @@ -813,7 +809,6 @@ SpiceGrabSequence
> > *spice_display_get_grab_keys(SpiceDisplay *display)
> >      return d->grabseq;
> >  }
> >  
> > -#if GTK_CHECK_VERSION(3, 20, 0)
> >  static GdkSeat *spice_display_get_default_seat(SpiceDisplay *display)
> >  {
> >      GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(display));
> > @@ -822,7 +817,6 @@ static GdkSeat
> > *spice_display_get_default_seat(SpiceDisplay *display)
> >      return gdk_display_get_default_seat(gdk_display);
> >      G_GNUC_END_IGNORE_DEPRECATIONS
> >  }
> > -#endif
> >  
> >  /* FIXME: gdk_keyboard_grab/ungrab() is deprecated */
> >  G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > @@ -869,7 +863,6 @@ 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)
> >      status = gdk_seat_grab(spice_display_get_default_seat(display),
> >                             gtk_widget_get_window(widget),
> >                             GDK_SEAT_CAPABILITY_KEYBOARD,
> > @@ -878,10 +871,6 @@ static void try_keyboard_grab(SpiceDisplay *display)
> >                             NULL,
> >                             NULL,
> >                             NULL);
> > -#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;
> > @@ -894,14 +883,10 @@ static void try_keyboard_grab(SpiceDisplay *display)
> >  static void ungrab_keyboard(G_GNUC_UNUSED SpiceDisplay *display)
> >  {
> >      G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > -#if GTK_CHECK_VERSION(3, 20, 0)
> >      /* we want to ungrab just the keyboard - it is not possible using
> >      gdk_seat_ungrab().
> >         See also https://bugzilla.gnome.org/show_bug.cgi?id=780133 */
> >      GdkDevice *keyboard =
> >      gdk_seat_get_keyboard(spice_display_get_default_seat(display));
> >      gdk_device_ungrab(keyboard, GDK_CURRENT_TIME);
> > -#else
> > -    gdk_keyboard_ungrab(GDK_CURRENT_TIME);
> > -#endif
> >      G_GNUC_END_IGNORE_DEPRECATIONS
> >  }
> >  
> > @@ -1044,7 +1029,6 @@ static gboolean do_pointer_grab(SpiceDisplay *display)
> >  
> >      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,
> > @@ -1053,26 +1037,6 @@ static gboolean do_pointer_grab(SpiceDisplay *display)
> >                             NULL,
> >                             NULL,
> >                             NULL);
> > -#else
> > -    /*
> > -     * from gtk-vnc:
> > -     * For relative mouse to work correctly when grabbed we need to
> > -     * allow the pointer to move anywhere on the local desktop, so
> > -     * use NULL for the 'confine_to' argument. Furthermore we need
> > -     * the coords to be reported to our VNC window, regardless of
> > -     * what window the pointer is actally over, so use 'FALSE' for
> > -     * 'owner_events' parameter
> > -     */
> > -    status = gdk_pointer_grab(window, FALSE,
> > -                     GDK_POINTER_MOTION_MASK |
> > -                     GDK_BUTTON_PRESS_MASK |
> > -                     GDK_BUTTON_RELEASE_MASK |
> > -                     GDK_BUTTON_MOTION_MASK |
> > -                     GDK_SCROLL_MASK,
> > -                     NULL,
> > -                     blank,
> > -                     GDK_CURRENT_TIME);
> > -#endif
> >      G_GNUC_END_IGNORE_DEPRECATIONS
> >      grab_successful = (status == GDK_GRAB_SUCCESS);
> >      if (!grab_successful) {
> > @@ -1176,14 +1140,10 @@ static void mouse_wrap(SpiceDisplay *display,
> > GdkEventMotion *motion)
> >  static void ungrab_pointer(G_GNUC_UNUSED SpiceDisplay *display)
> >  {
> >      G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > -#if GTK_CHECK_VERSION(3, 20, 0)
> >      /* we want to ungrab just the pointer - it is not possible using
> >      gdk_seat_ungrab().
> >         See also https://bugzilla.gnome.org/show_bug.cgi?id=780133 */
> >      GdkDevice *pointer =
> >      gdk_seat_get_pointer(spice_display_get_default_seat(display));
> >      gdk_device_ungrab(pointer, GDK_CURRENT_TIME);
> > -#else
> > -    gdk_pointer_ungrab(GDK_CURRENT_TIME);
> > -#endif
> >      G_GNUC_END_IGNORE_DEPRECATIONS
> >  }
> >  
> > @@ -1624,14 +1584,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
> >      if (!d->inputs)
> >          return true;
> >  
> > -    if (key->keyval == GDK_KEY_Pause
> > -#if defined(G_OS_WIN32) && !GTK_CHECK_VERSION(3, 22, 0)
> > -        /* Bug https://bugzilla.gnome.org/show_bug.cgi?id=769214
> > -         * Fixed in 3.22 with 125ef35
> > -         */
> > -        || key->hardware_keycode == VK_PAUSE
> > -#endif
> > -        ) {
> > +    if (key->keyval == GDK_KEY_Pause) {
> >          return send_pause(display, key->type);
> >      }
> >      if (!scancode)
> > @@ -2450,11 +2403,7 @@ static GdkDevice
> > *spice_gdk_window_get_pointing_device(GdkWindow *window)
> >  {
> >      GdkDisplay *gdk_display = gdk_window_get_display(window);
> >      G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > -#if GTK_CHECK_VERSION(3, 20, 0)
> >      return gdk_seat_get_pointer(gdk_display_get_default_seat(gdk_display));
> > -#else
> > -    return
> > gdk_device_manager_get_client_pointer(gdk_display_get_device_manager(gdk_display));
> > -#endif
> >      G_GNUC_END_IGNORE_DEPRECATIONS
> >  }
> >  
> > @@ -2947,6 +2896,7 @@ static void gl_draw(SpiceDisplay *display,
> >                      guint32 x, guint32 y, guint32 w, guint32 h)
> >  {
> >      SpiceDisplayPrivate *d = display->priv;
> > +    GtkWidget *gl;
> >  
> >      DISPLAY_DEBUG(display, "%s",  __FUNCTION__);
> >  
> > @@ -2958,8 +2908,7 @@ static void gl_draw(SpiceDisplay *display,
> >          return;
> >      }
> >  
> > -#if GTK_CHECK_VERSION(3,16,0)
> > -    GtkWidget *gl = gtk_stack_get_child_by_name(d->stack, "gl-area");
> > +    gl = gtk_stack_get_child_by_name(d->stack, "gl-area");
> 
> No need for this change.
> 
> >  
> >      if (gtk_stack_get_visible_child(d->stack) == gl) {
> >          /* Ignore GLib's too-new warnings */
> > @@ -2967,9 +2916,7 @@ static void gl_draw(SpiceDisplay *display,
> >          gtk_gl_area_queue_render(GTK_GL_AREA(gl));
> >          G_GNUC_END_IGNORE_DEPRECATIONS
> >          d->egl.call_draw_done = TRUE;
> > -    } else
> > -#endif
> > -    {
> > +    } else {
> >          spice_egl_update_display(display);
> >          spice_display_channel_gl_draw_done(d->display);
> >      }
> 
> There's also gdk_event_get_scancode (configure.ac and src/spice-widget.c).
> 
> Maybe some G_GNUC_BEGIN_IGNORE_DEPRECATIONS/G_GNUC_END_IGNORE_DEPRECATIONS
> could be removed too?
> 
> Frediano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20180720/b56ea1ec/attachment-0001.sig>


More information about the Spice-devel mailing list