aboutsummaryrefslogtreecommitdiff
path: root/src/platform
diff options
context:
space:
mode:
authorakbash <akbash@herdr.dev>2026-08-18 00:11:20 +0300
committerGitHub <noreply@github.com>2026-08-18 00:11:20 +0300
commit76211757ecce73cba981bdf6704954b25a100a8c (patch)
tree8686202ba5d6bb32d13e9d911b3aa4236bb30a6c /src/platform
parent19022d03c902de586009b1d156bc20b01ce48135 (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.rs2
-rw-r--r--src/platform/linux.rs6
-rw-r--r--src/platform/macos.rs6
-rw-r--r--src/platform/windows.rs4
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 {}",