tui: avoid no-op status-line redraws (#11155)

Rate-limit snapshots are polled every 60s, which causes unconditional
redraws.
This causes spurious "tab changed" indicators in terminal apps.
This commit is contained in:
rakan-oai
2026-02-09 00:13:19 -08:00
committed by GitHub
parent 383b45279e
commit 4e9e6ca243
3 changed files with 17 additions and 8 deletions

View File

@@ -3141,12 +3141,20 @@ impl ChatComposer {
}
}
pub(crate) fn set_status_line(&mut self, status_line: Option<Line<'static>>) {
pub(crate) fn set_status_line(&mut self, status_line: Option<Line<'static>>) -> bool {
if self.status_line_value == status_line {
return false;
}
self.status_line_value = status_line;
true
}
pub(crate) fn set_status_line_enabled(&mut self, enabled: bool) {
pub(crate) fn set_status_line_enabled(&mut self, enabled: bool) -> bool {
if self.status_line_enabled == enabled {
return false;
}
self.status_line_enabled = enabled;
true
}
}

View File

@@ -905,13 +905,15 @@ impl BottomPane {
}
pub(crate) fn set_status_line(&mut self, status_line: Option<Line<'static>>) {
self.composer.set_status_line(status_line);
self.request_redraw();
if self.composer.set_status_line(status_line) {
self.request_redraw();
}
}
pub(crate) fn set_status_line_enabled(&mut self, enabled: bool) {
self.composer.set_status_line_enabled(enabled);
self.request_redraw();
if self.composer.set_status_line_enabled(enabled) {
self.request_redraw();
}
}
}