aboutsummaryrefslogtreecommitdiff
path: root/src/ui.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-11 16:44:05 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-11 16:44:05 +0300
commit8007c9202ce1f90f95bd3442bc59148e33d13620 (patch)
tree2ad9f63a1e195370810fa0c701a49cea7ff7ec11 /src/ui.rs
parent9663028a82aeef9722adaac34d2fcb8c19fc3a53 (diff)
fix: resize background tabs on terminal resize
Diffstat (limited to 'src/ui.rs')
-rw-r--r--src/ui.rs19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/ui.rs b/src/ui.rs
index 874cc65e..83a9d987 100644
--- a/src/ui.rs
+++ b/src/ui.rs
@@ -32,7 +32,7 @@ use self::mobile::{
};
pub(crate) use self::onboarding::onboarding_welcome_continue_rect;
use self::onboarding::render_onboarding_overlay;
-use self::panes::{compute_pane_infos, render_panes};
+use self::panes::{compute_pane_infos, render_panes, resize_tab_panes};
use self::release_notes::render_release_notes_overlay;
pub(crate) use self::release_notes::{
release_notes_close_button_rect, release_notes_display_lines, release_notes_sections,
@@ -97,6 +97,17 @@ pub(crate) fn compute_view_without_resizing_panes(app: &mut AppState, area: Rect
compute_view_internal(app, area, false);
}
+fn resize_background_tab_panes_to_terminal_area(app: &AppState, terminal_area: Rect) {
+ for (ws_idx, ws) in app.workspaces.iter().enumerate() {
+ for (tab_idx, tab) in ws.tabs.iter().enumerate() {
+ if app.active == Some(ws_idx) && tab_idx == ws.active_tab_index() {
+ continue;
+ }
+ resize_tab_panes(tab, terminal_area);
+ }
+ }
+}
+
fn compute_view_internal(app: &mut AppState, area: Rect, resize_panes: bool) {
if is_mobile_width(area) {
compute_mobile_view(app, area, resize_panes);
@@ -160,6 +171,9 @@ fn compute_view_internal(app: &mut AppState, area: Rect, resize_panes: bool) {
.unwrap_or_default();
let pane_infos = compute_pane_infos(app, terminal_area, resize_panes);
+ if resize_panes {
+ resize_background_tab_panes_to_terminal_area(app, terminal_area);
+ }
let toast_hit_area = app
.toast
@@ -208,6 +222,9 @@ fn compute_mobile_view(app: &mut AppState, area: Rect, resize_panes: bool) {
.unwrap_or_default();
let pane_infos = compute_pane_infos(app, terminal_area, resize_panes);
+ if resize_panes {
+ resize_background_tab_panes_to_terminal_area(app, terminal_area);
+ }
let header_hits = compute_mobile_header_hit_areas(app, header_rect);
let toast_hit_area = app