From a734a008e1749458c6861a90363ca8da6aa869af Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 29 Jul 2025 10:12:15 +0200 Subject: [PATCH] fix: refresh git branch status on project switch --- src/tui/status/branch.zig | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/tui/status/branch.zig b/src/tui/status/branch.zig index ce368ef..7f6dfc4 100644 --- a/src/tui/status/branch.zig +++ b/src/tui/status/branch.zig @@ -44,6 +44,7 @@ pub fn create( .on_click = on_click, .on_layout = layout, .on_render = render, + .on_receive = receive, .on_event = event_handler, }); } @@ -60,11 +61,21 @@ pub fn ctx_deinit(self: *Self) void { if (self.behind) |p| self.allocator.free(p); } -fn on_click(_: *Self, _: *Button.State(Self)) void { - git.status(0) catch {}; +fn on_click(self: *Self, _: *Button.State(Self)) void { + self.refresh_git_status(); command.executeName("show_git_status", .{}) catch {}; } +fn refresh_git_status(_: *Self) void { + git.status(0) catch {}; +} + +pub fn receive(self: *Self, _: *Button.State(Self), _: tp.pid_ref, m: tp.message) error{Exit}!bool { + if (try m.match(.{ "PRJ", "open" })) + self.refresh_git_status(); + return false; +} + fn receive_git(self: *Self, _: tp.pid_ref, m: tp.message) MessageFilter.Error!bool { return if (try match(m.buf, .{ "git", more })) self.process_git(m)