From 5c28a405ee17ce2e80cc6881255e28cb0f65836b Mon Sep 17 00:00:00 2001 From: yggverse Date: Fri, 18 Oct 2024 10:01:40 +0300 Subject: [PATCH] use UriLauncher --- .../item/page/content/text/gemini/reader.rs | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/app/browser/window/tab/item/page/content/text/gemini/reader.rs b/src/app/browser/window/tab/item/page/content/text/gemini/reader.rs index 9949560f..ce33a151 100644 --- a/src/app/browser/window/tab/item/page/content/text/gemini/reader.rs +++ b/src/app/browser/window/tab/item/page/content/text/gemini/reader.rs @@ -15,10 +15,11 @@ use widget::Widget; use adw::StyleManager; use gtk::{ gdk::{BUTTON_MIDDLE, BUTTON_PRIMARY}, - gio::{AppInfo, AppLaunchContext, SimpleAction}, + gio::{Cancellable, SimpleAction}, glib::{GString, TimeZone, Uri}, prelude::{ActionExt, TextBufferExt, TextBufferExtManual, TextViewExt, ToVariant, WidgetExt}, - EventControllerMotion, GestureClick, TextBuffer, TextTag, TextView, TextWindowType, WrapMode, + EventControllerMotion, GestureClick, TextBuffer, TextTag, TextView, TextWindowType, + UriLauncher, Window, WrapMode, }; use std::{collections::HashMap, sync::Arc}; @@ -253,14 +254,17 @@ impl Reader { // Open new page in browser action_page_open.activate(Some(&uri.to_str().to_variant())); } - // Scheme not supported, delegate link to the external app - _ => match AppInfo::launch_default_for_uri( - &uri.to_str(), - Some(&AppLaunchContext::new()), - ) { - Ok(_) => (), - Err(e) => todo!("{e}"), - }, + // Scheme not supported, delegate + _ => UriLauncher::new(&uri.to_str()).launch( + None::<&Window>, + None::<&Cancellable>, + |result| { + if let Err(error) = result { + // @TODO + println!("Could not delegate launch action: {error}") + } + }, + ), }; } }