From 65d73274e8b658087bdd4bc03430f0dc3888c807 Mon Sep 17 00:00:00 2001 From: apricotbucket28 <71973804+apricotbucket28@users.noreply.github.com> Date: Tue, 16 Jul 2024 14:42:57 -0300 Subject: [PATCH] wayland: Fix drag and drop for paths with spaces (#14574) This wasn't doing any proper parsing before, so `%20` or similar encoded characters weren't handled correctly. Release Notes: - N/A --- crates/gpui/src/platform/linux/wayland/client.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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());