From: Marc-André Lureau Date: Wed, 30 Aug 2023 09:38:16 +0000 (+0400) Subject: ui/vc: move text console invalidate in helper X-Git-Tag: v8.2.0-rc0~142^2~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=322dae4bc817fe288a103427f53de2a945daca27;p=thirdparty%2Fqemu.git ui/vc: move text console invalidate in helper This will allow to split the VC code in a separate unit more easily. Signed-off-by: Marc-André Lureau Reviewed-by: Daniel P. Berrangé Message-Id: <20230830093843.3531473-43-marcandre.lureau@redhat.com> --- diff --git a/include/ui/console.h b/include/ui/console.h index 0f7f50deaf9..91d8bbc9dcc 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -521,6 +521,7 @@ void console_select(unsigned int index); void qemu_console_resize(QemuConsole *con, int width, int height); DisplaySurface *qemu_console_surface(QemuConsole *con); void coroutine_fn qemu_console_co_wait_update(QemuConsole *con); +int qemu_invalidate_text_consoles(void); /* console-gl.c */ #ifdef CONFIG_OPENGL diff --git a/ui/console.c b/ui/console.c index b1d375ecb41..ba9da8c1b3f 100644 --- a/ui/console.c +++ b/ui/console.c @@ -2500,13 +2500,11 @@ static void vc_chr_set_echo(Chardev *chr, bool echo) drv->console->echo = echo; } -static void text_console_update_cursor(void *opaque) +int qemu_invalidate_text_consoles(void) { QemuConsole *s; int count = 0; - cursor_visible_phase = !cursor_visible_phase; - QTAILQ_FOREACH(s, &consoles, next) { if (qemu_console_is_graphic(s) || !qemu_console_is_visible(s)) { @@ -2516,7 +2514,14 @@ static void text_console_update_cursor(void *opaque) graphic_hw_invalidate(s); } - if (count) { + return count; +} + +static void text_console_update_cursor(void *opaque) +{ + cursor_visible_phase = !cursor_visible_phase; + + if (qemu_invalidate_text_consoles()) { timer_mod(cursor_timer, qemu_clock_get_ms(QEMU_CLOCK_REALTIME) + CONSOLE_CURSOR_PERIOD / 2); }