From 4e6f24a841f0e19b7a5cd62ebdb6e021d628b2e3 Mon Sep 17 00:00:00 2001 From: CharlesChen0823 Date: Sat, 13 Apr 2024 03:18:56 +0800 Subject: [PATCH] Only emit resize event when size changed (#10419) Currently, terminal will emit resize event every seconds, even if the size not changed. this PR fixed only emit resize event when size is changed. Release Notes: - N/A --- crates/terminal/src/terminal.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/terminal/src/terminal.rs b/crates/terminal/src/terminal.rs index b5913f1c4d..7742073c10 100644 --- a/crates/terminal/src/terminal.rs +++ b/crates/terminal/src/terminal.rs @@ -142,7 +142,7 @@ pub fn init(cx: &mut AppContext) { TerminalSettings::register(cx); } -#[derive(Clone, Copy, Debug, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct TerminalSize { pub cell_width: Pixels, pub line_height: Pixels, @@ -992,7 +992,9 @@ impl Terminal { ///Resize the terminal and the PTY. pub fn set_size(&mut self, new_size: TerminalSize) { - self.events.push_back(InternalEvent::Resize(new_size)) + if self.last_content.size != new_size { + self.events.push_back(InternalEvent::Resize(new_size)) + } } ///Write the Input payload to the tty.