From 84c4db13fb52543c1ef22465d885cf33e19f24c6 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 2 Oct 2023 15:57:59 -0700 Subject: [PATCH] Avoid spurious notifies in chat channel select Co-authored-by: Mikayla --- crates/gpui/src/views/select.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/crates/gpui/src/views/select.rs b/crates/gpui/src/views/select.rs index bad65ccfc8e0d9bf583847ac12058d3e08ad2865..b1ea201fdfcb48be9bfe6ff81e879d5b6196b165 100644 --- a/crates/gpui/src/views/select.rs +++ b/crates/gpui/src/views/select.rs @@ -53,8 +53,10 @@ impl Select { } pub fn set_item_count(&mut self, count: usize, cx: &mut ViewContext) { - self.item_count = count; - cx.notify(); + if count != self.item_count { + self.item_count = count; + cx.notify(); + } } fn toggle(&mut self, cx: &mut ViewContext) { @@ -63,9 +65,11 @@ impl Select { } pub fn set_selected_index(&mut self, ix: usize, cx: &mut ViewContext) { - self.selected_item_ix = ix; - self.is_open = false; - cx.notify(); + if ix != self.selected_item_ix || self.is_open { + self.selected_item_ix = ix; + self.is_open = false; + cx.notify(); + } } pub fn selected_index(&self) -> usize {