diff --git a/ncurses_diff_viewer.c b/ncurses_diff_viewer.c index 7a261b1..c97944a 100644 --- a/ncurses_diff_viewer.c +++ b/ncurses_diff_viewer.c @@ -1402,9 +1402,14 @@ int push_commit(NCursesDiffViewer *viewer, int commit_index) { // Force immediate branch window refresh to show "Pushing" before the blocking // git operation - werase(viewer->branch_list_win); - render_branch_list_window(viewer); - wrefresh(viewer->branch_list_win); + + werase(viewer->branch_list_win); +render_file_list_window(viewer); +render_file_content_window(viewer); +render_commit_list_window(viewer); +render_branch_list_window(viewer); +render_stash_list_window(viewer); +render_status_bar(viewer); // Create a simple animated push with spinner updates pid_t push_pid; @@ -1430,19 +1435,22 @@ int push_commit(NCursesDiffViewer *viewer, int commit_index) { int status; int spinner_counter = 0; - while (waitpid(push_pid, &status, WNOHANG) == 0) { - // Update spinner animation - viewer->branch_animation_frame = spinner_counter; - spinner_counter = (spinner_counter + 1) % 40; // Cycle every 40 iterations + while (waitpid(push_pid, &status, WNOHANG) == 0) { + // Update spinner animation + viewer->branch_animation_frame = spinner_counter; + spinner_counter = (spinner_counter + 1) % 40; - // Refresh the branch window to show spinning animation - werase(viewer->branch_list_win); - render_branch_list_window(viewer); - wrefresh(viewer->branch_list_win); + // Refresh ALL windows, not just branch window + render_file_list_window(viewer); + render_file_content_window(viewer); + render_commit_list_window(viewer); + render_branch_list_window(viewer); + render_stash_list_window(viewer); + render_status_bar(viewer); - // Small delay for animation timing - usleep(100000); // 100ms delay - } + // Small delay for animation timing + usleep(100000); // 100ms delay +} // Get the exit status of the push command if (WIFEXITED(status)) { diff --git a/ncurses_diff_viewer.o b/ncurses_diff_viewer.o index 40e2e15..84afe39 100644 Binary files a/ncurses_diff_viewer.o and b/ncurses_diff_viewer.o differ diff --git a/shell b/shell index 677d536..aa0129b 100755 Binary files a/shell and b/shell differ