qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2] ui/console: Fix console resize with placeholder surface


From: Tianlan Zhou
Subject: [PATCH v2] ui/console: Fix console resize with placeholder surface
Date: Thu, 8 Feb 2024 23:47:06 +0800

In `qemu_console_resize()`, the old surface of the console is kept 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), it won't be replaced.
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.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Tianlan Zhou <bobby825@126.com>

---

v2:
- Slightly modify the commit message
- Add Reviewed-by: Marc-André Lureau

v1:
- Initial patch

---
 ui/console.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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;
-- 
2.38.1.windows.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]