From fda3ec580330e38ee8511f41b21312092375e9d0 Mon Sep 17 00:00:00 2001 From: ysthakur <45539777+ysthakur@users.noreply.github.com> Date: Sat, 7 Jun 2025 20:38:30 -0400 Subject: [PATCH] Set input in update_values instead of update_working_details --- src/menu/columnar_menu.rs | 13 +++++-------- src/menu/description_menu.rs | 5 ++++- src/menu/ide_menu.rs | 13 +++++-------- src/menu/list_menu.rs | 15 +++++---------- 4 files changed, 19 insertions(+), 27 deletions(-) diff --git a/src/menu/columnar_menu.rs b/src/menu/columnar_menu.rs index 8aae2f08..5f2d4264 100644 --- a/src/menu/columnar_menu.rs +++ b/src/menu/columnar_menu.rs @@ -521,6 +521,10 @@ impl Menu for ColumnarMenu { /// Updates menu values fn update_values(&mut self, editor: &mut Editor, completer: &mut dyn Completer) { + if self.settings.only_buffer_difference && self.input.is_none() { + self.input = Some(editor.get_buffer().to_string()); + } + let (input, pos) = completer_input( editor.get_buffer(), editor.insertion_point(), @@ -551,20 +555,13 @@ impl Menu for ColumnarMenu { if let Some(event) = self.event.take() { match event { MenuEvent::Activate(updated) => { - self.active = true; self.reset_position(); - self.input = if self.settings.only_buffer_difference { - Some(editor.get_buffer().to_string()) - } else { - None - }; - if !updated { self.update_values(editor, completer); } } - MenuEvent::Deactivate => self.active = false, + MenuEvent::Deactivate => {} MenuEvent::Edit(updated) => { self.reset_position(); diff --git a/src/menu/description_menu.rs b/src/menu/description_menu.rs index d9687206..0e7ead54 100644 --- a/src/menu/description_menu.rs +++ b/src/menu/description_menu.rs @@ -442,6 +442,10 @@ impl Menu for DescriptionMenu { /// Updates menu values fn update_values(&mut self, editor: &mut Editor, completer: &mut dyn Completer) { + if self.settings.only_buffer_difference && self.input.is_none() { + self.input = Some(editor.get_buffer().to_string()); + } + let (input, pos) = completer_input( editor.get_buffer(), editor.insertion_point(), @@ -465,7 +469,6 @@ impl Menu for DescriptionMenu { match event { MenuEvent::Activate(_) => { self.reset_position(); - self.input = Some(editor.get_buffer().to_string()); self.update_values(editor, completer); } MenuEvent::Deactivate => self.active = false, diff --git a/src/menu/ide_menu.rs b/src/menu/ide_menu.rs index 24c82378..281396c0 100644 --- a/src/menu/ide_menu.rs +++ b/src/menu/ide_menu.rs @@ -652,6 +652,10 @@ impl Menu for IdeMenu { /// Update menu values fn update_values(&mut self, editor: &mut Editor, completer: &mut dyn Completer) { + if self.settings.only_buffer_difference && self.input.is_none() { + self.input = Some(editor.get_buffer().to_string()); + } + let (input, pos) = completer_input( editor.get_buffer(), editor.insertion_point(), @@ -681,20 +685,13 @@ impl Menu for IdeMenu { if let Some(event) = self.event.take() { match event { MenuEvent::Activate(updated) => { - self.active = true; self.reset_position(); - self.input = if self.settings.only_buffer_difference { - Some(editor.get_buffer().to_string()) - } else { - None - }; - if !updated { self.update_values(editor, completer); } } - MenuEvent::Deactivate => self.active = false, + MenuEvent::Deactivate => {} MenuEvent::Edit(updated) => { self.reset_position(); diff --git a/src/menu/list_menu.rs b/src/menu/list_menu.rs index 3ed16f6b..9a6c6623 100644 --- a/src/menu/list_menu.rs +++ b/src/menu/list_menu.rs @@ -346,6 +346,10 @@ impl Menu for ListMenu { /// Collecting the value from the completer to be shown in the menu fn update_values(&mut self, editor: &mut Editor, completer: &mut dyn Completer) { + if self.settings.only_buffer_difference && self.input.is_none() { + self.input = Some(editor.get_buffer().to_string()); + } + let (input, pos) = completer_input( editor.get_buffer(), editor.insertion_point(), @@ -422,12 +426,6 @@ impl Menu for ListMenu { MenuEvent::Activate(_) => { self.reset_position(); - self.input = if self.settings.only_buffer_difference { - Some(editor.get_buffer().to_string()) - } else { - None - }; - self.update_values(editor, completer); self.pages.push(Page { @@ -435,10 +433,7 @@ impl Menu for ListMenu { full: false, }); } - MenuEvent::Deactivate => { - self.active = false; - self.input = None; - } + MenuEvent::Deactivate => {} MenuEvent::Edit(_) => { self.update_values(editor, completer); self.pages.push(Page {