diff options
| author | Hannes Schulze <contact@haschu.me> | 2026-04-11 22:16:58 +0200 |
|---|---|---|
| committer | Hannes Schulze <contact@haschu.me> | 2026-04-11 22:16:58 +0200 |
| commit | 397edbdb31bb6d72b9e1e7aa65b5b9bd56ef5cc6 (patch) | |
| tree | 2366101d03958a33b06c1e81ed49d118d72a98ae /src | |
| parent | 3d722b15a21977931a0bfa99bd8c6a235682a6d9 (diff) | |
properly handle new objects in events
Diffstat (limited to 'src')
| -rw-r--r-- | src/Waylean.lean | 9 |
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") |
