mirror of
https://github.com/xmonad/xmonad.git
synced 2025-08-06 07:01:52 -07:00
eliminate a few Eq a constraints in StackSet.
This commit is contained in:
@@ -38,7 +38,7 @@ module StackSet (
|
|||||||
|
|
||||||
import Prelude hiding (filter)
|
import Prelude hiding (filter)
|
||||||
import Data.Maybe (listToMaybe,fromJust)
|
import Data.Maybe (listToMaybe,fromJust)
|
||||||
import qualified Data.List as L (delete,deleteBy,find,splitAt,filter)
|
import qualified Data.List as L (deleteBy,find,splitAt,filter)
|
||||||
import qualified Data.Map as M (Map,insert,delete,empty)
|
import qualified Data.Map as M (Map,insert,delete,empty)
|
||||||
|
|
||||||
-- $intro
|
-- $intro
|
||||||
@@ -225,7 +225,7 @@ new _ _ = abort "non-positive argument to StackSet.new"
|
|||||||
-- becomes the current screen. If it is in the visible list, it becomes
|
-- becomes the current screen. If it is in the visible list, it becomes
|
||||||
-- current.
|
-- current.
|
||||||
|
|
||||||
view :: (Eq a, Eq s, Eq i) => i -> StackSet i a s sd -> StackSet i a s sd
|
view :: (Eq s, Eq i) => i -> StackSet i a s sd -> StackSet i a s sd
|
||||||
view i s
|
view i s
|
||||||
| not (i `tagMember` s)
|
| not (i `tagMember` s)
|
||||||
|| i == tag (workspace (current s)) = s -- out of bounds or current
|
|| i == tag (workspace (current s)) = s -- out of bounds or current
|
||||||
@@ -237,10 +237,11 @@ view i s
|
|||||||
| Just x <- L.find ((i==).tag) (hidden s)
|
| Just x <- L.find ((i==).tag) (hidden s)
|
||||||
-- if it was hidden, it is raised on the xine screen currently used
|
-- if it was hidden, it is raised on the xine screen currently used
|
||||||
= s { current = (current s) { workspace = x }
|
= s { current = (current s) { workspace = x }
|
||||||
, hidden = workspace (current s) : L.delete x (hidden s) }
|
, hidden = workspace (current s) : L.deleteBy tagEq x (hidden s) }
|
||||||
|
|
||||||
| otherwise = s
|
| otherwise = s
|
||||||
where screenEq x y = screen x == screen y
|
where screenEq x y = screen x == screen y
|
||||||
|
tagEq x y = tag x == tag y
|
||||||
|
|
||||||
-- 'Catch'ing this might be hard. Relies on monotonically increasing
|
-- 'Catch'ing this might be hard. Relies on monotonically increasing
|
||||||
-- workspace tags defined in 'new'
|
-- workspace tags defined in 'new'
|
||||||
@@ -253,7 +254,7 @@ view i s
|
|||||||
-- screen, the workspaces of the current screen and the other screen are
|
-- screen, the workspaces of the current screen and the other screen are
|
||||||
-- swapped.
|
-- swapped.
|
||||||
|
|
||||||
greedyView :: (Eq a, Eq s, Eq i) => i -> StackSet i a s sd -> StackSet i a s sd
|
greedyView :: (Eq s, Eq i) => i -> StackSet i a s sd -> StackSet i a s sd
|
||||||
greedyView w ws
|
greedyView w ws
|
||||||
| any wTag (hidden ws) = view w ws
|
| any wTag (hidden ws) = view w ws
|
||||||
| (Just s) <- L.find (wTag . workspace) (visible ws)
|
| (Just s) <- L.find (wTag . workspace) (visible ws)
|
||||||
|
Reference in New Issue
Block a user