From c11e5cf01047ccb4c3d5fb7057a3366289f3ac20 Mon Sep 17 00:00:00 2001 From: David Roundy Date: Thu, 1 Nov 2007 19:35:46 +0100 Subject: fix selectWorkspace to work with new config. darcs-hash:20071101183546-72aca-01f90fa9b4a7b2b3b1b8ea2f22088d1490d07978.gz --- XMonad/Actions/DynamicWorkspaces.hs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'XMonad/Actions/DynamicWorkspaces.hs') diff --git a/XMonad/Actions/DynamicWorkspaces.hs b/XMonad/Actions/DynamicWorkspaces.hs index 6aa3fb9..855467a 100644 --- a/XMonad/Actions/DynamicWorkspaces.hs +++ b/XMonad/Actions/DynamicWorkspaces.hs @@ -21,10 +21,11 @@ module XMonad.Actions.DynamicWorkspaces ( toNthWorkspace, withNthWorkspace ) where +import Control.Monad.Reader ( asks ) import Control.Monad.State ( gets ) import Data.List ( sort ) -import XMonad ( X, XState(..), Layout, WorkspaceId, WindowSet ) +import XMonad ( X, XState(..), Layout, WorkspaceId, WindowSet, config, layoutHook ) import XMonad.Operations import XMonad.StackSet hiding (filter, modify, delete) import Graphics.X11.Xlib ( Window ) @@ -36,7 +37,7 @@ import XMonad.Prompt ( XPConfig ) -- -- > import XMonad.Actions.DynamicWorkspaces -- --- > , ((modMask .|. shiftMask, xK_n), selectWorkspace defaultXPConfig layoutHook) +-- > , ((modMask .|. shiftMask, xK_n), selectWorkspace defaultXPConfig) -- > , ((modMask .|. shiftMask, xK_BackSpace), removeWorkspace) -- > , ((modMask .|. shiftMask .|. controlMask, xK_r), renameWorkspace defaultXPConfig) -- @@ -69,11 +70,12 @@ withNthWorkspace job wnum = do ws <- gets (sort . map tag . workspaces . windows (w:_) -> windows $ job w [] -> return () -selectWorkspace :: XPConfig -> Layout Window -> X () -selectWorkspace conf l = workspacePrompt conf $ \w -> - windows $ \s -> if tagMember w s - then greedyView w s - else addWorkspace' w l s +selectWorkspace :: XPConfig -> X () +selectWorkspace conf = workspacePrompt conf $ \w -> + do l <- asks (layoutHook . config) + windows $ \s -> if tagMember w s + then greedyView w s + else addWorkspace' w l s addWorkspace :: Layout Window -> X () addWorkspace l = do s <- gets windowset -- cgit v1.2.3