aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-server/src/screen.rs
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2024-06-11 15:19:29 +0200
committerGitHub <noreply@github.com>2024-06-11 15:19:29 +0200
commit0db3db059def80ff505b56a89a84a3a8c24ac7fa (patch)
tree66bd285b03e93b1d655d86b11554d66bf7690865 /zellij-server/src/screen.rs
parentdocs(changelog): scroll region fixes (diff)
downloadsl0ppij-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.rs18
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) {