From 397edbdb31bb6d72b9e1e7aa65b5b9bd56ef5cc6 Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Sat, 11 Apr 2026 22:16:58 +0200 Subject: properly handle new objects in events --- src/Waylean.lean | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src') 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") -- cgit v1.3.1