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>
This commit is contained in:
		
							parent
							
								
									3753c75db8
								
							
						
					
					
						commit
						a08156321a
					
				
							
								
								
									
										8
									
								
								ui/gtk.c
								
								
								
								
							
							
						
						
									
										8
									
								
								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));
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue