diff options
| author | Aram Drevekenin <aram@poor.dev> | 2024-06-11 15:19:29 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-11 15:19:29 +0200 |
| commit | 0db3db059def80ff505b56a89a84a3a8c24ac7fa (patch) | |
| tree | 66bd285b03e93b1d655d86b11554d66bf7690865 /zellij-server/src/screen.rs | |
| parent | docs(changelog): scroll region fixes (diff) | |
| download | sl0ppij-0db3db059def80ff505b56a89a84a3a8c24ac7fa.tar.gz sl0ppij-0db3db059def80ff505b56a89a84a3a8c24ac7fa.tar.xz sl0ppij-0db3db059def80ff505b56a89a84a3a8c24ac7fa.zip | |
fix(rendering): do not render if resizing screen to same size (#3413)
Diffstat (limited to 'zellij-server/src/screen.rs')
| -rw-r--r-- | zellij-server/src/screen.rs | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/zellij-server/src/screen.rs b/zellij-server/src/screen.rs index 8cf16dd8..cf3a6dd7 100644 --- a/zellij-server/src/screen.rs +++ b/zellij-server/src/screen.rs @@ -1038,15 +1038,19 @@ impl Screen { pub fn resize_to_screen(&mut self, new_screen_size: Size) -> Result<()> { let err_context = || format!("failed to resize to screen size: {new_screen_size:#?}"); - self.size = new_screen_size; - for tab in self.tabs.values_mut() { - tab.resize_whole_tab(new_screen_size) + if self.size != new_screen_size { + self.size = new_screen_size; + for tab in self.tabs.values_mut() { + tab.resize_whole_tab(new_screen_size) + .with_context(err_context)?; + tab.set_force_render(); + } + self.log_and_report_session_state() .with_context(err_context)?; - tab.set_force_render(); + self.render(None).with_context(err_context) + } else { + Ok(()) } - self.log_and_report_session_state() - .with_context(err_context)?; - self.render(None).with_context(err_context) } pub fn update_pixel_dimensions(&mut self, pixel_dimensions: PixelDimensions) { |
