[Xmonad] darcs patch: Give refresh sole responsibility for establishing wind...

Donald Bruce Stewart dons at cse.unsw.edu.au
Sat Jun 9 22:41:18 EDT 2007


stefanor:
> Sat Jun  9 11:58:35 PDT 2007  Stefan O'Rear <stefanor at cox.net>
>   * Give refresh sole responsibility for establishing window properties (-3 loc)

Content-Description: A darcs patch for your repository!
> 
> New patches:
> 
> [Give refresh sole responsibility for establishing window properties (-3 loc)
> Stefan O'Rear <stefanor at cox.net>**20070609185835] {
> hunk ./Main.hs 31
> -import StackSet (new, floating, member)
> hunk ./Main.hs 54
> -               | otherwise = new (fromIntegral workspaces) (fromIntegral $ length xinesc)
> +               | otherwise = W.new (fromIntegral workspaces) (fromIntegral $ length xinesc)
> hunk ./Main.hs 82
> +    -- We mark the initial state as having all workspaces visible to
> +    -- defeat the delta code in refresh.
> hunk ./Main.hs 85
> -        runX cf st $ do
> -
> -            -- walk workspace, resetting X states/mask for windows
> -            -- TODO, general iterators for these lists.
> -            sequence_ [ setInitialProperties w >> reveal w
> -                      | wk <- map W.workspace (W.current winset : W.visible winset)
> -                      , w  <- W.integrate (W.stack wk) ]
> -
> -            sequence_ [ setInitialProperties w >> hide w
> -                      | wk <- W.hidden winset
> -                      , w  <- W.integrate (W.stack wk) ]
> -
> +        runX cf st{ windowset = allVisible winset } $ do
> +	    windows $ \_st -> winset
> hunk ./Main.hs 94
> +            allVisible ss = ss{ W.hidden=[], W.visible = W.visible ss ++ [ W.Screen s (S 0) | s <- W.hidden ss ] }

I've reverted this -- it is far far too fragile, relying on undocumented
behaviour of 'windows'. If some feature is not documented in the type,
or with QC, then it is code smell, and we should not build layers on top
of it.

-- Don


More information about the Xmonad mailing list