console: allow pinning displaychangelisteners to consoles
DisplayChangeListener gets a new QemuConsole field, which can be set to
non-NULL before registering. This will pin the QemuConsole, so that
particular DisplayChangeListener will not follow console switches.
spice+gtk (which don't support text console input anyway) are switched
over to be pinned to console 0, which usually is the graphical display.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
diff --git a/ui/gtk.c b/ui/gtk.c
index d0e444c..e9ebbd3 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -327,7 +327,7 @@
static void gd_refresh(DisplayChangeListener *dcl)
{
- graphic_hw_update(NULL);
+ graphic_hw_update(dcl->con);
}
static void gd_switch(DisplayChangeListener *dcl,
@@ -1368,6 +1368,7 @@
gtk_init(NULL, NULL);
s->dcl.ops = &dcl_ops;
+ s->dcl.con = qemu_console_lookup_by_index(0);
s->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
#if GTK_CHECK_VERSION(3, 2, 0)