aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/History.hs
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2022-04-15 01:14:50 -0600
committerJosh Rahm <joshuarahm@gmail.com>2022-10-09 12:19:46 -0600
commit73fe77966c249283655495e144de3c36c25e533d (patch)
tree20cd0ce34fa899592882f2ec2f9d307489291981 /src/Rahm/Desktop/History.hs
parentf92a9690f3881db347e9bd9672f83039a420e45c (diff)
downloadrde-73fe77966c249283655495e144de3c36c25e533d.tar.gz
rde-73fe77966c249283655495e144de3c36c25e533d.tar.bz2
rde-73fe77966c249283655495e144de3c36c25e533d.zip
[WIP] - Window change hooks
Diffstat (limited to 'src/Rahm/Desktop/History.hs')
-rw-r--r--src/Rahm/Desktop/History.hs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/Rahm/Desktop/History.hs b/src/Rahm/Desktop/History.hs
new file mode 100644
index 0000000..8aff845
--- /dev/null
+++ b/src/Rahm/Desktop/History.hs
@@ -0,0 +1,25 @@
+module Rahm.Desktop.History where
+
+import Data.IntMap (IntMap)
+import qualified Data.IntMap as IntMap
+import Data.Default
+
+import Rahm.Desktop.Hooks.WindowChange
+
+data History = History {
+ currentIndex :: Int
+ , history :: IntMap Location
+ }
+
+instance Default History where
+ def = History 0 IntMap.empty
+
+addToHistory :: Location -> History -> History
+addToHistory loc (History currentIndex hist) =
+ let hist' = if currentIndex > 100
+ then IntMap.delete (currentIndex - 100) hist
+ else hist
+ in History (currentIndex + 1 ) (IntMap.insert currentIndex loc hist)
+
+historyHook :: Location -> Location -> X ()
+historyHook = undefined