[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 4/4] ui/console: Check console before emitting GL event
From: |
Philippe Mathieu-Daudé |
Subject: |
[PULL 4/4] ui/console: Check console before emitting GL event |
Date: |
Tue, 29 Mar 2022 00:40:12 +0200 |
From: Akihiko Odaki <akihiko.odaki@gmail.com>
Without this change, The GL output of a console overwrites the
other consoles and makes them unusable.
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20220325161216.74582-1-akihiko.odaki@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
ui/console.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/ui/console.c b/ui/console.c
index da434ce1b2..1752f2ec88 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -1886,6 +1886,9 @@ void dpy_gl_scanout_disable(QemuConsole *con)
con->scanout.kind = SCANOUT_NONE;
}
QLIST_FOREACH(dcl, &s->listeners, next) {
+ if (con != (dcl->con ? dcl->con : active_console)) {
+ continue;
+ }
if (dcl->ops->dpy_gl_scanout_disable) {
dcl->ops->dpy_gl_scanout_disable(dcl);
}
@@ -1909,6 +1912,9 @@ void dpy_gl_scanout_texture(QemuConsole *con,
x, y, width, height
};
QLIST_FOREACH(dcl, &s->listeners, next) {
+ if (con != (dcl->con ? dcl->con : active_console)) {
+ continue;
+ }
if (dcl->ops->dpy_gl_scanout_texture) {
dcl->ops->dpy_gl_scanout_texture(dcl, backing_id,
backing_y_0_top,
@@ -1927,6 +1933,9 @@ void dpy_gl_scanout_dmabuf(QemuConsole *con,
con->scanout.kind = SCANOUT_DMABUF;
con->scanout.dmabuf = dmabuf;
QLIST_FOREACH(dcl, &s->listeners, next) {
+ if (con != (dcl->con ? dcl->con : active_console)) {
+ continue;
+ }
if (dcl->ops->dpy_gl_scanout_dmabuf) {
dcl->ops->dpy_gl_scanout_dmabuf(dcl, dmabuf);
}
@@ -1940,6 +1949,9 @@ void dpy_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf
*dmabuf,
DisplayChangeListener *dcl;
QLIST_FOREACH(dcl, &s->listeners, next) {
+ if (con != (dcl->con ? dcl->con : active_console)) {
+ continue;
+ }
if (dcl->ops->dpy_gl_cursor_dmabuf) {
dcl->ops->dpy_gl_cursor_dmabuf(dcl, dmabuf,
have_hot, hot_x, hot_y);
@@ -1954,6 +1966,9 @@ void dpy_gl_cursor_position(QemuConsole *con,
DisplayChangeListener *dcl;
QLIST_FOREACH(dcl, &s->listeners, next) {
+ if (con != (dcl->con ? dcl->con : active_console)) {
+ continue;
+ }
if (dcl->ops->dpy_gl_cursor_position) {
dcl->ops->dpy_gl_cursor_position(dcl, pos_x, pos_y);
}
@@ -1967,6 +1982,9 @@ void dpy_gl_release_dmabuf(QemuConsole *con,
DisplayChangeListener *dcl;
QLIST_FOREACH(dcl, &s->listeners, next) {
+ if (con != (dcl->con ? dcl->con : active_console)) {
+ continue;
+ }
if (dcl->ops->dpy_gl_release_dmabuf) {
dcl->ops->dpy_gl_release_dmabuf(dcl, dmabuf);
}
@@ -1983,6 +2001,9 @@ void dpy_gl_update(QemuConsole *con,
graphic_hw_gl_block(con, true);
QLIST_FOREACH(dcl, &s->listeners, next) {
+ if (con != (dcl->con ? dcl->con : active_console)) {
+ continue;
+ }
if (dcl->ops->dpy_gl_update) {
dcl->ops->dpy_gl_update(dcl, x, y, w, h);
}
--
2.35.1
- [PULL 0/4] Darwin patches for 2022-03-29, Philippe Mathieu-Daudé, 2022/03/28
- [PULL 1/4] gitattributes: Cover Objective-C source files, Philippe Mathieu-Daudé, 2022/03/28
- [PULL 2/4] qemu/main-loop: Disable block backend global state assertion on Cocoa, Philippe Mathieu-Daudé, 2022/03/28
- [PULL 3/4] ui/cocoa: Respect left-command-key option, Philippe Mathieu-Daudé, 2022/03/28
- [PULL 4/4] ui/console: Check console before emitting GL event,
Philippe Mathieu-Daudé <=
- Re: [PULL 0/4] Darwin patches for 2022-03-29, Philippe Mathieu-Daudé, 2022/03/29
- Re: [PULL 0/4] Darwin patches for 2022-03-29, Peter Maydell, 2022/03/29