From e0a16f8752a366cd3c48f14a7419ddaca7bd3587 Mon Sep 17 00:00:00 2001 From: angel Date: Sun, 19 Apr 2020 18:36:00 +0200 Subject: [PATCH] FileManager+LibGUI: Allow drop on entire DirectoryView Previously, drag and drop would only work when dragging between node items on a DirectoryView. This commit makes it possible to drag files to the empty area of the DirectoryView and copy files more easily between windows. --- Applications/FileManager/main.cpp | 5 +++-- Libraries/LibGUI/AbstractView.cpp | 3 --- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Applications/FileManager/main.cpp b/Applications/FileManager/main.cpp index eaa1ce100a..fca3215f97 100644 --- a/Applications/FileManager/main.cpp +++ b/Applications/FileManager/main.cpp @@ -669,8 +669,6 @@ int run_in_windowed_mode(RefPtr config, String initial_locatio }; directory_view.on_drop = [&](const GUI::AbstractView&, const GUI::ModelIndex& index, const GUI::DropEvent& event) { - if (!index.is_valid()) - return; if (!event.mime_data().has_urls()) return; auto urls = event.mime_data().urls(); @@ -690,6 +688,9 @@ int run_in_windowed_mode(RefPtr config, String initial_locatio target_node.full_path(directory_view.model()).characters(), FileSystemPath(url_to_copy.path()).basename().characters()); + if (url_to_copy.path() == new_path) + continue; + if (!FileUtils::copy_file_or_directory(url_to_copy.path(), new_path)) { auto error_message = String::format("Could not copy %s into %s.", url_to_copy.to_string().characters(), diff --git a/Libraries/LibGUI/AbstractView.cpp b/Libraries/LibGUI/AbstractView.cpp index 52c73063a5..7da84be7da 100644 --- a/Libraries/LibGUI/AbstractView.cpp +++ b/Libraries/LibGUI/AbstractView.cpp @@ -350,9 +350,6 @@ void AbstractView::drop_event(DropEvent& event) return; auto index = index_at_event_position(event.position()); - if (!index.is_valid()) - return; - if (on_drop) on_drop(index, event); }