From 16b9f0f96d0abc124cc3b8f7366f5a916e18c1f5 Mon Sep 17 00:00:00 2001 From: Yecine Megdiche Date: Sun, 19 Sep 2021 12:16:14 +0200 Subject: [PATCH] X.A.CopyWindow: fix copiesPP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Related: https://github.com/xmonad/xmonad-contrib/issues/557 Co-authored-by: Tomáš Janoušek --- XMonad/Actions/CopyWindow.hs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/XMonad/Actions/CopyWindow.hs b/XMonad/Actions/CopyWindow.hs index 7a8db88b..4cce6e9c 100644 --- a/XMonad/Actions/CopyWindow.hs +++ b/XMonad/Actions/CopyWindow.hs @@ -1,4 +1,5 @@ {-# LANGUAGE PatternGuards #-} +{-# LANGUAGE RecordWildCards #-} ----------------------------------------------------------------------------- -- | -- Module : XMonad.Actions.CopyWindow @@ -25,11 +26,12 @@ module XMonad.Actions.CopyWindow ( ) where import XMonad +import XMonad.Prelude import Control.Arrow ((&&&)) import qualified Data.List as L import XMonad.Actions.WindowGo -import XMonad.Hooks.StatusBar.PP (PP(..)) +import XMonad.Hooks.StatusBar.PP (PP(..), WS(..), isHidden) import qualified XMonad.StackSet as W -- $usage @@ -92,9 +94,9 @@ import qualified XMonad.StackSet as W copiesPP :: (WorkspaceId -> String) -> PP -> X PP copiesPP wtoS pp = do copies <- wsContainingCopies - let check ws | ws `elem` copies = wtoS ws - | otherwise = ppHidden pp ws - return pp { ppHidden = check } + let check WS{..} = W.tag wsWS `elem` copies + let printer = (asks (isHidden <&&> check) >>= guard) $> wtoS + return pp{ ppPrinters = printer <|> ppPrinters pp } -- | Copy the focused window to a workspace. copy :: (Eq s, Eq i, Eq a) => i -> W.StackSet i l a s sd -> W.StackSet i l a s sd