refactor: allow tui.keyboard_focus widget to ignore input

This commit is contained in:
CJ van den Berg 2026-02-24 23:13:52 +01:00
parent 7de0d27a54
commit 3d1658541a
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

View file

@ -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 { 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); tp.trace(tp.channel.input, m);
_ = self.input_listeners_.send(from, m) catch {}; _ = self.input_listeners_.send(from, m) catch {};
if (self.keyboard_focus) |w| { if (self.keyboard_focus) |w|
_ = try w.send(from, m); if (try w.send(from, m))
return; return;
}
if (try self.update_hover(y, x)) |w| if (try self.update_hover(y, x)) |w|
_ = try w.send(from, m); _ = 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); tp.trace(tp.channel.input, m);
_ = self.input_listeners_.send(from, m) catch {}; _ = self.input_listeners_.send(from, m) catch {};
if (self.keyboard_focus) |w| { if (self.keyboard_focus) |w| {
_ = try w.send(from, m); if (try w.send(from, m))
return; return;
} }
_ = try self.update_hover(y, x); _ = try self.update_hover(y, x);
if (self.drag_source) |w| _ = try w.send(from, m); if (self.drag_source) |w| _ = try w.send(from, m);