[Xmonad] [sebastian.goll@gmx.de: Re: [dwm] Greyish blobs]

Spencer Janssen sjanssen at cse.unl.edu
Mon Jun 18 16:49:23 EDT 2007


On Mon, 18 Jun 2007 13:12:36 +1000
dons at cse.unsw.edu.au (Donald Bruce Stewart) wrote:

> 
> This is a little weird. Spencer: was this expected.

The message seems to indicate that the "Hide windows that are not
supposed to be visible" fixed it, which is a bit strange.  Do the grey
blobs appear immediately before this patch? 


Cheers,
Spencer Janssen

>  Does it mean that
> the 'grey blobs' window is somehow not visible, and previously was
> just left on the screen?
> 
> ----- Forwarded message from Sebastian Goll <sebastian.goll at gmx.de>
> -----
> 
> Date: Sun, 17 Jun 2007 21:29:19 +0200
> From: Sebastian Goll <sebastian.goll at gmx.de>
> To: dwm at suckless.org
> Subject: Re: [dwm] Greyish blobs
> 
> On Sun, 17 Jun 2007 11:27:11 +0200
> "Szabolcs Nagy" <nszabolcs at gmail.com> wrote:
> 
> > have you tried other wms?
> 
> Just tried current xmonad version (Sun Jun 17 07:23:22 CEST 2007) and
> it works correctly, ie. it doesn't show any greyish blobs (but has
> the same flicker as ion3, wmii, and plain X). The problem appeared in
> xmonad too, but is fixed by patch "Hide windows that are not supposed
> to be visible" (Mon Jun 11 21:18:09 CEST 2007, patch attached).
> 
> I hope that helps identify the problem.
> 
> Regards,
> Sebastian
> 
> ----- End forwarded message -----
> 
> This is the patch that apparently fixes the 'grey blobs' window:
> 
> Mon Jun 11 21:18:09 CEST 2007  Spencer Janssen <sjanssen at cse.unl.edu>
>   * Hide windows that are not supposed to be visible
> 
>     hunk ./Operations.hs 24
>     -import Data.List            (genericIndex, intersectBy)
>     +import Data.List            (genericIndex, intersectBy, nub,
> (\\)) hunk ./Operations.hs 87
>     -shift n = withFocused hide >> windows (W.shift n)
>     --- TODO: get rid of the above hide.  'windows' should handle all
> hiding and --- revealing of windows
>     +shift n = windows (W.shift n)
>     hunk ./Operations.hs 132
>     -    let ws = f old
>     +    let oldvisible = concatMap (W.integrate . W.stack .
> W.workspace) $ W.current old : W.visible old
>     +        ws = f old
>     hunk ./Operations.hs 138
>     -    forM_ (W.current ws : W.visible ws) $ \w -> do
>     +    visible <- fmap concat $ forM (W.current ws : W.visible ws)
> $ \w -> do hunk ./Operations.hs 187
>     +        -- return the visible windows for this workspace:
>     +        return (map fst rs ++ flt)
>     +
>     hunk ./Operations.hs 194
>     -    -- We now go to some effort to compute the minimal set of
> windows to hide.
>     -    -- The minimal set being only those windows which weren't
> previously hidden,
>     -    -- which is the intersection of previously visible windows
> with those now hidden
>     -    mapM_ hide . concatMap (W.integrate . W.stack) $
>     -        intersectBy (\w x -> W.tag w == W.tag x)
>     -            (map W.workspace $ W.current old : W.visible old)
>     -            (W.hidden ws)
>     +    -- hide every window that was potentially visible before,
> but is not
>     +    -- given a position by a layout now.
>     +    mapM_ hide (nub oldvisible \\ visible)
> _______________________________________________
> Xmonad mailing list
> Xmonad at haskell.org
> http://www.haskell.org/mailman/listinfo/xmonad


More information about the Xmonad mailing list