aboutsummaryrefslogtreecommitdiff
path: root/src/app/input/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/input/mod.rs')
-rw-r--r--src/app/input/mod.rs17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/app/input/mod.rs b/src/app/input/mod.rs
index 597d9296..10edc0c0 100644
--- a/src/app/input/mod.rs
+++ b/src/app/input/mod.rs
@@ -595,14 +595,21 @@ impl App {
return false;
};
- self.last_pane_click = None;
- self.pending_url_click_sources.insert(source_id);
- match self.invoke_plugin_link_handler_for_url(&url, info.id) {
- Ok(true) => return true,
- Ok(false) => {}
+ let plugin_handled = match self.invoke_plugin_link_handler_for_url(&url, info.id) {
+ Ok(handled) => handled,
Err(err) => {
tracing::warn!(err = %err, url = %url, "failed to invoke plugin link handler");
+ false
}
+ };
+ if !plugin_handled && crate::app::actions::safe_web_url(&url).is_none() {
+ return false;
+ }
+
+ self.last_pane_click = None;
+ self.pending_url_click_sources.insert(source_id);
+ if plugin_handled {
+ return true;
}
match open_url(&url) {
Ok(Some(child)) => self.detached_process_children.push(child),