mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-02 17:45:28 +00:00
fix auth indicator update on identity apply
This commit is contained in:
parent
4203b91e84
commit
6501738737
3 changed files with 19 additions and 14 deletions
|
|
@ -91,16 +91,22 @@ impl Item {
|
||||||
});
|
});
|
||||||
|
|
||||||
action.ident.connect_activate({
|
action.ident.connect_activate({
|
||||||
|
let client = client.clone();
|
||||||
let page = page.clone();
|
let page = page.clone();
|
||||||
let parent = tab_view.clone().upcast::<gtk::Widget>();
|
let parent = tab_view.clone().upcast::<gtk::Widget>();
|
||||||
let profile = profile.clone();
|
let profile = profile.clone();
|
||||||
let window_action = window_action.clone();
|
|
||||||
move || {
|
move || {
|
||||||
if let Some(uri) = page.navigation.uri() {
|
if let Some(request) = page.navigation.uri() {
|
||||||
let scheme = uri.scheme();
|
if ["gemini", "titan"].contains(&request.scheme().as_str()) {
|
||||||
if scheme == "gemini" || scheme == "titan" {
|
return identity::default(&profile, &request, {
|
||||||
return identity::default(&window_action, &profile, &uri)
|
let client = client.clone();
|
||||||
.present(Some(&parent));
|
let page = page.clone();
|
||||||
|
move || {
|
||||||
|
page.navigation.update(); // update indicators immediately
|
||||||
|
client.handle(&page.navigation.request(), false);
|
||||||
|
} // on apply
|
||||||
|
})
|
||||||
|
.present(Some(&parent));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
identity::unsupported().present(Some(&parent));
|
identity::unsupported().present(Some(&parent));
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,13 @@ mod unsupported;
|
||||||
use default::Default;
|
use default::Default;
|
||||||
use unsupported::Unsupported;
|
use unsupported::Unsupported;
|
||||||
|
|
||||||
use super::{Profile, WindowAction};
|
use super::Profile;
|
||||||
use gtk::glib::Uri;
|
use gtk::glib::Uri;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
/// Create new identity widget for Gemini protocol match given URI
|
/// Create new identity widget for Gemini protocol match given URI
|
||||||
pub fn default(window_action: &Rc<WindowAction>, profile: &Rc<Profile>, request: &Uri) -> Default {
|
pub fn default(profile: &Rc<Profile>, request: &Uri, on_apply: impl Fn() + 'static) -> Default {
|
||||||
Default::build(window_action, profile, request)
|
Default::build(profile, request, on_apply)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Create new identity widget for unknown request
|
/// Create new identity widget for unknown request
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
mod widget;
|
mod widget;
|
||||||
use widget::{form::list::item::value::Value, Widget};
|
use widget::{form::list::item::value::Value, Widget};
|
||||||
|
|
||||||
use super::{Profile, WindowAction};
|
use super::Profile;
|
||||||
use gtk::{glib::Uri, prelude::IsA};
|
use gtk::{glib::Uri, prelude::IsA};
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
|
|
@ -14,7 +14,7 @@ impl Default {
|
||||||
// Construct
|
// Construct
|
||||||
|
|
||||||
/// Create new `Self` for given `Profile`
|
/// Create new `Self` for given `Profile`
|
||||||
pub fn build(window_action: &Rc<WindowAction>, profile: &Rc<Profile>, request: &Uri) -> Self {
|
pub fn build(profile: &Rc<Profile>, request: &Uri, on_apply: impl Fn() + 'static) -> Self {
|
||||||
// Init widget
|
// Init widget
|
||||||
let widget = Rc::new(Widget::build(profile, request));
|
let widget = Rc::new(Widget::build(profile, request));
|
||||||
|
|
||||||
|
|
@ -23,7 +23,6 @@ impl Default {
|
||||||
let profile = profile.clone();
|
let profile = profile.clone();
|
||||||
let request = request.clone();
|
let request = request.clone();
|
||||||
let widget = widget.clone();
|
let widget = widget.clone();
|
||||||
let window_action = window_action.clone();
|
|
||||||
move |response| {
|
move |response| {
|
||||||
// Get option match user choice
|
// Get option match user choice
|
||||||
let option = match response {
|
let option = match response {
|
||||||
|
|
@ -64,8 +63,8 @@ impl Default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply changes
|
// Run callback function
|
||||||
window_action.reload.activate();
|
on_apply()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue