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
This commit is contained in:
GoranKovac 2026-01-24 19:26:52 +01:00 committed by GitHub
parent 62bafcc3c9
commit 3af3e3ab78
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -720,16 +720,13 @@ impl XState {
// accept input focus // accept input focus
// Sometimes popup is false-positive meaning both MOTIF Decorations and WM_HINTS input indicates its a popup // 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 // 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 wmhint_popup = motif_popup
&& wm_hints.is_some_and(|h| !h.acquire_input_via_wm) && wm_hints.is_some_and(|h| !h.acquire_input_via_wm)
&& !hints.functions.as_ref().is_some_and(|f| { && !hints.functions.as_ref().is_some_and(|f| {
f.contains(motif::Functions::Minimize) f.contains(motif::Functions::Minimize)
|| f.contains(motif::Functions::Maximize) || f.contains(motif::Functions::Maximize)
|| f.contains(motif::Functions::All) || f.contains(motif::Functions::All)
}) });
&& has_skip_taskbar;
// If the motif hints indicate the user shouldn't be able to do anything // 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. // to the window at all, it stands to reason it's probably a popup.
if hints.functions.is_some_and(|f| f.is_empty()) { if hints.functions.is_some_and(|f| f.is_empty()) {