From 3af3e3ab78d0eb96fb9b5161693811e050b90991 Mon Sep 17 00:00:00 2001 From: GoranKovac Date: Sat, 24 Jan 2026 19:26:52 +0100 Subject: [PATCH] Remove skip_taskbar check (#355) Current wine versions (with yabridge) do not provide SKIP_TASKBAR atom so current implementation does not work at all for yabridge. Reason SKIP_TASKBAR check was introduced because there was a edge case with PixelComposer which spawned as popup instead of top level window. That app spawns now normally as toplevel with both old and current wine versions so removing the SKIP_TASKBAR check makes yabridge popups work for any wine version. Note: After extensive testing wine-staging and non staging verisons they report atoms very differenly: wine-staging 9.21 reports all atoms in NET_WM_STATE while non stage and anything above that report only single atom there or non at all --- src/xstate/mod.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/xstate/mod.rs b/src/xstate/mod.rs index 5079f24..039be80 100644 --- a/src/xstate/mod.rs +++ b/src/xstate/mod.rs @@ -720,16 +720,13 @@ impl XState { // accept input focus // Sometimes popup is false-positive meaning both MOTIF Decorations and WM_HINTS input indicates its a popup // but MOTIF has function flags that toplevel window should do - // Also combine wmhint_popup with skip_taskbar which - // fixes some edge cases where certain apps (BattleNet client, PixelComposer spawn as popup) wmhint_popup = motif_popup && wm_hints.is_some_and(|h| !h.acquire_input_via_wm) && !hints.functions.as_ref().is_some_and(|f| { f.contains(motif::Functions::Minimize) || f.contains(motif::Functions::Maximize) || f.contains(motif::Functions::All) - }) - && has_skip_taskbar; + }); // If the motif hints indicate the user shouldn't be able to do anything // to the window at all, it stands to reason it's probably a popup. if hints.functions.is_some_and(|f| f.is_empty()) {