From a08156321ab9a7d2fed9ee77dbfeea2a61ffd153 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Wed, 14 Dec 2016 14:25:18 +0000 Subject: [PATCH] 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 Reviewed-by: Gerd Hoffmann Tested-by: Stefan Weil Signed-off-by: Stefan Hajnoczi Message-id: 20161214142518.10504-1-stefanha@redhat.com Cc: Michael S. Tsirkin Cc: Gerd Hoffmann Signed-off-by: Stefan Hajnoczi --- ui/gtk.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ui/gtk.c b/ui/gtk.c index e816428..a216216 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -1581,6 +1581,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); @@ -2246,6 +2249,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)); } -- 2.7.4