summaryrefslogtreecommitdiffhomepage
path: root/src/Xmobar.hs
diff options
context:
space:
mode:
authorJochen Keil <jochen.keil@gmail.com>2012-08-10 08:36:03 +0200
committerJochen Keil <jochen.keil@gmail.com>2012-08-10 08:40:43 +0200
commit5074fdf2d6aa85ce17ad98112ec5019eb05a39c4 (patch)
tree2ce5fdf3abcb61db4d70b75e0341c33c4b0c6833 /src/Xmobar.hs
parent6c456e9e1f881fd70e9c1b357edfc5d63f7a3204 (diff)
downloadxmobar-5074fdf2d6aa85ce17ad98112ec5019eb05a39c4.tar.gz
xmobar-5074fdf2d6aa85ce17ad98112ec5019eb05a39c4.tar.bz2
New configuration option "persistent"
When persistent is set to True then xmobar will always be mapped (revealed) and never be hidden. The flag is checked in eventLoop and operation to map/unmap windows is not carried out if persistence is desired.
Diffstat (limited to 'src/Xmobar.hs')
-rw-r--r--src/Xmobar.hs16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/Xmobar.hs b/src/Xmobar.hs
index a65a236..1ae55bb 100644
--- a/src/Xmobar.hs
+++ b/src/Xmobar.hs
@@ -145,11 +145,17 @@ eventLoop tv xc@(XConf d _ w fs cfg) signal = do
Toggle -> toggle
where
- hide = hideWindow d w >> eventLoop tv xc signal
- reveal = do
- r' <- repositionWin d w fs cfg
- showWindow d w
- eventLoop tv (XConf d r' w fs cfg) signal
+ isPersistent = not $ persistent cfg
+
+ hide = when isPersistent (hideWindow d w) >> eventLoop tv xc signal
+
+ reveal = if isPersistent
+ then do
+ r' <- repositionWin d w fs cfg
+ showWindow d w
+ eventLoop tv (XConf d r' w fs cfg) signal
+ else eventLoop tv xc signal
+
toggle = isMapped d w >>= \b -> if b then hide else reveal
reposWindow rcfg = do