summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2016-12-14 14:25:18 +0000
committerMichael Roth <mdroth@linux.vnet.ibm.com>2016-12-20 19:31:47 -0600
commit05838b4688393f3cf9949aa1f707a35618b725c6 (patch)
treeb79e70eec077850a680a5c1f63682b1d4fd76b4c
parent223d1a2da1713adba84115150bd59bd2f9d06866 (diff)
downloadqemu-05838b4688393f3cf9949aa1f707a35618b725c6.tar.gz
ui/gtk: fix "Copy" menu item segfault
The "Copy" menu item copies VTE terminal text to the clipboard. This only works with VTE terminals, not with graphics consoles. Disable the menu item when the current notebook page isn't a VTE terminal. This patch fixes a segfault. Reproducer: Start QEMU and click the Copy menu item when the guest display is visible. Reported-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> Tested-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 20161214142518.10504-1-stefanha@redhat.com Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit a08156321ab9a7d2fed9ee77dbfeea2a61ffd153) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
-rw-r--r--ui/gtk.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/ui/gtk.c b/ui/gtk.c
index 58d20eed62..21ae4cbccc 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1559,6 +1559,9 @@ static void gd_change_page(GtkNotebook *nb, gpointer arg1, guint arg2,
TRUE);
}
gtk_widget_set_sensitive(s->grab_item, on_vga);
+#ifdef CONFIG_VTE
+ gtk_widget_set_sensitive(s->copy_item, vc->type == GD_VC_VTE);
+#endif
gd_update_windowsize(vc);
gd_update_cursor(vc);
@@ -2230,6 +2233,11 @@ void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover)
}
#endif
+#ifdef CONFIG_VTE
+ gtk_widget_set_sensitive(s->copy_item,
+ gd_vc_find_current(s)->type == GD_VC_VTE);
+#endif
+
if (full_screen) {
gtk_menu_item_activate(GTK_MENU_ITEM(s->full_screen_item));
}