X.L.SubLayouts: Fix focusWindow' being quadratic

This commit is contained in:
Tomas Janousek 2020-12-13 21:18:51 +00:00
parent 36d06c1c5d
commit 8cdbb5d422

View File

@ -468,9 +468,8 @@ mapGroups f = M.fromList . map (W.focus &&& id) . mapMaybe f . M.elems
-- absent. See also 'W.focusWindow' -- absent. See also 'W.focusWindow'
focusWindow' :: (Eq a) => a -> W.Stack a -> Maybe (W.Stack a) focusWindow' :: (Eq a) => a -> W.Stack a -> Maybe (W.Stack a)
focusWindow' w st = do focusWindow' w st = do
guard $ not $ null $ filter (w==) $ W.integrate st guard $ w `elem` W.integrate st
if W.focus st == w then Just st return $ until ((w ==) . W.focus) W.focusDown' st
else focusWindow' w $ W.focusDown' st
-- update only when Just -- update only when Just
windowsMaybe :: (WindowSet -> Maybe WindowSet) -> X () windowsMaybe :: (WindowSet -> Maybe WindowSet) -> X ()