diff options
| author | akbash <akbash@herdr.dev> | 2026-08-25 22:02:37 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-25 22:02:37 +0300 |
| commit | 9ff467bda4aa0fcb79ccb4a04392b63e37ce7f37 (patch) | |
| tree | 46b6122009206ab1bf2ffa94b33daeacf0341a10 /src/app/input/mod.rs | |
| parent | 6e8b138d0f7d7d695530657a6d8dc475bd3fba2b (diff) | |
fix: route osc 8 file links to plugin handlers (#2942)
refs #2941
Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Diffstat (limited to 'src/app/input/mod.rs')
| -rw-r--r-- | src/app/input/mod.rs | 17 |
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), |
