diff --git a/crates/gpui/src/platform/linux/wayland/client.rs b/crates/gpui/src/platform/linux/wayland/client.rs index 0dbe05d1d85664da8ad30d96acd1b51e92afa411..7a59d59c007ed00235a84584cecedf82014c62fc 100644 --- a/crates/gpui/src/platform/linux/wayland/client.rs +++ b/crates/gpui/src/platform/linux/wayland/client.rs @@ -11,6 +11,7 @@ use calloop_wayland_source::WaylandSource; use collections::HashMap; use filedescriptor::Pipe; +use http::Url; use smallvec::SmallVec; use util::ResultExt; use wayland_backend::client::ObjectId; @@ -1791,7 +1792,8 @@ impl Dispatch for WaylandClientStatePtr { let paths: SmallVec<[_; 2]> = file_list .lines() - .map(|path| PathBuf::from(path.replace("file://", ""))) + .filter_map(|path| Url::parse(path).log_err()) + .filter_map(|url| url.to_file_path().log_err()) .collect(); let position = Point::new(x.into(), y.into());