diff options
author | Tianlan Zhou <bobby825@126.com> | 2024-02-08 01:20:25 +0800 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2024-02-16 17:27:22 +0400 |
commit | 95b08fee8f68d284a5028d37fd28be7a70c8e92b (patch) | |
tree | ff9344d8477b1e07783d403cd36fe2501006e16b /ui/console.c | |
parent | 9c416582611b7495bdddb4c5456c7acb64b78938 (diff) |
ui/console: Fix console resize with placeholder surface
In `qemu_console_resize()`, the old surface of the console is keeped if the new
console size is the same as the old one. If the old surface is a placeholder,
and the new size of console is the same as the placeholder surface (640*480),
the surface won't be replace.
In this situation, the surface's `QEMU_PLACEHOLDER_FLAG` flag is still set, so
the console won't be displayed in SDL display mode.
This patch fixes this problem by forcing a new surface if the old one is a
placeholder.
Signed-off-by: Tianlan Zhou <bobby825@126.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20240207172024.8-1-bobby825@126.com>
Diffstat (limited to 'ui/console.c')
-rw-r--r-- | ui/console.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ui/console.c b/ui/console.c index 7db921e3b7..832055675c 100644 --- a/ui/console.c +++ b/ui/console.c @@ -1577,7 +1577,7 @@ void qemu_console_resize(QemuConsole *s, int width, int height) assert(QEMU_IS_GRAPHIC_CONSOLE(s)); if ((s->scanout.kind != SCANOUT_SURFACE || - (surface && surface->flags & QEMU_ALLOCATED_FLAG)) && + (surface && !is_buffer_shared(surface) && !is_placeholder(surface))) && qemu_console_get_width(s, -1) == width && qemu_console_get_height(s, -1) == height) { return; |