[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