mirror of
https://github.com/wez/wezterm.git
synced 2024-12-22 21:01:36 +03:00
ensure that we spawn open calls on a background thread
Otherwise we can block the gui waiting for eg: a freshly opened firefox to
terminate.
See also comment worrying about this in
75066cb522
.
That fear was realized but now resolved!
refs: https://github.com/wez/wezterm/issues/2245
This commit is contained in:
parent
cfd9c0b364
commit
870ffdf59a
@ -43,6 +43,7 @@ As features stabilize some brief notes about them will accumulate here.
|
||||
* Tab bar could show a gap to the right when resizing
|
||||
* Padding could show window background rather than pane background around split panes at certain window sizes [#2210](https://github.com/wez/wezterm/issues/2210)
|
||||
* Loading dynamic escape sequence scripts from the [iTerm2-Color-Scheme dynamic-colors directory](https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/dynamic-colors) would only apply the first 7 colors
|
||||
* Unix: Clicking a URL when no browser is open could cause wezterm to hang until the newly opened browser is closed. [#2245](https://github.com/wez/wezterm/issues/2245)
|
||||
|
||||
#### Updated
|
||||
* Bundled harfbuzz to 4.4.1
|
||||
|
@ -20,9 +20,11 @@ fn open_with<'lua>(_: &'lua Lua, (url, app): (String, Option<String>)) -> mlua::
|
||||
if let Some(app) = app {
|
||||
open::with_in_background(url, app);
|
||||
} else {
|
||||
std::thread::spawn(move || {
|
||||
if let Err(err) = open::that(&url) {
|
||||
log::error!("Error opening {}: {:#}", url, err);
|
||||
}
|
||||
});
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
@ -2519,10 +2519,12 @@ impl TermWindow {
|
||||
None => true,
|
||||
};
|
||||
if default_click {
|
||||
std::thread::spawn(move || {
|
||||
log::info!("clicking {}", link);
|
||||
if let Err(err) = open::that(&link) {
|
||||
log::error!("Error opening {}: {:#}", link, err);
|
||||
}
|
||||
});
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
@ -126,7 +126,10 @@ async fn show_notif_impl(notif: ToastNotification) -> Result<(), Box<dyn std::er
|
||||
let args = signal.args()?;
|
||||
if args.nid == notification {
|
||||
if let Some(url) = notif.url.as_ref() {
|
||||
let url = url.clone();
|
||||
std::thread::spawn(move || {
|
||||
let _ = open::that(url);
|
||||
});
|
||||
abort_closed.abort();
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user