Skip to content

window: Don't use override redirect parent window workspace

Java applications might use override-redirect windows as parent windows.

In such case, the first non-override-redirect child window that is created will be marked as being on_all_workspaces since the call to should_be_on_all_workspaces() will return TRUE for its parent, and this even though the on_all_workspaces_requested bit is unset. When a further child of this window is then added, it will be set as not having a workspace and not being on_all_workspaces, since the call to should_be_on_all_workspaces() for its parent would return FALSE (unless if it's in a different monitor, and the multiple-monitors workspaces are disabled).

Since per commit 09bab98b we don't recompute the workspace if the on_all_workspaces bit is unset, let's just ignore the workspace settings for the parent window if that is an override redirect window, as those are in fact part of no-workspace by definition.

Add a stacking test to verify this scenario (was failing before of this commit) and ignore override-redirect parents while showing a child.

Fixes #885 (closed) !895 (merged)

Merge request reports