From 3d1658541a3f86b5e52156795f2c0eee5b8caaac Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 24 Feb 2026 23:13:52 +0100 Subject: [PATCH] refactor: allow tui.keyboard_focus widget to ignore input --- src/tui/tui.zig | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/tui/tui.zig b/src/tui/tui.zig index 756ccfc..aeab6c6 100644 --- a/src/tui/tui.zig +++ b/src/tui/tui.zig @@ -870,10 +870,9 @@ fn send_widgets(self: *Self, from: tp.pid_ref, m: tp.message) error{Exit}!bool { fn send_mouse(self: *Self, y: c_int, x: c_int, from: tp.pid_ref, m: tp.message) tp.result { tp.trace(tp.channel.input, m); _ = self.input_listeners_.send(from, m) catch {}; - if (self.keyboard_focus) |w| { - _ = try w.send(from, m); - return; - } + if (self.keyboard_focus) |w| + if (try w.send(from, m)) + return; if (try self.update_hover(y, x)) |w| _ = try w.send(from, m); } @@ -882,8 +881,8 @@ fn send_mouse_drag(self: *Self, y: c_int, x: c_int, from: tp.pid_ref, m: tp.mess tp.trace(tp.channel.input, m); _ = self.input_listeners_.send(from, m) catch {}; if (self.keyboard_focus) |w| { - _ = try w.send(from, m); - return; + if (try w.send(from, m)) + return; } _ = try self.update_hover(y, x); if (self.drag_source) |w| _ = try w.send(from, m);