qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/6] gtk: A few bug fixes
@ 2014-03-12 20:40 Cole Robinson
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 1/6] gtk: Don't use deprecated gtk_image_menu_item_new_with_mnemonic Cole Robinson
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Cole Robinson @ 2014-03-12 20:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Anthony Liguori, Cole Robinson

First 3 patches fix deprecation warnings on gtk 3.10, the remaining
patches are bug fixes.

Cole Robinson (6):
  gtk: Don't use deprecated gtk_image_menu_item_new_with_mnemonic
  gtk: Don't use deprecated vte_terminal_get_adjustment
  gtk: Remove use of deprecated stock items
  gtk: Use ctrl+alt+q for quit accelerator
  gtk: Fix mouse warping with gtk3
  gtk: Don't warp absolute pointer

 ui/gtk.c | 34 ++++++++++++++++++++++------------
 1 file changed, 22 insertions(+), 12 deletions(-)

-- 
1.8.5.3

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

* [Qemu-devel] [PATCH 1/6] gtk: Don't use deprecated gtk_image_menu_item_new_with_mnemonic
  2014-03-12 20:40 [Qemu-devel] [PATCH 0/6] gtk: A few bug fixes Cole Robinson
@ 2014-03-12 20:40 ` Cole Robinson
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 2/6] gtk: Don't use deprecated vte_terminal_get_adjustment Cole Robinson
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Cole Robinson @ 2014-03-12 20:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Anthony Liguori, Cole Robinson

In these cases we weren't using an image in the menu item anyways, so
just do as the suggestion says. Should be fine for all qemu supported
gtk versions.

ui/gtk.c: In function ‘gd_create_menu_machine’:
ui/gtk.c:1284:5: error: ‘gtk_image_menu_item_new_with_mnemonic’ is deprecated (declared at /usr/include/gtk-3.0/gtk/deprecated/gtkimagemenuitem.h:76): Use 'gtk_menu_item_new_with_mnemonic' instead [-Werror=deprecated-declarations]
     s->reset_item = gtk_image_menu_item_new_with_mnemonic(_("_Reset"));
     ^
ui/gtk.c:1287:5: error: ‘gtk_image_menu_item_new_with_mnemonic’ is deprecated (declared at /usr/include/gtk-3.0/gtk/deprecated/gtkimagemenuitem.h:76): Use 'gtk_menu_item_new_with_mnemonic' instead [-Werror=deprecated-declarations]
     s->powerdown_item = gtk_image_menu_item_new_with_mnemonic(_("Power _Down"));

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

diff --git a/ui/gtk.c b/ui/gtk.c
index 1851495..3879945 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1281,10 +1281,10 @@ static GtkWidget *gd_create_menu_machine(GtkDisplayState *s, GtkAccelGroup *acce
     separator = gtk_separator_menu_item_new();
     gtk_menu_shell_append(GTK_MENU_SHELL(machine_menu), separator);
 
-    s->reset_item = gtk_image_menu_item_new_with_mnemonic(_("_Reset"));
+    s->reset_item = gtk_menu_item_new_with_mnemonic(_("_Reset"));
     gtk_menu_shell_append(GTK_MENU_SHELL(machine_menu), s->reset_item);
 
-    s->powerdown_item = gtk_image_menu_item_new_with_mnemonic(_("Power _Down"));
+    s->powerdown_item = gtk_menu_item_new_with_mnemonic(_("Power _Down"));
     gtk_menu_shell_append(GTK_MENU_SHELL(machine_menu), s->powerdown_item);
 
     separator = gtk_separator_menu_item_new();
-- 
1.8.5.3

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

* [Qemu-devel] [PATCH 2/6] gtk: Don't use deprecated vte_terminal_get_adjustment
  2014-03-12 20:40 [Qemu-devel] [PATCH 0/6] gtk: A few bug fixes Cole Robinson
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 1/6] gtk: Don't use deprecated gtk_image_menu_item_new_with_mnemonic Cole Robinson
@ 2014-03-12 20:40 ` Cole Robinson
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 3/6] gtk: Remove use of deprecated stock items Cole Robinson
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Cole Robinson @ 2014-03-12 20:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Anthony Liguori, Cole Robinson

Guard this with a VTE version check, since I'm not sure if this is backwards
compatible.

ui/gtk.c: In function ‘gd_vc_init’:
ui/gtk.c:1176:5: error: ‘vte_terminal_get_adjustment’ is deprecated (declared at /usr/include/vte-2.90/vte/vtedeprecated.h:101) [-Werror=deprecated-declarations]

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

diff --git a/ui/gtk.c b/ui/gtk.c
index 3879945..2a9b8c3 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1173,7 +1173,11 @@ static GSList *gd_vc_init(GtkDisplayState *s, VirtualConsole *vc, int index, GSL
 
     vte_terminal_set_scrollback_lines(VTE_TERMINAL(vc->terminal), -1);
 
+#if VTE_CHECK_VERSION(0, 28, 0)
+    vadjustment = gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(vc->terminal));
+#else
     vadjustment = vte_terminal_get_adjustment(VTE_TERMINAL(vc->terminal));
+#endif
 
     scrolled_window = gtk_scrolled_window_new(NULL, vadjustment);
     gtk_container_add(GTK_CONTAINER(scrolled_window), vc->terminal);
-- 
1.8.5.3

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

* [Qemu-devel] [PATCH 3/6] gtk: Remove use of deprecated stock items
  2014-03-12 20:40 [Qemu-devel] [PATCH 0/6] gtk: A few bug fixes Cole Robinson
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 1/6] gtk: Don't use deprecated gtk_image_menu_item_new_with_mnemonic Cole Robinson
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 2/6] gtk: Don't use deprecated vte_terminal_get_adjustment Cole Robinson
@ 2014-03-12 20:40 ` Cole Robinson
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 4/6] gtk: Use ctrl+alt+q for quit accelerator Cole Robinson
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Cole Robinson @ 2014-03-12 20:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Anthony Liguori, Cole Robinson

Stock items are deprecated. As are ImageMenuItems. Convert everything to
text only MenuItems, with the same text content as mentioned in the
conversion guide:

https://docs.google.com/spreadsheet/pub?key=0AsPAM3pPwxagdGF4THNMMUpjUW5xMXZfdUNzMXhEa2c&output=html

gtk2 users lose their menu icons as well, but I don't think that's enough
of a problem to warrant keeping around back compat code.

Example error:

ui/gtk.c:1328:5: error: ‘GtkStock’ is deprecated [-Werror=deprecated-declarations]
ui/gtk.c:1335:5: error: ‘gtk_image_menu_item_new_from_stock’ is deprecated (declared at /usr/include/gtk-3.0/gtk/deprecated/gtkimagemenuitem.h:78): Use 'gtk_menu_item_new' instead [-Werror=deprecated-declarations]
     s->zoom_out_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_OUT, NULL);

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

diff --git a/ui/gtk.c b/ui/gtk.c
index 2a9b8c3..4d868ed 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1274,7 +1274,6 @@ static GtkWidget *gd_create_menu_machine(GtkDisplayState *s, GtkAccelGroup *acce
 {
     GtkWidget *machine_menu;
     GtkWidget *separator;
-    GtkStockItem item;
 
     machine_menu = gtk_menu_new();
     gtk_menu_set_accel_group(GTK_MENU(machine_menu), accel_group);
@@ -1294,11 +1293,11 @@ static GtkWidget *gd_create_menu_machine(GtkDisplayState *s, GtkAccelGroup *acce
     separator = gtk_separator_menu_item_new();
     gtk_menu_shell_append(GTK_MENU_SHELL(machine_menu), separator);
 
-    s->quit_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL);
-    gtk_stock_lookup(GTK_STOCK_QUIT, &item);
+    s->quit_item = gtk_menu_item_new_with_mnemonic(_("_Quit"));
     gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->quit_item),
                                  "<QEMU>/Machine/Quit");
-    gtk_accel_map_add_entry("<QEMU>/Machine/Quit", item.keyval, item.modifier);
+    gtk_accel_map_add_entry("<QEMU>/Machine/Quit",
+                            GDK_KEY_q, GDK_CONTROL_MASK);
     gtk_menu_shell_append(GTK_MENU_SHELL(machine_menu), s->quit_item);
 
     return machine_menu;
@@ -1314,8 +1313,7 @@ static GtkWidget *gd_create_menu_view(GtkDisplayState *s, GtkAccelGroup *accel_g
     view_menu = gtk_menu_new();
     gtk_menu_set_accel_group(GTK_MENU(view_menu), accel_group);
 
-    s->full_screen_item =
-        gtk_image_menu_item_new_from_stock(GTK_STOCK_FULLSCREEN, NULL);
+    s->full_screen_item = gtk_menu_item_new_with_mnemonic(_("_Fullscreen"));
     gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->full_screen_item),
                                  "<QEMU>/View/Full Screen");
     gtk_accel_map_add_entry("<QEMU>/View/Full Screen", GDK_KEY_f,
@@ -1325,21 +1323,21 @@ static GtkWidget *gd_create_menu_view(GtkDisplayState *s, GtkAccelGroup *accel_g
     separator = gtk_separator_menu_item_new();
     gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), separator);
 
-    s->zoom_in_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_IN, NULL);
+    s->zoom_in_item = gtk_menu_item_new_with_mnemonic(_("Zoom _In"));
     gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->zoom_in_item),
                                  "<QEMU>/View/Zoom In");
     gtk_accel_map_add_entry("<QEMU>/View/Zoom In", GDK_KEY_plus,
                             HOTKEY_MODIFIERS);
     gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), s->zoom_in_item);
 
-    s->zoom_out_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_OUT, NULL);
+    s->zoom_out_item = gtk_menu_item_new_with_mnemonic(_("Zoom _Out"));
     gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->zoom_out_item),
                                  "<QEMU>/View/Zoom Out");
     gtk_accel_map_add_entry("<QEMU>/View/Zoom Out", GDK_KEY_minus,
                             HOTKEY_MODIFIERS);
     gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), s->zoom_out_item);
 
-    s->zoom_fixed_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_100, NULL);
+    s->zoom_fixed_item = gtk_menu_item_new_with_mnemonic(_("Best _Fit"));
     gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->zoom_fixed_item),
                                  "<QEMU>/View/Zoom Fixed");
     gtk_accel_map_add_entry("<QEMU>/View/Zoom Fixed", GDK_KEY_0,
-- 
1.8.5.3

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

* [Qemu-devel] [PATCH 4/6] gtk: Use ctrl+alt+q for quit accelerator
  2014-03-12 20:40 [Qemu-devel] [PATCH 0/6] gtk: A few bug fixes Cole Robinson
                   ` (2 preceding siblings ...)
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 3/6] gtk: Remove use of deprecated stock items Cole Robinson
@ 2014-03-12 20:40 ` Cole Robinson
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 5/6] gtk: Fix mouse warping with gtk3 Cole Robinson
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 6/6] gtk: Don't warp absolute pointer Cole Robinson
  5 siblings, 0 replies; 7+ messages in thread
From: Cole Robinson @ 2014-03-12 20:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Anthony Liguori, Cole Robinson

Using the standard ctrl+q makes it too easy to kill the whole VM. Using
ctrl+alt+FOO is consistent with our other accelerators.

https://bugzilla.redhat.com/show_bug.cgi?id=1062393
Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 ui/gtk.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ui/gtk.c b/ui/gtk.c
index 4d868ed..1fe99d7 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1297,7 +1297,7 @@ static GtkWidget *gd_create_menu_machine(GtkDisplayState *s, GtkAccelGroup *acce
     gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->quit_item),
                                  "<QEMU>/Machine/Quit");
     gtk_accel_map_add_entry("<QEMU>/Machine/Quit",
-                            GDK_KEY_q, GDK_CONTROL_MASK);
+                            GDK_KEY_q, HOTKEY_MODIFIERS);
     gtk_menu_shell_append(GTK_MENU_SHELL(machine_menu), s->quit_item);
 
     return machine_menu;
-- 
1.8.5.3

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

* [Qemu-devel] [PATCH 5/6] gtk: Fix mouse warping with gtk3
  2014-03-12 20:40 [Qemu-devel] [PATCH 0/6] gtk: A few bug fixes Cole Robinson
                   ` (3 preceding siblings ...)
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 4/6] gtk: Use ctrl+alt+q for quit accelerator Cole Robinson
@ 2014-03-12 20:40 ` Cole Robinson
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 6/6] gtk: Don't warp absolute pointer Cole Robinson
  5 siblings, 0 replies; 7+ messages in thread
From: Cole Robinson @ 2014-03-12 20:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Anthony Liguori, Cole Robinson

We were using the wrong coordinates, this fixes things to match the
original gtk2 implementation.

You can see this error in action by using -vga qxl, however even after this
patch the mouse warps in small increments up and to the left, -7x and -3y
pixels at a time, until the pointer is warped off the widget. I think it's
a qxl bug, but the next patch covers it up.

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

diff --git a/ui/gtk.c b/ui/gtk.c
index 1fe99d7..3930f40 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -346,7 +346,7 @@ static void gd_mouse_set(DisplayChangeListener *dcl,
                                x, y, &x_root, &y_root);
     gdk_device_warp(gdk_device_manager_get_client_pointer(mgr),
                     gtk_widget_get_screen(s->drawing_area),
-                    x, y);
+                    x_root, y_root);
 }
 #else
 static void gd_mouse_set(DisplayChangeListener *dcl,
-- 
1.8.5.3

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

* [Qemu-devel] [PATCH 6/6] gtk: Don't warp absolute pointer
  2014-03-12 20:40 [Qemu-devel] [PATCH 0/6] gtk: A few bug fixes Cole Robinson
                   ` (4 preceding siblings ...)
  2014-03-12 20:40 ` [Qemu-devel] [PATCH 5/6] gtk: Fix mouse warping with gtk3 Cole Robinson
@ 2014-03-12 20:40 ` Cole Robinson
  5 siblings, 0 replies; 7+ messages in thread
From: Cole Robinson @ 2014-03-12 20:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Anthony Liguori, Cole Robinson

This matches the behavior of SDL, and makes the mouse usable when
using -display gtk -vga qxl

https://bugzilla.redhat.com/show_bug.cgi?id=1051724
Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 ui/gtk.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/ui/gtk.c b/ui/gtk.c
index 3930f40..4b77590 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -340,6 +340,10 @@ static void gd_mouse_set(DisplayChangeListener *dcl,
     GdkDeviceManager *mgr;
     gint x_root, y_root;
 
+    if (qemu_input_is_absolute()) {
+        return;
+    }
+
     dpy = gtk_widget_get_display(s->drawing_area);
     mgr = gdk_display_get_device_manager(dpy);
     gdk_window_get_root_coords(gtk_widget_get_window(s->drawing_area),
@@ -355,6 +359,10 @@ static void gd_mouse_set(DisplayChangeListener *dcl,
     GtkDisplayState *s = container_of(dcl, GtkDisplayState, dcl);
     gint x_root, y_root;
 
+    if (qemu_input_is_absolute()) {
+        return;
+    }
+
     gdk_window_get_root_coords(gtk_widget_get_window(s->drawing_area),
                                x, y, &x_root, &y_root);
     gdk_display_warp_pointer(gtk_widget_get_display(s->drawing_area),
-- 
1.8.5.3

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

end of thread, other threads:[~2014-03-12 20:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-12 20:40 [Qemu-devel] [PATCH 0/6] gtk: A few bug fixes Cole Robinson
2014-03-12 20:40 ` [Qemu-devel] [PATCH 1/6] gtk: Don't use deprecated gtk_image_menu_item_new_with_mnemonic Cole Robinson
2014-03-12 20:40 ` [Qemu-devel] [PATCH 2/6] gtk: Don't use deprecated vte_terminal_get_adjustment Cole Robinson
2014-03-12 20:40 ` [Qemu-devel] [PATCH 3/6] gtk: Remove use of deprecated stock items Cole Robinson
2014-03-12 20:40 ` [Qemu-devel] [PATCH 4/6] gtk: Use ctrl+alt+q for quit accelerator Cole Robinson
2014-03-12 20:40 ` [Qemu-devel] [PATCH 5/6] gtk: Fix mouse warping with gtk3 Cole Robinson
2014-03-12 20:40 ` [Qemu-devel] [PATCH 6/6] gtk: Don't warp absolute pointer Cole Robinson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).