From 5354d01a89c2fe2e461201983fdf08d95e60829a Mon Sep 17 00:00:00 2001 From: reuk Date: Thu, 17 Dec 2020 17:49:48 +0000 Subject: [PATCH] X11: Properly escape "+" symbols in dragged/dropped filenames --- .../native/x11/juce_linux_X11_DragAndDrop.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/juce_gui_basics/native/x11/juce_linux_X11_DragAndDrop.cpp b/modules/juce_gui_basics/native/x11/juce_linux_X11_DragAndDrop.cpp index ff523ac45a..d6508e09f6 100644 --- a/modules/juce_gui_basics/native/x11/juce_linux_X11_DragAndDrop.cpp +++ b/modules/juce_gui_basics/native/x11/juce_linux_X11_DragAndDrop.cpp @@ -287,8 +287,11 @@ public: if (XWindowSystemUtilities::Atoms::isMimeTypeFile (getDisplay(), dragAndDropCurrentMimeType)) { - for (int i = 0; i < lines.size(); ++i) - dragInfo.files.add (URL::removeEscapeChars (lines[i].replace ("file://", String(), true))); + for (const auto& line : lines) + { + const auto escaped = line.replace ("+", "%2B").replace ("file://", String(), true); + dragInfo.files.add (URL::removeEscapeChars (escaped)); + } dragInfo.files.trim(); dragInfo.files.removeEmptyStrings();