diff options
| author | Aram Drevekenin <aram@poor.dev> | 2024-10-09 12:21:06 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-09 12:21:06 +0200 |
| commit | 8a8ffb37be5e3e1a7ba64e94eedc9ae97d8d86b4 (patch) | |
| tree | 93c11a22940587b8e95385a9178f795552f7f111 | |
| parent | docs(changelog): pane name fixes (diff) | |
| download | sl0ppij-8a8ffb37be5e3e1a7ba64e94eedc9ae97d8d86b4.tar.gz sl0ppij-8a8ffb37be5e3e1a7ba64e94eedc9ae97d8d86b4.tar.xz sl0ppij-8a8ffb37be5e3e1a7ba64e94eedc9ae97d8d86b4.zip | |
fix(ux): only damage the relevant swap layout layer when resizing panes (#3654)
| -rw-r--r-- | zellij-server/src/tab/mod.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/zellij-server/src/tab/mod.rs b/zellij-server/src/tab/mod.rs index bb2678e9..666b0b5c 100644 --- a/zellij-server/src/tab/mod.rs +++ b/zellij-server/src/tab/mod.rs @@ -2312,19 +2312,20 @@ impl Tab { } pub fn resize(&mut self, client_id: ClientId, strategy: ResizeStrategy) -> Result<()> { let err_context = || format!("unable to resize pane"); - self.swap_layouts.set_is_floating_damaged(); - self.swap_layouts.set_is_tiled_damaged(); if self.floating_panes.panes_are_visible() { let successfully_resized = self .floating_panes .resize_active_pane(client_id, &mut self.os_api, &strategy) .with_context(err_context)?; if successfully_resized { + self.swap_layouts.set_is_floating_damaged(); self.set_force_render(); // we force render here to make sure the panes under the floating pane render and don't leave "garbage" in case of a decrease } } else { match self.tiled_panes.resize_active_pane(client_id, &strategy) { - Ok(_) => {}, + Ok(_) => { + self.swap_layouts.set_is_tiled_damaged(); + }, Err(err) => match err.downcast_ref::<ZellijError>() { Some(ZellijError::CantResizeFixedPanes { pane_ids }) => { let mut pane_ids_to_error = vec![]; |
