diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2013-03-15 15:45:54 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2013-04-16 09:26:20 +0200 |
commit | 284d1c6b3bf4ece6278f4b9831c7192e3777290c (patch) | |
tree | a768e1d5c63c5404f0c239b1488bc2935775f35c /ui/spice-display.c | |
parent | 81c0d5a66295024d0a42e3d28efcd102a32f93c3 (diff) |
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>
Diffstat (limited to 'ui/spice-display.c')
-rw-r--r-- | ui/spice-display.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/ui/spice-display.c b/ui/spice-display.c index 2c0167488b..53c19bea0f 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -398,14 +398,14 @@ void qemu_spice_display_switch(SimpleSpiceDisplay *ssd, void qemu_spice_cursor_refresh_unlocked(SimpleSpiceDisplay *ssd) { if (ssd->cursor) { - assert(ssd->con); - dpy_cursor_define(ssd->con, ssd->cursor); + assert(ssd->dcl.con); + dpy_cursor_define(ssd->dcl.con, ssd->cursor); cursor_put(ssd->cursor); ssd->cursor = NULL; } if (ssd->mouse_x != -1 && ssd->mouse_y != -1) { - assert(ssd->con); - dpy_mouse_set(ssd->con, ssd->mouse_x, ssd->mouse_y, 1); + assert(ssd->dcl.con); + dpy_mouse_set(ssd->dcl.con, ssd->mouse_x, ssd->mouse_y, 1); ssd->mouse_x = -1; ssd->mouse_y = -1; } @@ -414,7 +414,7 @@ void qemu_spice_cursor_refresh_unlocked(SimpleSpiceDisplay *ssd) void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd) { dprint(3, "%s:\n", __func__); - graphic_hw_update(ssd->con); + graphic_hw_update(ssd->dcl.con); qemu_mutex_lock(&ssd->lock); if (QTAILQ_EMPTY(&ssd->updates) && ssd->ds) { @@ -624,6 +624,7 @@ void qemu_spice_display_init(DisplayState *ds) qemu_spice_create_host_memslot(ssd); ssd->dcl.ops = &display_listener_ops; + ssd->dcl.con = qemu_console_lookup_by_index(0); register_displaychangelistener(ds, &ssd->dcl); qemu_spice_create_host_primary(ssd); |