diff options
author | Alec Berryman <alec@thened.net> | 2007-03-29 20:21:59 +0200 |
---|---|---|
committer | Alec Berryman <alec@thened.net> | 2007-03-29 20:21:59 +0200 |
commit | acdff238a5d09ff0a382cb6cab188635a765f6f8 (patch) | |
tree | be4640017f6d840763fec4ed4e23aafbf8602f38 | |
parent | 38eb0160d14a218c7cacfff3a9127945da2aa359 (diff) | |
download | xmonad-acdff238a5d09ff0a382cb6cab188635a765f6f8.tar.gz xmonad-acdff238a5d09ff0a382cb6cab188635a765f6f8.tar.xz xmonad-acdff238a5d09ff0a382cb6cab188635a765f6f8.zip |
Window borders
Colors taken from dwm's config.default.h and hard-coded in Operations instead
of Config because of import cycle.
Windows overlap slightly in the current tiling algorithm and sometimes prevent
the active window from being completely surrounded by a red border.
darcs-hash:20070329182159-39448-deabaeaf89d87bb71abc851b6bae1ffa356e5561.gz
Diffstat (limited to '')
-rw-r--r-- | Operations.hs | 10 | ||||
-rw-r--r-- | TODO | 1 |
2 files changed, 10 insertions, 1 deletions
diff --git a/Operations.hs b/Operations.hs index b80d16f..ef630db 100644 --- a/Operations.hs +++ b/Operations.hs @@ -142,10 +142,16 @@ withServerX f = withDisplay $ \dpy -> do -- | Explicitly set the keyboard focus to the given window setFocus :: Window -> X () setFocus w = do + -- Remove the border for the window no longer in focus. + ws <- gets workspace + whenJust (W.peek ws) (\oldw -> setBorder oldw 0xdddddd) + -- Set focus to the given window. withDisplay $ \d -> io $ setInputFocus d w revertToPointerRoot 0 -- This does not use 'windows' intentionally. 'windows' calls refresh, -- which means infinite loops. modify (\s -> s { workspace = W.raiseFocus w (workspace s) }) + -- Set new border for raised window. + setBorder w 0xff0000 -- | Set the focus to the window on top of the stack, or root setTopFocus :: X () @@ -155,6 +161,10 @@ setTopFocus = do Just new -> setFocus new Nothing -> gets theRoot >>= setFocus +-- | Set the border color for a particular window. +setBorder :: Window -> Pixel -> X () +setBorder w p = withDisplay $ \d -> io $ setWindowBorder d w p + -- | raise. focus to window at offset 'n' in list. -- The currently focused window is always the head of the list raise :: Ordering -> X () @@ -24,6 +24,5 @@ - make focus remain between workspace switches - change focus in the StackSet structure on EnterNotify - let mod+enter demote a master window - - borders (low priority, maybe wait until 0.2) * Tile vertically/ resize height. |