From 819a71ea7a939e45234648c6ee09aa3bcaa6ff77 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Sat, 9 May 2026 21:57:26 +0300 Subject: fix: refresh git status off the main loop fixes #85 --- src/app/api.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/app/api.rs') diff --git a/src/app/api.rs b/src/app/api.rs index ab8058cf..bda7fc16 100644 --- a/src/app/api.rs +++ b/src/app/api.rs @@ -1,3 +1,4 @@ +use std::sync::atomic::Ordering; use std::time::{Duration, Instant}; use super::{ @@ -16,6 +17,16 @@ impl App { return; } + if let AppEvent::GitStatusRefreshed { results } = ev { + self.git_refresh_in_flight = false; + self.last_git_remote_status_refresh = Instant::now(); + if self.state.apply_workspace_git_statuses(results) { + self.render_dirty.store(true, Ordering::Release); + self.render_notify.notify_one(); + } + return; + } + let overlay_state = if let AppEvent::PaneDied { pane_id } = &ev { self.overlay_panes.remove(pane_id) } else { -- cgit v1.2.3