From 932c79fb1371aed65fb1844079db368ef9dbb963 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Thu, 30 Oct 2025 21:30:13 +0100 Subject: [PATCH] fix: crash in home screen Button click handlers may delete the button, so we should not touch self after calling them. --- src/tui/Button.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tui/Button.zig b/src/tui/Button.zig index 0fc77be..bca03a0 100644 --- a/src/tui/Button.zig +++ b/src/tui/Button.zig @@ -133,9 +133,9 @@ fn State(ctx_type: type) type { } return true; } else if (try m.match(.{ "B", input.event.release, tp.extract(&btn), tp.any, tp.extract(&x), tp.extract(&y), tp.any, tp.any })) { - self.call_click_handler(@enumFromInt(btn), self.to_rel_cursor(x, y)); self.drag_anchor = null; self.drag_pos = null; + self.call_click_handler(@enumFromInt(btn), self.to_rel_cursor(x, y)); tui.need_render(); return true; } else if (try m.match(.{ "D", input.event.press, tp.extract(&btn), tp.any, tp.extract(&x), tp.extract(&y), tp.any, tp.any })) { @@ -150,9 +150,9 @@ fn State(ctx_type: type) type { self.active = false; h.send(from, m) catch {}; } - self.call_click_handler(@enumFromInt(btn), self.to_rel_cursor(x, y)); self.drag_anchor = null; self.drag_pos = null; + self.call_click_handler(@enumFromInt(btn), self.to_rel_cursor(x, y)); tui.need_render(); return true; } else if (try m.match(.{ "H", tp.extract(&self.hover) })) {