From edb34c8cc5654c4806205c5740ad76030e57e2cf Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Tue, 30 Jul 2024 17:49:42 +0200 Subject: [PATCH] (!1654) Xnest: use xcb for (un)mapping windows Signed-off-by: Enrico Weigelt, metux IT consult --- hw/xnest/Screen.c | 15 ++++++++++----- hw/xnest/Window.c | 5 ++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/hw/xnest/Screen.c b/hw/xnest/Screen.c index 9ff4830ee..db82314b0 100644 --- a/hw/xnest/Screen.c +++ b/hw/xnest/Screen.c @@ -86,23 +86,28 @@ xnestSaveScreen(ScreenPtr pScreen, int what) else { switch (what) { case SCREEN_SAVER_ON: - XMapRaised(xnestDisplay, xnestScreenSaverWindows[pScreen->myNum]); + xcb_map_window(xnestUpstreamInfo.conn, xnestScreenSaverWindows[pScreen->myNum]); + uint32_t value = XCB_STACK_MODE_ABOVE; + xcb_configure_window(xnestUpstreamInfo.conn, + xnestScreenSaverWindows[pScreen->myNum], + XCB_CONFIG_WINDOW_STACK_MODE, + &value); xnestSetScreenSaverColormapWindow(pScreen); break; case SCREEN_SAVER_OFF: - XUnmapWindow(xnestDisplay, xnestScreenSaverWindows[pScreen->myNum]); + xcb_unmap_window(xnestUpstreamInfo.conn, xnestScreenSaverWindows[pScreen->myNum]); xnestSetInstalledColormapWindows(pScreen); break; case SCREEN_SAVER_FORCER: lastEventTime = GetTimeInMillis(); - XUnmapWindow(xnestDisplay, xnestScreenSaverWindows[pScreen->myNum]); + xcb_unmap_window(xnestUpstreamInfo.conn, xnestScreenSaverWindows[pScreen->myNum]); xnestSetInstalledColormapWindows(pScreen); break; case SCREEN_SAVER_CYCLE: - XUnmapWindow(xnestDisplay, xnestScreenSaverWindows[pScreen->myNum]); + xcb_unmap_window(xnestUpstreamInfo.conn, xnestScreenSaverWindows[pScreen->myNum]); xnestSetInstalledColormapWindows(pScreen); break; } @@ -414,7 +419,7 @@ xnestOpenScreen(ScreenPtr pScreen, int argc, char *argv[]) xnestWindowName, xnestIconBitmap, argv, argc, &sizeHints); - XMapWindow(xnestDisplay, xnestDefaultWindows[pScreen->myNum]); + xcb_map_window(xnestUpstreamInfo.conn, xnestDefaultWindows[pScreen->myNum]); valuemask = XCB_CW_BACK_PIXMAP | XCB_CW_COLORMAP; attributes.back_pixmap = xnestScreenSaverPixmap; diff --git a/hw/xnest/Window.c b/hw/xnest/Window.c index 5b275f42a..85c289996 100644 --- a/hw/xnest/Window.c +++ b/hw/xnest/Window.c @@ -367,7 +367,7 @@ xnestRealizeWindow(WindowPtr pWin) { xnestConfigureWindow(pWin, XCB_CONFIG_WINDOW_SIBLING); xnestShapeWindow(pWin); - XMapWindow(xnestDisplay, xnestWindow(pWin)); + xcb_map_window(xnestUpstreamInfo.conn, xnestWindow(pWin)); return TRUE; } @@ -375,8 +375,7 @@ xnestRealizeWindow(WindowPtr pWin) Bool xnestUnrealizeWindow(WindowPtr pWin) { - XUnmapWindow(xnestDisplay, xnestWindow(pWin)); - + xcb_unmap_window(xnestUpstreamInfo.conn, xnestWindow(pWin)); return TRUE; }