summaryrefslogtreecommitdiff
path: root/src/Waylean.lean
diff options
context:
space:
mode:
authorHannes Schulze <contact@haschu.me>2026-04-11 22:16:58 +0200
committerHannes Schulze <contact@haschu.me>2026-04-11 22:16:58 +0200
commit397edbdb31bb6d72b9e1e7aa65b5b9bd56ef5cc6 (patch)
tree2366101d03958a33b06c1e81ed49d118d72a98ae /src/Waylean.lean
parent3d722b15a21977931a0bfa99bd8c6a235682a6d9 (diff)
properly handle new objects in events
Diffstat (limited to 'src/Waylean.lean')
-rw-r--r--src/Waylean.lean9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/Waylean.lean b/src/Waylean.lean
index 8402351..6334301 100644
--- a/src/Waylean.lean
+++ b/src/Waylean.lean
@@ -25,8 +25,10 @@ def handle (ctx : Context) : RiverWindowManagerV1.Event → DisplayM State Unit
DisplayM.liftIO <| IO.println "Another window manager is already running"
DisplayM.requestQuit
| .finished => do
+ IO.println "Finished"
DisplayM.requestQuit
| .manageStart => do
+ IO.println "Manage Start"
let (removedOutputs, aliveOutputs) := (← get).outputs.partition (Function.const _ Output.removed)
pure ()
| .renderStart => pure ()
@@ -44,7 +46,10 @@ def launch : DisplayM State Unit := do
DisplayM.sync do
let wm : RiverWindowManagerV1 ← zoomRegistry Registry.bindSingleton
let xkbBindings : RiverXkbBindingsV1 ← zoomRegistry Registry.bindSingleton
- wm.listen (handle { wm, xkbBindings })
+ wm.listen fun ev ↦ do
+ wm.keep
+ xkbBindings.keep
+ handle { wm, xkbBindings } ev
def main : IO Unit :=
- DisplayM.run launch { }
+ DisplayM.run launch { } (name := "wayland-2")