mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 03:20:21 -07:00
X.L.SubLayouts: Document assumptions/pre-conditions of toGroupStack
This started as an investigation/fix of xmonad freezing when a bug in X.A.DynamicWorkspaces caused duplicate Windows in a single Workspace Stack, but I soon(-ish) realized that trying to make SubLayouts robust enough to handle duplicities in a Stack is futile. Any code that creates duplicities in a Stack is buggy, and must be fixed; the rest can assume there aren't any. Instead, let's just document that this is a pre-condition, and that (and how) stuff will misbehave. Related: https://github.com/xmonad/xmonad-contrib/issues/565
This commit is contained in:
parent
a6c048899c
commit
253b952814
@ -447,6 +447,11 @@ fromGroupStack = M.fromList . map (W.focus &&& id) . W.integrate
|
||||
|
||||
-- | Arrange a stack of windows into a stack of stacks, according to (possibly
|
||||
-- outdated) Groups.
|
||||
--
|
||||
-- Assumes that the groups are disjoint and there are no duplicates in the
|
||||
-- stack; will result in additional duplicates otherwise. This is a reasonable
|
||||
-- assumption—the rest of xmonad will mishave too—but it isn't checked
|
||||
-- anywhere and there had been bugs breaking this assumption in the past.
|
||||
toGroupStack :: (Ord a) => Groups a -> W.Stack a -> GroupStack a
|
||||
toGroupStack gs st@(W.Stack f ls rs) =
|
||||
W.Stack (fromJust (lu f)) (mapMaybe lu ls) (mapMaybe lu rs)
|
||||
|
Loading…
x
Reference in New Issue
Block a user