diff options
| author | akbash <akbash@herdr.dev> | 2026-08-18 00:11:20 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-18 00:11:20 +0300 |
| commit | 76211757ecce73cba981bdf6704954b25a100a8c (patch) | |
| tree | 8686202ba5d6bb32d13e9d911b3aa4236bb30a6c /src/platform | |
| parent | 19022d03c902de586009b1d156bc20b01ce48135 (diff) | |
fix: reap ctrl-click url openers (#2906)
* fix: reap ctrl-click url openers
refs #2903
* fix: scope linux opener test import
refs #2903
* test: isolate url opener regression
refs #2903
---------
Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Diffstat (limited to 'src/platform')
| -rw-r--r-- | src/platform/fallback.rs | 2 | ||||
| -rw-r--r-- | src/platform/linux.rs | 6 | ||||
| -rw-r--r-- | src/platform/macos.rs | 6 | ||||
| -rw-r--r-- | src/platform/windows.rs | 4 |
4 files changed, 9 insertions, 9 deletions
diff --git a/src/platform/fallback.rs b/src/platform/fallback.rs index 1b02fae8..cdfbc157 100644 --- a/src/platform/fallback.rs +++ b/src/platform/fallback.rs @@ -202,7 +202,7 @@ pub fn read_clipboard_text() -> Option<String> { } /// Unsupported platform stub. -pub fn open_url(_url: &str) -> std::io::Result<()> { +pub fn open_url(_url: &str) -> std::io::Result<Option<std::process::Child>> { Err(std::io::Error::new( std::io::ErrorKind::Unsupported, "opening URLs is not supported on this platform", diff --git a/src/platform/linux.rs b/src/platform/linux.rs index f84d9e96..b5c33259 100644 --- a/src/platform/linux.rs +++ b/src/platform/linux.rs @@ -466,14 +466,14 @@ pub fn read_clipboard_text() -> Option<String> { None } -pub fn open_url(url: &str) -> std::io::Result<()> { +pub fn open_url(url: &str) -> std::io::Result<Option<std::process::Child>> { Command::new("xdg-open") .arg(url) .stdin(Stdio::null()) .stdout(Stdio::null()) .stderr(Stdio::null()) - .spawn()?; - Ok(()) + .spawn() + .map(Some) } pub fn read_clipboard_image() -> Option<ClipboardImage> { diff --git a/src/platform/macos.rs b/src/platform/macos.rs index 9c59b39c..00fd2452 100644 --- a/src/platform/macos.rs +++ b/src/platform/macos.rs @@ -522,14 +522,14 @@ pub fn read_clipboard_text() -> Option<String> { } } -pub fn open_url(url: &str) -> std::io::Result<()> { +pub fn open_url(url: &str) -> std::io::Result<Option<std::process::Child>> { Command::new("open") .arg(url) .stdin(Stdio::null()) .stdout(Stdio::null()) .stderr(Stdio::null()) - .spawn()?; - Ok(()) + .spawn() + .map(Some) } pub fn read_clipboard_image() -> Option<ClipboardImage> { diff --git a/src/platform/windows.rs b/src/platform/windows.rs index 4e444877..7aee384e 100644 --- a/src/platform/windows.rs +++ b/src/platform/windows.rs @@ -1889,7 +1889,7 @@ pub fn read_clipboard_text() -> Option<String> { None } -pub fn open_url(url: &str) -> std::io::Result<()> { +pub fn open_url(url: &str) -> std::io::Result<Option<std::process::Child>> { let operation = wide_null("open"); let url = wide_null(url); let result = unsafe { @@ -1903,7 +1903,7 @@ pub fn open_url(url: &str) -> std::io::Result<()> { ) }; if result as isize > 32 { - Ok(()) + Ok(None) } else { Err(std::io::Error::other(format!( "failed to open URL with ShellExecuteW: code {}", |
