From 7de33557f14d8044e531b6272a53e925512000cc Mon Sep 17 00:00:00 2001 From: yggverse Date: Fri, 1 Aug 2025 21:01:25 +0300 Subject: [PATCH] fix proxy resolver update on request entry autocomplete --- .../browser/window/tab/item/page/navigation/request.rs | 4 +++- .../window/tab/item/page/navigation/request/suggestion.rs | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/app/browser/window/tab/item/page/navigation/request.rs b/src/app/browser/window/tab/item/page/navigation/request.rs index 1a79fd5b..b3ecf5ea 100644 --- a/src/app/browser/window/tab/item/page/navigation/request.rs +++ b/src/app/browser/window/tab/item/page/navigation/request.rs @@ -51,7 +51,7 @@ impl Request { update_primary_icon(&entry, profile); - let suggestion = Rc::new(Suggestion::build(profile, &entry)); + let suggestion = Rc::new(Suggestion::build(&entry, profile, &proxy_resolver)); entry.add_controller({ use gtk::{ @@ -464,12 +464,14 @@ fn update_blocked( entry: &Entry, signal_handler_id: >k::glib::SignalHandlerId, text: &str, + resolver: &RefCell>, ) { use gtk::prelude::ObjectExt; entry.block_signal(signal_handler_id); entry.set_text(text); entry.select_region(0, -1); update_primary_icon(entry, profile); + refresh_proxy_resolver(entry, profile, resolver); entry.unblock_signal(signal_handler_id); } 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 563b6af7..a13f8827 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 @@ -33,7 +33,11 @@ impl Suggestion { // Constructors /// Create new `Self` - pub fn build(profile: &Rc, entry: &Entry) -> Self { + pub fn build( + entry: &Entry, + profile: &Rc, + resolver: &Rc>>, + ) -> Self { let signal_handler_id = Rc::new(RefCell::new(None)); let list_store = ListStore::new::(); let single_selection = { @@ -44,6 +48,7 @@ impl Suggestion { ss.connect_selected_notify({ let e = entry.clone(); let p = profile.clone(); + let r = resolver.clone(); let signal_handler_id = signal_handler_id.clone(); move |this| { if let Some(selected_item) = this.selected_item() { @@ -53,6 +58,7 @@ impl Suggestion { &e, signal_handler_id, &selected_item.downcast_ref::().unwrap().request(), + &r, ); } } // @TODO find signal to handle selected item only