* [Qemu-devel] [PULL 00/12] ui patch queue
@ 2016-05-10 5:51 Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 01/12] ui: gtk: fix crash when terminal inner-border is NULL Gerd Hoffmann
` (13 more replies)
0 siblings, 14 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
Hi,
First UI pull request for 2.7. Brings a bunch of build tweaks for gtk
and sdl. Fixes the gtk 3.20 deprication warnings. Some stuff piled
up during the freeze.
please pull,
Gerd
The following changes since commit 975eb6a547f809608ccb08c221552f666611af25:
Update version for v2.6.0-rc4 release (2016-05-02 17:27:01 +0100)
are available in the git repository at:
git://git.kraxel.org/qemu tags/pull-ui-20160510-1
for you to fetch changes up to da2e1221d7d19f2506fb04eca255a4fee4fc5f6b:
spice/gl: add & use qemu_spice_gl_monitor_config (2016-05-10 07:43:46 +0200)
----------------------------------------------------------------
gtk/sdl build tweaks
fix gtk 3.20 warnings
gtk clipboard support
spice-gl monitor config support
----------------------------------------------------------------
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
Gerd Hoffmann (1):
spice/gl: add & use qemu_spice_gl_monitor_config
Michael S. Tsirkin (1):
ui/gtk: copy to clipboard support
configure | 62 +++++++++++++++++++++++++++++-----------------
include/ui/spice-display.h | 1 +
ui/gtk.c | 59 ++++++++++++++++++++++++++++++++++---------
ui/sdl2.c | 4 +++
ui/spice-display.c | 30 ++++++++++++++++++++++
5 files changed, 121 insertions(+), 35 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 01/12] ui: gtk: fix crash when terminal inner-border is NULL
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 02/12] ui: sdl2: Release grab before opening console window Gerd Hoffmann
` (12 subsequent siblings)
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Cole Robinson, Gerd Hoffmann
From: Cole Robinson <crobinso@redhat.com>
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>
Message-id: 2b2e85d403e8760ea53afd735a170500d5c17716.1462557436.git.crobinso@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@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
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 02/12] ui: sdl2: Release grab before opening console window
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 01/12] ui: gtk: fix crash when terminal inner-border is NULL Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 03/12] configure: build SDL if only SDL2 available Gerd Hoffmann
` (11 subsequent siblings)
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Cole Robinson, Gerd Hoffmann
From: Cole Robinson <crobinso@redhat.com>
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>
Message-id: 31c9ab6540b031f7a614c59edcecea9877685612.1462557436.git.crobinso@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@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;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 03/12] configure: build SDL if only SDL2 available
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 01/12] ui: gtk: fix crash when terminal inner-border is NULL Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 02/12] ui: sdl2: Release grab before opening console window Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 04/12] configure: error on unknown --with-sdlabi value Gerd Hoffmann
` (10 subsequent siblings)
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Cole Robinson, Gerd Hoffmann
From: Cole Robinson <crobinso@redhat.com>
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>
Message-id: c9e570b5964d128a3595efe3170129a3da459776.1462557436.git.crobinso@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@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
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 04/12] configure: error on unknown --with-sdlabi value
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
` (2 preceding siblings ...)
2016-05-10 5:51 ` [Qemu-devel] [PULL 03/12] configure: build SDL if only SDL2 available Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 05/12] configure: add echo_version helper Gerd Hoffmann
` (9 subsequent siblings)
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Cole Robinson, Gerd Hoffmann
From: Cole Robinson <crobinso@redhat.com>
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>
Message-id: 60e4822e17697d257a914df03bdb9fff4b4c0490.1462557436.git.crobinso@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@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
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 05/12] configure: add echo_version helper
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
` (3 preceding siblings ...)
2016-05-10 5:51 ` [Qemu-devel] [PULL 04/12] configure: error on unknown --with-sdlabi value Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 06/12] configure: report GTK version Gerd Hoffmann
` (8 subsequent siblings)
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Cole Robinson, Gerd Hoffmann
From: Cole Robinson <crobinso@redhat.com>
Simplifies printing library versions, dependent on if the library
was even found
Signed-off-by: Cole Robinson <crobinso@redhat.com>
Message-id: 3c9ab16123e06bb4109771ef6ee8acd82d449ba0.1462557436.git.crobinso@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@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"
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 06/12] configure: report GTK version
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
` (4 preceding siblings ...)
2016-05-10 5:51 ` [Qemu-devel] [PULL 05/12] configure: add echo_version helper Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 07/12] configure: report SDL version Gerd Hoffmann
` (7 subsequent siblings)
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Cole Robinson, Gerd Hoffmann
From: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
Message-id: 4c464e20d69fdcf21927ceed31a8d749b4af0c49.1462557436.git.crobinso@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@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"
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 07/12] configure: report SDL version
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
` (5 preceding siblings ...)
2016-05-10 5:51 ` [Qemu-devel] [PULL 06/12] configure: report GTK version Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 08/12] configure: support vte-2.91 Gerd Hoffmann
` (6 subsequent siblings)
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Cole Robinson, Gerd Hoffmann
From: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
Message-id: 98e4a3b98dc824bfaff96db43b172272c780c15f.1462557436.git.crobinso@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@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"
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 08/12] configure: support vte-2.91
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
` (6 preceding siblings ...)
2016-05-10 5:51 ` [Qemu-devel] [PULL 07/12] configure: report SDL version Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 09/12] ui: gtk: Fix a runtime warning on vte >= 0.37 Gerd Hoffmann
` (5 subsequent siblings)
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Cole Robinson, Gerd Hoffmann
From: Cole Robinson <crobinso@redhat.com>
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>
Message-id: b4f0375647f7b368d3dbd3834aee58cb0253566a.1462557436.git.crobinso@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@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"
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 09/12] ui: gtk: Fix a runtime warning on vte >= 0.37
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
` (7 preceding siblings ...)
2016-05-10 5:51 ` [Qemu-devel] [PULL 08/12] configure: support vte-2.91 Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 10/12] ui: gtk: Fix some deprecation warnings Gerd Hoffmann
` (4 subsequent siblings)
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Cole Robinson, Gerd Hoffmann
From: Cole Robinson <crobinso@redhat.com>
inner-border was dropped in vte API 2.91, in favor of the standard
padding style
Signed-off-by: Cole Robinson <crobinso@redhat.com>
Message-id: 60a6cdc337d611d902f53907e66a8f37ea374d65.1462557436.git.crobinso@redhat.com
[ kraxel: Fix warning with old vte version. ]
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
ui/gtk.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/ui/gtk.c b/ui/gtk.c
index 9876d89..28e7d28 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -330,6 +330,17 @@ static void gd_update_geometry_hints(VirtualConsole *vc)
VteTerminal *term = VTE_TERMINAL(vc->vte.terminal);
GtkBorder *ib;
+#if VTE_CHECK_VERSION(0, 37, 0)
+ GtkBorder padding;
+ 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
+
geo.width_inc = vte_terminal_get_char_width(term);
geo.height_inc = vte_terminal_get_char_height(term);
mask |= GDK_HINT_RESIZE_INC;
@@ -339,7 +350,7 @@ 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;
- gtk_widget_style_get(vc->vte.terminal, "inner-border", &ib, NULL);
+
if (ib) {
geo.base_width += ib->left + ib->right;
geo.base_height += ib->top + ib->bottom;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 10/12] ui: gtk: Fix some deprecation warnings
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
` (8 preceding siblings ...)
2016-05-10 5:51 ` [Qemu-devel] [PULL 09/12] ui: gtk: Fix a runtime warning on vte >= 0.37 Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 11/12] ui/gtk: copy to clipboard support Gerd Hoffmann
` (3 subsequent siblings)
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Cole Robinson, Gerd Hoffmann
From: Cole Robinson <crobinso@redhat.com>
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>
Message-id: d6dec24220a4e1449a0172119c10c48e145c0f6f.1462557436.git.crobinso@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
ui/gtk.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/ui/gtk.c b/ui/gtk.c
index 28e7d28..2e360e3 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
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 11/12] ui/gtk: copy to clipboard support
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
` (9 preceding siblings ...)
2016-05-10 5:51 ` [Qemu-devel] [PULL 10/12] ui: gtk: Fix some deprecation warnings Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 12/12] spice/gl: add & use qemu_spice_gl_monitor_config Gerd Hoffmann
` (2 subsequent siblings)
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Michael S. Tsirkin, Gerd Hoffmann
From: "Michael S. Tsirkin" <mst@redhat.com>
This adds a menu item to copy current selection to clipboard.
Seems handy for copying out guest error messages.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 1460924740-24513-1-git-send-email-mst@redhat.com
[ kraxel: fix build with CONFIG_VTE=n ]
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
ui/gtk.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/ui/gtk.c b/ui/gtk.c
index 2e360e3..8201584 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -139,6 +139,7 @@ struct GtkDisplayState {
GtkWidget *view_menu_item;
GtkWidget *view_menu;
GtkWidget *full_screen_item;
+ GtkWidget *copy_item;
GtkWidget *zoom_in_item;
GtkWidget *zoom_out_item;
GtkWidget *zoom_fixed_item;
@@ -1263,6 +1264,16 @@ static void gd_menu_full_screen(GtkMenuItem *item, void *opaque)
gd_update_cursor(vc);
}
+static void gd_menu_copy(GtkMenuItem *item, void *opaque)
+{
+ GtkDisplayState *s = opaque;
+ VirtualConsole *vc = gd_vc_find_current(s);
+
+#if defined(CONFIG_VTE)
+ vte_terminal_copy_clipboard(VTE_TERMINAL(vc->vte.terminal));
+#endif
+}
+
static void gd_accel_full_screen(void *opaque)
{
GtkDisplayState *s = opaque;
@@ -1825,6 +1836,8 @@ static void gd_connect_signals(GtkDisplayState *s)
G_CALLBACK(gd_menu_powerdown), s);
g_signal_connect(s->quit_item, "activate",
G_CALLBACK(gd_menu_quit), s);
+ g_signal_connect(s->copy_item, "activate",
+ G_CALLBACK(gd_menu_copy), s);
g_signal_connect(s->full_screen_item, "activate",
G_CALLBACK(gd_menu_full_screen), s);
g_signal_connect(s->zoom_in_item, "activate",
@@ -1958,6 +1971,9 @@ static GtkWidget *gd_create_menu_view(GtkDisplayState *s)
s->full_screen_item = gtk_menu_item_new_with_mnemonic(_("_Fullscreen"));
+ s->copy_item = gtk_menu_item_new_with_mnemonic(_("_Copy"));
+ gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), s->copy_item);
+
gtk_accel_group_connect(s->accel_group, GDK_KEY_f, HOTKEY_MODIFIERS, 0,
g_cclosure_new_swap(G_CALLBACK(gd_accel_full_screen), s, NULL));
#if GTK_CHECK_VERSION(3, 8, 0)
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 12/12] spice/gl: add & use qemu_spice_gl_monitor_config
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
` (10 preceding siblings ...)
2016-05-10 5:51 ` [Qemu-devel] [PULL 11/12] ui/gtk: copy to clipboard support Gerd Hoffmann
@ 2016-05-10 5:51 ` Gerd Hoffmann
2016-05-10 14:08 ` [Qemu-devel] [PULL 00/12] ui patch queue Cole Robinson
2016-05-12 13:26 ` Peter Maydell
13 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-10 5:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann, qemu-stable
Cc: qemu-stable@nongnu.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
include/ui/spice-display.h | 1 +
ui/spice-display.c | 30 ++++++++++++++++++++++++++++++
2 files changed, 31 insertions(+)
diff --git a/include/ui/spice-display.h b/include/ui/spice-display.h
index 30ccfe3..568b64a 100644
--- a/include/ui/spice-display.h
+++ b/include/ui/spice-display.h
@@ -71,6 +71,7 @@ typedef struct QXLCookie {
QXLRect area;
int redraw;
} render;
+ void *data;
} u;
} QXLCookie;
diff --git a/ui/spice-display.c b/ui/spice-display.c
index 242ab5f..2a77a54 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -660,6 +660,11 @@ static void interface_async_complete(QXLInstance *sin, uint64_t cookie_token)
qemu_bh_schedule(ssd->gl_unblock_bh);
break;
}
+ case QXL_COOKIE_TYPE_IO:
+ if (cookie->io == QXL_IO_MONITORS_CONFIG_ASYNC) {
+ g_free(cookie->u.data);
+ }
+ break;
#endif
default:
/* should never be called, used in qxl native mode only */
@@ -795,6 +800,29 @@ static const DisplayChangeListenerOps display_listener_ops = {
#ifdef HAVE_SPICE_GL
+static void qemu_spice_gl_monitor_config(SimpleSpiceDisplay *ssd,
+ int x, int y, int w, int h)
+{
+ QXLMonitorsConfig *config;
+ QXLCookie *cookie;
+
+ config = g_malloc0(sizeof(QXLMonitorsConfig) + sizeof(QXLHead));
+ config->count = 1;
+ config->max_allowed = 1;
+ config->heads[0].x = x;
+ config->heads[0].y = y;
+ config->heads[0].width = w;
+ config->heads[0].height = h;
+ cookie = qxl_cookie_new(QXL_COOKIE_TYPE_IO,
+ QXL_IO_MONITORS_CONFIG_ASYNC);
+ cookie->u.data = config;
+
+ spice_qxl_monitors_config_async(&ssd->qxl,
+ (uintptr_t)config,
+ MEMSLOT_GROUP_HOST,
+ (uintptr_t)cookie);
+}
+
static void qemu_spice_gl_block(SimpleSpiceDisplay *ssd, bool block)
{
uint64_t timeout;
@@ -858,6 +886,8 @@ static void qemu_spice_gl_scanout(DisplayChangeListener *dcl,
surface_width(ssd->ds),
surface_height(ssd->ds),
stride, fourcc, y_0_top);
+
+ qemu_spice_gl_monitor_config(ssd, x, y, w, h);
}
static void qemu_spice_gl_update(DisplayChangeListener *dcl,
--
1.8.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/12] ui patch queue
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
` (11 preceding siblings ...)
2016-05-10 5:51 ` [Qemu-devel] [PULL 12/12] spice/gl: add & use qemu_spice_gl_monitor_config Gerd Hoffmann
@ 2016-05-10 14:08 ` Cole Robinson
2016-05-12 13:26 ` Peter Maydell
13 siblings, 0 replies; 18+ messages in thread
From: Cole Robinson @ 2016-05-10 14:08 UTC (permalink / raw)
To: Gerd Hoffmann, qemu-devel
On 05/10/2016 01:51 AM, Gerd Hoffmann wrote:
> Hi,
>
> First UI pull request for 2.7. Brings a bunch of build tweaks for gtk
> and sdl. Fixes the gtk 3.20 deprication warnings. Some stuff piled
> up during the freeze.
>
Only fixes _some_ of the gtk deprecation warnings, the remaining chunk looked
a bit more invasive
Thanks,
Cole
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/12] ui patch queue
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
` (12 preceding siblings ...)
2016-05-10 14:08 ` [Qemu-devel] [PULL 00/12] ui patch queue Cole Robinson
@ 2016-05-12 13:26 ` Peter Maydell
2016-05-12 13:57 ` Gerd Hoffmann
13 siblings, 1 reply; 18+ messages in thread
From: Peter Maydell @ 2016-05-12 13:26 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: QEMU Developers
On 10 May 2016 at 06:51, Gerd Hoffmann <kraxel@redhat.com> wrote:
> Hi,
>
> First UI pull request for 2.7. Brings a bunch of build tweaks for gtk
> and sdl. Fixes the gtk 3.20 deprication warnings. Some stuff piled
> up during the freeze.
>
> please pull,
> Gerd
>
> The following changes since commit 975eb6a547f809608ccb08c221552f666611af25:
>
> Update version for v2.6.0-rc4 release (2016-05-02 17:27:01 +0100)
>
> are available in the git repository at:
>
> git://git.kraxel.org/qemu tags/pull-ui-20160510-1
>
> for you to fetch changes up to da2e1221d7d19f2506fb04eca255a4fee4fc5f6b:
>
> spice/gl: add & use qemu_spice_gl_monitor_config (2016-05-10 07:43:46 +0200)
>
> ----------------------------------------------------------------
> gtk/sdl build tweaks
> fix gtk 3.20 warnings
> gtk clipboard support
> spice-gl monitor config support
Commiserations on the first failed-to-build pullreq of the 2.7 cycle:
/home/pm215/qemu/ui/gtk.c: In function ‘gd_menu_copy’:
/home/pm215/qemu/ui/gtk.c:1270:21: error: unused variable ‘vc’
[-Werror=unused-variable]
VirtualConsole *vc = gd_vc_find_current(s);
^
This was on ppc64be Linux, though I'm guessing that's just because
it's the only system that happens not to define CONFIG_VTE.
(Q: should we even put the "Copy" entry into the menu if we can't
actually support copying text ?)
thanks
-- PMM
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/12] ui patch queue
2016-05-12 13:26 ` Peter Maydell
@ 2016-05-12 13:57 ` Gerd Hoffmann
2016-05-13 7:56 ` Gerd Hoffmann
0 siblings, 1 reply; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-12 13:57 UTC (permalink / raw)
To: Peter Maydell; +Cc: QEMU Developers
> Commiserations on the first failed-to-build pullreq of the 2.7 cycle:
>
> /home/pm215/qemu/ui/gtk.c: In function ‘gd_menu_copy’:
> /home/pm215/qemu/ui/gtk.c:1270:21: error: unused variable ‘vc’
> [-Werror=unused-variable]
> VirtualConsole *vc = gd_vc_find_current(s);
> ^
>
> This was on ppc64be Linux, though I'm guessing that's just because
> it's the only system that happens not to define CONFIG_VTE.
mingw builds don't have vte too, so I'm wondering now how that one
managed to escape my attention ...
> (Q: should we even put the "Copy" entry into the menu if we can't
> actually support copying text ?)
I was trying to not clutter up the patch with too many #ifdef
CONFIG_VTE. But, yes, probably we should just #ifdef the whole function
and and not add the menu entry.
cheers,
Gerd
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/12] ui patch queue
2016-05-12 13:57 ` Gerd Hoffmann
@ 2016-05-13 7:56 ` Gerd Hoffmann
2016-05-13 10:13 ` Peter Maydell
0 siblings, 1 reply; 18+ messages in thread
From: Gerd Hoffmann @ 2016-05-13 7:56 UTC (permalink / raw)
To: Peter Maydell; +Cc: QEMU Developers
Hi,
> > This was on ppc64be Linux, though I'm guessing that's just because
> > it's the only system that happens not to define CONFIG_VTE.
>
> mingw builds don't have vte too, so I'm wondering now how that one
> managed to escape my attention ...
Ah, because only linux builds default to -Werror.
Maybe we should change that? mingw builds without warnings these days
for me (which wasn't the case a while ago, which in turn is probably the
reason for the selective -Werror).
cheers,
Gerd
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/12] ui patch queue
2016-05-13 7:56 ` Gerd Hoffmann
@ 2016-05-13 10:13 ` Peter Maydell
0 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2016-05-13 10:13 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: QEMU Developers
On 13 May 2016 at 08:56, Gerd Hoffmann <kraxel@redhat.com> wrote:
>> > This was on ppc64be Linux, though I'm guessing that's just because
>> > it's the only system that happens not to define CONFIG_VTE.
>>
>> mingw builds don't have vte too, so I'm wondering now how that one
>> managed to escape my attention ...
>
> Ah, because only linux builds default to -Werror.
>
> Maybe we should change that? mingw builds without warnings these days
> for me (which wasn't the case a while ago, which in turn is probably the
> reason for the selective -Werror).
It depends a bit on your config (I have to add -Wno-unused-local-typedefs
to work around a glib header warning), but yes, arguably we should
(my pre-merge build configs for w32 do use -Werror).
thanks
-- PMM
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2016-05-13 10:13 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-10 5:51 [Qemu-devel] [PULL 00/12] ui patch queue Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 01/12] ui: gtk: fix crash when terminal inner-border is NULL Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 02/12] ui: sdl2: Release grab before opening console window Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 03/12] configure: build SDL if only SDL2 available Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 04/12] configure: error on unknown --with-sdlabi value Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 05/12] configure: add echo_version helper Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 06/12] configure: report GTK version Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 07/12] configure: report SDL version Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 08/12] configure: support vte-2.91 Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 09/12] ui: gtk: Fix a runtime warning on vte >= 0.37 Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 10/12] ui: gtk: Fix some deprecation warnings Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 11/12] ui/gtk: copy to clipboard support Gerd Hoffmann
2016-05-10 5:51 ` [Qemu-devel] [PULL 12/12] spice/gl: add & use qemu_spice_gl_monitor_config Gerd Hoffmann
2016-05-10 14:08 ` [Qemu-devel] [PULL 00/12] ui patch queue Cole Robinson
2016-05-12 13:26 ` Peter Maydell
2016-05-12 13:57 ` Gerd Hoffmann
2016-05-13 7:56 ` Gerd Hoffmann
2016-05-13 10:13 ` Peter Maydell
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.