All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes
@ 2016-05-06 18:03 Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 01/10] ui: gtk: fix crash when terminal inner-border is NULL Cole Robinson
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Cole Robinson @ 2016-05-06 18:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson

gtk and sdl2 are nearly unusable on Fedora 24 at the moment.

The first two patches fix the worst issues. The remaining patches
are just extra bits that came about while I was digging into this.

Thanks,
Cole

Cole Robinson (10):
  ui: gtk: fix crash when terminal inner-border is NULL
  ui: sdl2: Release grab before opening console window
  configure: build SDL if only SDL2 available
  configure: error on unknown --with-sdlabi value
  configure: add echo_version helper
  configure: report GTK version
  configure: report SDL version
  configure: support vte-2.91
  ui: gtk: Fix a runtime warning on vte >= 0.37
  ui: gtk: Fix some deprecation warnings

 configure | 62 +++++++++++++++++++++++++++++++++++++++-----------------------
 ui/gtk.c  | 41 ++++++++++++++++++++++++++++++-----------
 ui/sdl2.c |  4 ++++
 3 files changed, 73 insertions(+), 34 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 01/10] ui: gtk: fix crash when terminal inner-border is NULL
  2016-05-06 18:03 [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes Cole Robinson
@ 2016-05-06 18:03 ` Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 02/10] ui: sdl2: Release grab before opening console window Cole Robinson
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Cole Robinson @ 2016-05-06 18:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson

VTE terminal inner-border can be NULL. The vte-0.36 (API 2.90)
code checks for the condition too so I assume it's not just a bug

Fixes a crash on Fedora 24 with gtk 3.20

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 ui/gtk.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/ui/gtk.c b/ui/gtk.c
index f372a6d..9876d89 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -340,10 +340,12 @@ static void gd_update_geometry_hints(VirtualConsole *vc)
         geo.min_height = geo.height_inc * VC_TERM_Y_MIN;
         mask |= GDK_HINT_MIN_SIZE;
         gtk_widget_style_get(vc->vte.terminal, "inner-border", &ib, NULL);
-        geo.base_width  += ib->left + ib->right;
-        geo.base_height += ib->top + ib->bottom;
-        geo.min_width   += ib->left + ib->right;
-        geo.min_height  += ib->top + ib->bottom;
+        if (ib) {
+            geo.base_width  += ib->left + ib->right;
+            geo.base_height += ib->top + ib->bottom;
+            geo.min_width   += ib->left + ib->right;
+            geo.min_height  += ib->top + ib->bottom;
+        }
         geo_widget = vc->vte.terminal;
 #endif
     }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 02/10] ui: sdl2: Release grab before opening console window
  2016-05-06 18:03 [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 01/10] ui: gtk: fix crash when terminal inner-border is NULL Cole Robinson
@ 2016-05-06 18:03 ` Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 03/10] configure: build SDL if only SDL2 available Cole Robinson
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Cole Robinson @ 2016-05-06 18:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson

sdl 2.0.4 currently has a bug which causes our UI shortcuts to fire
rapidly in succession:

  https://bugzilla.libsdl.org/show_bug.cgi?id=3287

It's a toss up whether ctrl+alt+f or ctrl+alt+2 will fire an
odd or even number of times, thus determining whether the action
succeeds or fails.

Opening monitor/serial windows is doubly broken, since it will often
lock the UI trying to grab the pointer:

  0x00007fffef3720a5 in SDL_Delay_REAL () at /lib64/libSDL2-2.0.so.0
  0x00007fffef3688ba in X11_SetWindowGrab () at /lib64/libSDL2-2.0.so.0
  0x00007fffef2f2da7 in SDL_SendWindowEvent () at /lib64/libSDL2-2.0.so.0
  0x00007fffef2f080b in SDL_SetKeyboardFocus () at /lib64/libSDL2-2.0.so.0
  0x00007fffef35d784 in X11_DispatchFocusIn.isra.8 () at /lib64/libSDL2-2.0.so.0
  0x00007fffef35dbce in X11_DispatchEvent () at /lib64/libSDL2-2.0.so.0
  0x00007fffef35ee4a in X11_PumpEvents () at /lib64/libSDL2-2.0.so.0
  0x00007fffef2eea6a in SDL_PumpEvents_REAL () at /lib64/libSDL2-2.0.so.0
  0x00007fffef2eeab5 in SDL_WaitEventTimeout_REAL () at /lib64/libSDL2-2.0.so.0
  0x000055555597eed0 in sdl2_poll_events (scon=0x55555876f928) at ui/sdl2.c:593

We can work around that hang by ungrabbing the pointer before launching
a new window. This roughly matches what our sdl1 code does

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 ui/sdl2.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/ui/sdl2.c b/ui/sdl2.c
index d042442..909038f 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -357,6 +357,10 @@ static void handle_keydown(SDL_Event *ev)
         case SDL_SCANCODE_7:
         case SDL_SCANCODE_8:
         case SDL_SCANCODE_9:
+            if (gui_grab) {
+                sdl_grab_end(scon);
+            }
+
             win = ev->key.keysym.scancode - SDL_SCANCODE_1;
             if (win < sdl2_num_outputs) {
                 sdl2_console[win].hidden = !sdl2_console[win].hidden;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 03/10] configure: build SDL if only SDL2 available
  2016-05-06 18:03 [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 01/10] ui: gtk: fix crash when terminal inner-border is NULL Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 02/10] ui: sdl2: Release grab before opening console window Cole Robinson
@ 2016-05-06 18:03 ` Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 04/10] configure: error on unknown --with-sdlabi value Cole Robinson
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Cole Robinson @ 2016-05-06 18:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson

Right now if SDL2 is installed but not SDL1, default configure will
entirely disable SDL. Check upfront for SDL2 using pkg-config, but
still prefer SDL1 if both versions are installed.

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 configure | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index c37fc5f..0b53fac 100755
--- a/configure
+++ b/configure
@@ -207,7 +207,7 @@ fdt=""
 netmap="no"
 pixman=""
 sdl=""
-sdlabi="1.2"
+sdlabi=""
 virtfs=""
 vnc="yes"
 sparse="no"
@@ -2420,6 +2420,16 @@ fi
 # Look for sdl configuration program (pkg-config or sdl-config).  Try
 # sdl-config even without cross prefix, and favour pkg-config over sdl-config.
 
+if test "$sdlabi" = ""; then
+    if $pkg_config --exists "sdl"; then
+        sdlabi=1.2
+    elif $pkg_config --exists "sdl2"; then
+        sdlabi=2.0
+    else
+        sdlabi=1.2
+    fi
+fi
+
 if test $sdlabi = "2.0"; then
     sdl_config=$sdl2_config
     sdlname=sdl2
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 04/10] configure: error on unknown --with-sdlabi value
  2016-05-06 18:03 [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes Cole Robinson
                   ` (2 preceding siblings ...)
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 03/10] configure: build SDL if only SDL2 available Cole Robinson
@ 2016-05-06 18:03 ` Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 05/10] configure: add echo_version helper Cole Robinson
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Cole Robinson @ 2016-05-06 18:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson

I accidentally tried --with-sdlabi="1.0", and it failed much later in
a weird way. Instead, throw an error if the value isn't in our
whitelist.

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 configure | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 0b53fac..8e25a24 100755
--- a/configure
+++ b/configure
@@ -2434,9 +2434,11 @@ if test $sdlabi = "2.0"; then
     sdl_config=$sdl2_config
     sdlname=sdl2
     sdlconfigname=sdl2_config
-else
+elif test $sdlabi = "1.2"; then
     sdlname=sdl
     sdlconfigname=sdl_config
+else
+    error_exit "Unknown sdlabi $sdlabi, must be 1.2 or 2.0"
 fi
 
 if test "`basename $sdl_config`" != $sdlconfigname && ! has ${sdl_config}; then
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 05/10] configure: add echo_version helper
  2016-05-06 18:03 [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes Cole Robinson
                   ` (3 preceding siblings ...)
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 04/10] configure: error on unknown --with-sdlabi value Cole Robinson
@ 2016-05-06 18:03 ` Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 06/10] configure: report GTK version Cole Robinson
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Cole Robinson @ 2016-05-06 18:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson

Simplifies printing library versions, dependent on if the library
was even found

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 configure | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/configure b/configure
index 8e25a24..76600f4 100755
--- a/configure
+++ b/configure
@@ -4730,6 +4730,12 @@ EOF
   fi
 fi
 
+echo_version() {
+    if test "$1" = "yes" ; then
+        echo "($2)"
+    fi
+}
+
 # prepend pixman and ftd flags after all config tests are done
 QEMU_CFLAGS="$pixman_cflags $fdt_cflags $QEMU_CFLAGS"
 libs_softmmu="$pixman_libs $libs_softmmu"
@@ -4787,11 +4793,7 @@ echo "GNUTLS hash       $gnutls_hash"
 echo "GNUTLS rnd        $gnutls_rnd"
 echo "libgcrypt         $gcrypt"
 echo "libgcrypt kdf     $gcrypt_kdf"
-if test "$nettle" = "yes"; then
-    echo "nettle            $nettle ($nettle_version)"
-else
-    echo "nettle            $nettle"
-fi
+echo "nettle            $nettle `echo_version $nettle $nettle_version`"
 echo "nettle kdf        $nettle_kdf"
 echo "libtasn1          $tasn1"
 echo "VTE support       $vte"
@@ -4843,11 +4845,7 @@ echo "Trace backends    $trace_backends"
 if have_backend "simple"; then
 echo "Trace output file $trace_file-<pid>"
 fi
-if test "$spice" = "yes"; then
-echo "spice support     $spice ($spice_protocol_version/$spice_server_version)"
-else
-echo "spice support     $spice"
-fi
+echo "spice support     $spice `echo_version $spice $spice_protocol_version/$spice_server_version`"
 echo "rbd support       $rbd"
 echo "xfsctl support    $xfs"
 echo "smartcard support $smartcard"
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 06/10] configure: report GTK version
  2016-05-06 18:03 [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes Cole Robinson
                   ` (4 preceding siblings ...)
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 05/10] configure: add echo_version helper Cole Robinson
@ 2016-05-06 18:03 ` Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 07/10] configure: report SDL version Cole Robinson
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Cole Robinson @ 2016-05-06 18:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 configure | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 76600f4..55bd354 100755
--- a/configure
+++ b/configure
@@ -2157,6 +2157,7 @@ if test "$gtk" != "no"; then
     if $pkg_config --exists "$gtkpackage >= $gtkversion"; then
         gtk_cflags=`$pkg_config --cflags $gtkpackage`
         gtk_libs=`$pkg_config --libs $gtkpackage`
+        gtk_version=`$pkg_config --modversion $gtkpackage`
         if $pkg_config --exists "$gtkx11package >= $gtkversion"; then
             gtk_cflags="$gtk_cflags $x11_cflags"
             gtk_libs="$gtk_libs $x11_libs"
@@ -4786,7 +4787,7 @@ if test "$darwin" = "yes" ; then
 fi
 echo "pixman            $pixman"
 echo "SDL support       $sdl"
-echo "GTK support       $gtk"
+echo "GTK support       $gtk `echo_version $gtk $gtk_version`"
 echo "GTK GL support    $gtk_gl"
 echo "GNUTLS support    $gnutls"
 echo "GNUTLS hash       $gnutls_hash"
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 07/10] configure: report SDL version
  2016-05-06 18:03 [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes Cole Robinson
                   ` (5 preceding siblings ...)
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 06/10] configure: report GTK version Cole Robinson
@ 2016-05-06 18:03 ` Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 08/10] configure: support vte-2.91 Cole Robinson
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Cole Robinson @ 2016-05-06 18:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 configure | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/configure b/configure
index 55bd354..22cf55c 100755
--- a/configure
+++ b/configure
@@ -2448,10 +2448,10 @@ fi
 
 if $pkg_config $sdlname --exists; then
   sdlconfig="$pkg_config $sdlname"
-  _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
+  sdlversion=`$sdlconfig --modversion 2>/dev/null`
 elif has ${sdl_config}; then
   sdlconfig="$sdl_config"
-  _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'`
+  sdlversion=`$sdlconfig --version`
 else
   if test "$sdl" = "yes" ; then
     feature_not_found "sdl" "Install SDL devel"
@@ -2476,7 +2476,7 @@ EOF
     sdl_libs=`$sdlconfig --libs 2> /dev/null`
   fi
   if compile_prog "$sdl_cflags" "$sdl_libs" ; then
-    if test "$_sdlversion" -lt 121 ; then
+    if test `echo $sdlversion | sed 's/[^0-9]//g'` -lt 121 ; then
       sdl_too_old=yes
     else
       sdl=yes
@@ -4786,7 +4786,7 @@ if test "$darwin" = "yes" ; then
     echo "Cocoa support     $cocoa"
 fi
 echo "pixman            $pixman"
-echo "SDL support       $sdl"
+echo "SDL support       $sdl `echo_version $sdl $sdlversion`"
 echo "GTK support       $gtk `echo_version $gtk $gtk_version`"
 echo "GTK GL support    $gtk_gl"
 echo "GNUTLS support    $gnutls"
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 08/10] configure: support vte-2.91
  2016-05-06 18:03 [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes Cole Robinson
                   ` (6 preceding siblings ...)
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 07/10] configure: report SDL version Cole Robinson
@ 2016-05-06 18:03 ` Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 09/10] ui: gtk: Fix a runtime warning on vte >= 0.37 Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 10/10] ui: gtk: Fix some deprecation warnings Cole Robinson
  9 siblings, 0 replies; 11+ messages in thread
From: Cole Robinson @ 2016-05-06 18:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson

vte >= 0.37 expores API version 2.91, which is where all the active
development is. qemu builds and runs fine with that version, so use it
if it's available.

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 configure | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/configure b/configure
index 22cf55c..bbf9005 100755
--- a/configure
+++ b/configure
@@ -2393,20 +2393,25 @@ fi
 
 if test "$vte" != "no"; then
     if test "$gtkabi" = "3.0"; then
-      vtepackage="vte-2.90"
-      vteversion="0.32.0"
+      vteminversion="0.32.0"
+      if $pkg_config --exists "vte-2.91"; then
+        vtepackage="vte-2.91"
+      else
+        vtepackage="vte-2.90"
+      fi
     else
       vtepackage="vte"
-      vteversion="0.24.0"
+      vteminversion="0.24.0"
     fi
-    if $pkg_config --exists "$vtepackage >= $vteversion"; then
+    if $pkg_config --exists "$vtepackage >= $vteminversion"; then
         vte_cflags=`$pkg_config --cflags $vtepackage`
         vte_libs=`$pkg_config --libs $vtepackage`
+        vteversion=`$pkg_config --modversion $vtepackage`
         libs_softmmu="$vte_libs $libs_softmmu"
         vte="yes"
     elif test "$vte" = "yes"; then
         if test "$gtkabi" = "3.0"; then
-            feature_not_found "vte" "Install libvte-2.90 devel"
+            feature_not_found "vte" "Install libvte-2.90/2.91 devel"
         else
             feature_not_found "vte" "Install libvte devel"
         fi
@@ -4789,6 +4794,7 @@ echo "pixman            $pixman"
 echo "SDL support       $sdl `echo_version $sdl $sdlversion`"
 echo "GTK support       $gtk `echo_version $gtk $gtk_version`"
 echo "GTK GL support    $gtk_gl"
+echo "VTE support       $vte `echo_version $vte $vteversion`"
 echo "GNUTLS support    $gnutls"
 echo "GNUTLS hash       $gnutls_hash"
 echo "GNUTLS rnd        $gnutls_rnd"
@@ -4797,7 +4803,6 @@ echo "libgcrypt kdf     $gcrypt_kdf"
 echo "nettle            $nettle `echo_version $nettle $nettle_version`"
 echo "nettle kdf        $nettle_kdf"
 echo "libtasn1          $tasn1"
-echo "VTE support       $vte"
 echo "curses support    $curses"
 echo "virgl support     $virglrenderer"
 echo "curl support      $curl"
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 09/10] ui: gtk: Fix a runtime warning on vte >= 0.37
  2016-05-06 18:03 [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes Cole Robinson
                   ` (7 preceding siblings ...)
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 08/10] configure: support vte-2.91 Cole Robinson
@ 2016-05-06 18:03 ` Cole Robinson
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 10/10] ui: gtk: Fix some deprecation warnings Cole Robinson
  9 siblings, 0 replies; 11+ messages in thread
From: Cole Robinson @ 2016-05-06 18:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson

inner-border was dropped in vte API 2.91, in favor of the standard
padding style

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 ui/gtk.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/ui/gtk.c b/ui/gtk.c
index 9876d89..d156c8a 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -329,6 +329,7 @@ static void gd_update_geometry_hints(VirtualConsole *vc)
     } else if (vc->type == GD_VC_VTE) {
         VteTerminal *term = VTE_TERMINAL(vc->vte.terminal);
         GtkBorder *ib;
+        GtkBorder padding;
 
         geo.width_inc  = vte_terminal_get_char_width(term);
         geo.height_inc = vte_terminal_get_char_height(term);
@@ -339,7 +340,17 @@ static void gd_update_geometry_hints(VirtualConsole *vc)
         geo.min_width  = geo.width_inc * VC_TERM_X_MIN;
         geo.min_height = geo.height_inc * VC_TERM_Y_MIN;
         mask |= GDK_HINT_MIN_SIZE;
+
+#if VTE_CHECK_VERSION(0, 37, 0)
+        gtk_style_context_get_padding(
+                gtk_widget_get_style_context(vc->vte.terminal),
+                gtk_widget_get_state_flags(vc->vte.terminal),
+                &padding);
+        ib = &padding;
+#else
         gtk_widget_style_get(vc->vte.terminal, "inner-border", &ib, NULL);
+#endif
+
         if (ib) {
             geo.base_width  += ib->left + ib->right;
             geo.base_height += ib->top + ib->bottom;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 10/10] ui: gtk: Fix some deprecation warnings
  2016-05-06 18:03 [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes Cole Robinson
                   ` (8 preceding siblings ...)
  2016-05-06 18:03 ` [Qemu-devel] [PATCH 09/10] ui: gtk: Fix a runtime warning on vte >= 0.37 Cole Robinson
@ 2016-05-06 18:03 ` Cole Robinson
  9 siblings, 0 replies; 11+ messages in thread
From: Cole Robinson @ 2016-05-06 18:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson

All device manager APIs are deprecated now. Much of our usage is
just to get the current pointer, so centralize that logic and use
the new seat APIs

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
The remaining warnings look like they'll take a bit more effort

 ui/gtk.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/ui/gtk.c b/ui/gtk.c
index d156c8a..d3d7f62 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -476,12 +476,21 @@ static void gd_refresh(DisplayChangeListener *dcl)
 }
 
 #if GTK_CHECK_VERSION(3, 0, 0)
+static GdkDevice *gd_get_pointer(GdkDisplay *dpy)
+{
+#if GTK_CHECK_VERSION(3, 20, 0)
+    return gdk_seat_get_pointer(gdk_display_get_default_seat(dpy));
+#else
+    return gdk_device_manager_get_client_pointer(
+        gdk_display_get_device_manager(dpy));
+#endif
+}
+
 static void gd_mouse_set(DisplayChangeListener *dcl,
                          int x, int y, int visible)
 {
     VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl);
     GdkDisplay *dpy;
-    GdkDeviceManager *mgr;
     gint x_root, y_root;
 
     if (qemu_input_is_absolute()) {
@@ -489,10 +498,9 @@ static void gd_mouse_set(DisplayChangeListener *dcl,
     }
 
     dpy = gtk_widget_get_display(vc->gfx.drawing_area);
-    mgr = gdk_display_get_device_manager(dpy);
     gdk_window_get_root_coords(gtk_widget_get_window(vc->gfx.drawing_area),
                                x, y, &x_root, &y_root);
-    gdk_device_warp(gdk_device_manager_get_client_pointer(mgr),
+    gdk_device_warp(gd_get_pointer(dpy),
                     gtk_widget_get_screen(vc->gfx.drawing_area),
                     x_root, y_root);
     vc->s->last_x = x;
@@ -1402,7 +1410,6 @@ static void gd_grab_pointer(VirtualConsole *vc, const char *reason)
     }
 
 #if GTK_CHECK_VERSION(3, 0, 0)
-    GdkDeviceManager *mgr = gdk_display_get_device_manager(display);
     gd_grab_devices(vc, true, GDK_SOURCE_MOUSE,
                     GDK_POINTER_MOTION_MASK |
                     GDK_BUTTON_PRESS_MASK |
@@ -1410,7 +1417,7 @@ static void gd_grab_pointer(VirtualConsole *vc, const char *reason)
                     GDK_BUTTON_MOTION_MASK |
                     GDK_SCROLL_MASK,
                     vc->s->null_cursor);
-    gdk_device_get_position(gdk_device_manager_get_client_pointer(mgr),
+    gdk_device_get_position(gd_get_pointer(display),
                             NULL, &vc->s->grab_x_root, &vc->s->grab_y_root);
 #else
     gdk_pointer_grab(gtk_widget_get_window(vc->gfx.drawing_area),
@@ -1442,9 +1449,8 @@ static void gd_ungrab_pointer(GtkDisplayState *s)
 
     GdkDisplay *display = gtk_widget_get_display(vc->gfx.drawing_area);
 #if GTK_CHECK_VERSION(3, 0, 0)
-    GdkDeviceManager *mgr = gdk_display_get_device_manager(display);
     gd_grab_devices(vc, false, GDK_SOURCE_MOUSE, 0, NULL);
-    gdk_device_warp(gdk_device_manager_get_client_pointer(mgr),
+    gdk_device_warp(gd_get_pointer(display),
                     gtk_widget_get_screen(vc->gfx.drawing_area),
                     vc->s->grab_x_root, vc->s->grab_y_root);
 #else
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-05-06 18:05 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-06 18:03 [Qemu-devel] [PATCH 00/10] ui: gtk and sdl2 fixes Cole Robinson
2016-05-06 18:03 ` [Qemu-devel] [PATCH 01/10] ui: gtk: fix crash when terminal inner-border is NULL Cole Robinson
2016-05-06 18:03 ` [Qemu-devel] [PATCH 02/10] ui: sdl2: Release grab before opening console window Cole Robinson
2016-05-06 18:03 ` [Qemu-devel] [PATCH 03/10] configure: build SDL if only SDL2 available Cole Robinson
2016-05-06 18:03 ` [Qemu-devel] [PATCH 04/10] configure: error on unknown --with-sdlabi value Cole Robinson
2016-05-06 18:03 ` [Qemu-devel] [PATCH 05/10] configure: add echo_version helper Cole Robinson
2016-05-06 18:03 ` [Qemu-devel] [PATCH 06/10] configure: report GTK version Cole Robinson
2016-05-06 18:03 ` [Qemu-devel] [PATCH 07/10] configure: report SDL version Cole Robinson
2016-05-06 18:03 ` [Qemu-devel] [PATCH 08/10] configure: support vte-2.91 Cole Robinson
2016-05-06 18:03 ` [Qemu-devel] [PATCH 09/10] ui: gtk: Fix a runtime warning on vte >= 0.37 Cole Robinson
2016-05-06 18:03 ` [Qemu-devel] [PATCH 10/10] ui: gtk: Fix some deprecation warnings Cole Robinson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.