This adds two console functions, qemu_console_set_window_id and qemu_graphic_console_get_window_id, to let graphical backend record the window id in the QemuConsole structure, and let the baum driver read it.
Signed-off-by: Samuel Thibault <samuel.thiba...@ens-lyon.org> --- include/ui/console.h | 3 +++ ui/console.c | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/ui/console.h b/include/ui/console.h index e2589e2..cf07e41 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -394,6 +394,9 @@ uint32_t qemu_console_get_head(QemuConsole *con); QemuUIInfo *qemu_console_get_ui_info(QemuConsole *con); int qemu_console_get_width(QemuConsole *con, int fallback); int qemu_console_get_height(QemuConsole *con, int fallback); +/* Return the low-level window id for the first graphical console */ +int qemu_graphic_console_get_window_id(void); +void qemu_console_set_window_id(int index, int window_id); void console_select(unsigned int index); void qemu_console_resize(QemuConsole *con, int width, int height); diff --git a/ui/console.c b/ui/console.c index ed888e5..aa3c4c7 100644 --- a/ui/console.c +++ b/ui/console.c @@ -124,6 +124,7 @@ struct QemuConsole { int dcls; DisplayChangeListener *gl; bool gl_block; + int window_id; /* Graphic console state. */ Object *device; @@ -273,6 +274,20 @@ void graphic_hw_gl_block(QemuConsole *con, bool block) } } +int qemu_graphic_console_get_window_id(void) +{ + if (consoles[0]->console_type == GRAPHIC_CONSOLE) { + return consoles[0]->window_id; + } + return -1; +} + +void qemu_console_set_window_id(int index, int window_id) +{ + assert(index >= 0 && index < nb_consoles); + consoles[index]->window_id = window_id; +} + void graphic_hw_invalidate(QemuConsole *con) { if (!con) { -- 2.10.1