[PATCH 0/1] MR9808: winex11: Set opacity and empty input shape for the dummy parent.
Making sure its child windows are invisible even with XWayland broken XComposite implementation. Wine-Bug: http://bugs.winehq.org/show_bug.cgi?id=59151 -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9808
From: Rémi Bernon <rbernon@codeweavers.com> Making sure its child windows are invisible even with XWayland broken XComposite implementation. Wine-Bug: http://bugs.winehq.org/show_bug.cgi?id=59151 --- dlls/winex11.drv/window.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index ed493389260..2e523117537 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -2231,6 +2231,7 @@ Window get_dummy_parent(void) if (!dummy_parent) { XSetWindowAttributes attrib; + unsigned long opacity = 0; attrib.override_redirect = True; attrib.border_pixel = 0; @@ -2244,6 +2245,8 @@ Window get_dummy_parent(void) CWColormap | CWBorderPixel | CWOverrideRedirect, &attrib ); XShapeCombineRectangles( gdi_display, dummy_parent, ShapeBounding, 0, 0, &empty_rect, 1, ShapeSet, YXBanded ); + XShapeCombineRectangles( gdi_display, dummy_parent, ShapeInput, 0, 0, &empty_rect, 1, + ShapeSet, YXBanded ); } #else dummy_parent = XCreateWindow( gdi_display, root_window, -1, -1, 1, 1, 0, default_visual.depth, @@ -2251,6 +2254,8 @@ Window get_dummy_parent(void) CWColormap | CWBorderPixel | CWOverrideRedirect, &attrib ); WARN("Xshape support is not compiled in. Applications under XWayland may have poor performance.\n"); #endif + XChangeProperty( gdi_display, dummy_parent, x11drv_atom(_NET_WM_WINDOW_OPACITY), + XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&opacity, 1 ); XMapWindow( gdi_display, dummy_parent ); } return dummy_parent; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9808
The test failures are coming from c8422a619b46d25e55907fd5526b1d9fae8c3943 and fixed with !9807 -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9808#note_125955
participants (2)
-
Rémi Bernon -
Rémi Bernon (@rbernon)