From e109979dcb6d699707b165e6dabe5567a442763b Mon Sep 17 00:00:00 2001 From: lkn Date: Sun, 28 Jun 2026 01:53:00 +0200 Subject: [PATCH] wayland: dockapp rendering (WIP - XWayland surface shown as-is) Shows the XWayland toplevel surface in the dock tile. Black background is an inherent limitation of X11 opaque windows under XWayland. Next step: native Wayland dockapp protocol for proper transparency. --- src/icon.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/icon.c b/src/icon.c index ff0024e..7c1f59c 100644 --- a/src/icon.c +++ b/src/icon.c @@ -814,15 +814,10 @@ static void set_dockapp_in_icon(WIcon *icon) /* Put the dock application in the icon. * On Wayland, the icon_win child window has no separate surface — * XWayland composites it into the parent toplevel. Reparent the - * owner's main client_win instead so its surface appears in the tile. */ - { - WNativeWindow reparent_win = (WNativeWindow)icon->icon_win; - if (icon->owner && icon->owner->client_win) { - reparent_win = icon->owner->client_win; - /* Resize the toplevel surface to fit the dock tile */ - wm_backend->window_resize(reparent_win, w, h); - } - wm_backend->client_reparent(reparent_win, icon->core->window, + * owner's client surface into the dock tile frame_buf tree. */ + if (icon->owner && icon->owner->client_win) { + wm_backend->window_resize(icon->owner->client_win, w, h); + wm_backend->client_reparent(icon->owner->client_win, icon->core->window, (wPreferences.icon_size - w) / 2, (wPreferences.icon_size - h) / 2); }