summaryrefslogtreecommitdiffstats
path: root/lib/DynamicPerScreenWorkspaces.hs
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-09-03 13:43:11 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-09-03 13:43:11 +0200
commit01a381911a2ce989c9e9e5ff470ff67f16a4a4f7 (patch)
tree53c943f56e118407914f5dc0b8115c12cfd4a7d6 /lib/DynamicPerScreenWorkspaces.hs
parent6ce8a6515eba6b979095efe30eaa7c978e16a27f (diff)
downloadxmonad-conf-01a381911a2ce989c9e9e5ff470ff67f16a4a4f7.tar
xmonad-conf-01a381911a2ce989c9e9e5ff470ff67f16a4a4f7.zip
Adjusted EwmhDesktops module
Diffstat (limited to 'lib/DynamicPerScreenWorkspaces.hs')
-rw-r--r--lib/DynamicPerScreenWorkspaces.hs10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/DynamicPerScreenWorkspaces.hs b/lib/DynamicPerScreenWorkspaces.hs
index 263174d..66bbf11 100644
--- a/lib/DynamicPerScreenWorkspaces.hs
+++ b/lib/DynamicPerScreenWorkspaces.hs
@@ -6,6 +6,7 @@ module DynamicPerScreenWorkspaces ( screenWorkspaceStorage
, dynamicRescreenHook
, create
, cleanup
+ , focusWindow
, view
, viewOn
, viewOnCurrent
@@ -128,6 +129,15 @@ create conf i = do
cleanup :: X ()
cleanup = windows cleanup'
+focusWindow :: DynamicWorkspaceConfig -> Window -> X ()
+focusWindow conf w = do
+ wset <- gets windowset
+ let mws = W.findTag w wset
+ whenJust mws $ \ws -> do
+ let i = head $ filter ((== ws) . workspaceTag conf) [0..]
+ sid <- workspaceScreen conf i
+ windows' $ liftM (cleanup' . W.focusWindow w) . viewOn' conf sid i
+
view :: DynamicWorkspaceConfig -> Int -> X ()
view conf i = do
sid <- workspaceScreen conf i