From 0303a3797e66fa31b4759a951ffb6f29dbb9cc57 Mon Sep 17 00:00:00 2001 From: David Roundy Date: Mon, 8 Oct 2007 14:52:06 +0200 Subject: make createNewWindow set background and foreground to a given color. This means we don't need to draw colors that are this color. Also speeds up redrawing, since the X server can do all the drawing on its own, without talking with xmonad. darcs-hash:20071008125206-72aca-0f17cde109eeb8f66ea651657fcc09599680881d.gz --- DragPane.hs | 6 ++---- Tabbed.hs | 2 +- XUtils.hs | 7 ++++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/DragPane.hs b/DragPane.hs index 0546cb0..dc345fc 100644 --- a/DragPane.hs +++ b/DragPane.hs @@ -136,11 +136,9 @@ doLay mirror (DragPane mw ty delta split) r s = do newDragWin :: Rectangle -> X Window newDragWin r@(Rectangle _ _ wh ht) = do let mask = Just $ exposureMask .|. buttonPressMask - w <- createNewWindow r mask + w <- createNewWindow r mask handleColor showWindow w - paintWindow w wh ht 0 handleColor handleColor return w updateDragWin :: Window -> Rectangle -> X () -updateDragWin w (Rectangle _ _ wh ht) = do - paintWindow w wh ht 0 handleColor handleColor +updateDragWin w (Rectangle _ _ wh ht) = return () diff --git a/Tabbed.hs b/Tabbed.hs index 0996e06..378f20a 100644 --- a/Tabbed.hs +++ b/Tabbed.hs @@ -172,7 +172,7 @@ createTabs c (Rectangle x y wh ht) owl@(ow:ows) = do height = fromIntegral $ tabSize c mask = Just (exposureMask .|. buttonPressMask) d <- asks display - w <- createNewWindow (Rectangle x y wid height) mask + w <- createNewWindow (Rectangle x y wid height) mask (inactiveColor c) io $ restackWindows d $ w : [ow] ws <- createTabs c (Rectangle (x + fromIntegral wid) y (wh - wid) ht) ows return (w:ws) diff --git a/XUtils.hs b/XUtils.hs index c06cde4..4434c8f 100644 --- a/XUtils.hs +++ b/XUtils.hs @@ -66,11 +66,12 @@ releaseFont fs = do -- | Create a simple window given a rectangle. If Nothing is given -- only the exposureMask will be set, otherwise the Just value. -- Use 'showWindow' to map and hideWindow to unmap. -createNewWindow :: Rectangle -> Maybe EventMask -> X Window -createNewWindow (Rectangle x y w h) m = do +createNewWindow :: Rectangle -> Maybe EventMask -> String -> X Window +createNewWindow (Rectangle x y w h) m col = do d <- asks display rw <- asks theRoot - win <- io $ createSimpleWindow d rw x y w h 0 0 0 + c <- stringToPixel col + win <- io $ createSimpleWindow d rw x y w h 0 c c case m of Just em -> io $ selectInput d win em Nothing -> io $ selectInput d win exposureMask -- cgit v1.2.3