From c58936d3369dd7690609f8a5fc1c7a82cde52c7c Mon Sep 17 00:00:00 2001 From: yggverse Date: Fri, 14 Mar 2025 19:08:14 +0200 Subject: [PATCH] fix popover blink on update --- .../tab/item/page/navigation/request/suggestion.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/app/browser/window/tab/item/page/navigation/request/suggestion.rs b/src/app/browser/window/tab/item/page/navigation/request/suggestion.rs index 01127ff3..a6efc313 100644 --- a/src/app/browser/window/tab/item/page/navigation/request/suggestion.rs +++ b/src/app/browser/window/tab/item/page/navigation/request/suggestion.rs @@ -164,15 +164,11 @@ impl Suggestion { pub fn update(&self, limit: Option) { use gtk::prelude::EditableExt; use itertools::Itertools; - self.popover.popdown(); if self.request.text_length() > 0 { - self.list_store.remove_all(); - let query = self.request.text(); let popover = self.popover.clone(); let list_store = self.list_store.clone(); let profile = self.profile.clone(); - gtk::glib::spawn_future_local(async move { let list_items = gtk::gio::spawn_blocking(move || { let result = profile @@ -198,13 +194,18 @@ impl Suggestion { }) .await .unwrap(); - if !list_items.is_empty() { + if list_items.is_empty() { + popover.popdown(); + } else { + list_store.remove_all(); for (title, subtitle, has_bookmark, request) in list_items { list_store.append(&Item::build(title, subtitle, has_bookmark, request)); } // @TODO take a while popover.popup() } }); + } else { + self.popover.popdown(); } }