[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 4/5] gtk: Fix VTE focus grabbing
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL 4/5] gtk: Fix VTE focus grabbing |
Date: |
Mon, 27 Apr 2015 15:39:07 +0200 |
From: Jan Kiszka <address@hidden>
At least on GTK2, the VTE terminal has to be specified as target of
gtk_widget_grab_focus. Otherwise, switching from one VTE terminal to
another causes the focus to get lost.
CC: John Snow <address@hidden>
Signed-off-by: Jan Kiszka <address@hidden>
[ kraxel: fixed build with CONFIG_VTE=n ]
Signed-off-by: Gerd Hoffmann <address@hidden>
---
ui/gtk.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/ui/gtk.c b/ui/gtk.c
index 7180066..763d97a 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -170,6 +170,7 @@ typedef struct VirtualConsole {
GtkWidget *window;
GtkWidget *menu_item;
GtkWidget *tab_item;
+ GtkWidget *focus;
VirtualConsoleType type;
union {
VirtualGfxConsole gfx;
@@ -1060,15 +1061,13 @@ static void gd_menu_switch_vc(GtkMenuItem *item, void
*opaque)
GtkDisplayState *s = opaque;
VirtualConsole *vc = gd_vc_find_by_menu(s);
GtkNotebook *nb = GTK_NOTEBOOK(s->notebook);
- GtkWidget *child;
gint page;
gtk_release_modifiers(s);
if (vc) {
page = gtk_notebook_page_num(nb, vc->tab_item);
gtk_notebook_set_current_page(nb, page);
- child = gtk_notebook_get_nth_page(nb, page);
- gtk_widget_grab_focus(child);
+ gtk_widget_grab_focus(vc->focus);
}
}
@@ -1588,6 +1587,7 @@ static GSList *gd_vc_vte_init(GtkDisplayState *s,
VirtualConsole *vc,
vc->type = GD_VC_VTE;
vc->tab_item = box;
+ vc->focus = vc->vte.terminal;
gtk_notebook_append_page(GTK_NOTEBOOK(s->notebook), vc->tab_item,
gtk_label_new(vc->label));
@@ -1749,6 +1749,7 @@ static GSList *gd_vc_gfx_init(GtkDisplayState *s,
VirtualConsole *vc,
vc->type = GD_VC_GFX;
vc->tab_item = vc->gfx.drawing_area;
+ vc->focus = vc->gfx.drawing_area;
gtk_notebook_append_page(GTK_NOTEBOOK(s->notebook),
vc->tab_item, gtk_label_new(vc->label));
--
1.8.3.1
- [Qemu-devel] [PULL 0/5] gtk patch queue., Gerd Hoffmann, 2015/04/27
- [Qemu-devel] [PULL 5/5] gtk: Avoid accel key leakage into guest on console switch, Gerd Hoffmann, 2015/04/27
- [Qemu-devel] [PULL 1/5] gtk: handle switch_surface(NULL) properly, Gerd Hoffmann, 2015/04/27
- [Qemu-devel] [PULL 4/5] gtk: Fix VTE focus grabbing,
Gerd Hoffmann <=
- [Qemu-devel] [PULL 2/5] gtk: bind to text terminal consoles too, Gerd Hoffmann, 2015/04/27
- [Qemu-devel] [PULL 3/5] console/gtk: add qemu_console_get_label, Gerd Hoffmann, 2015/04/27
- Re: [Qemu-devel] [PULL 0/5] gtk patch queue., Peter Maydell, 2015/04/27