[gnome-shell/gbsneto/icon-grid-dnd-fixes: 15/16] appDisplay: Remove icon from folder when dragging out




commit aaff88a6bb06ebc6acf9b4ceaa456d679c71fdaa
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Thu Sep 24 16:06:01 2020 -0300

    appDisplay: Remove icon from folder when dragging out
    
    When dragging an icon outside of a folder dialog, there's a small delay
    before the dialog pops down. If the icon is dropped during this delay,
    the drag is cancelled, and the icon continues to be in the folder.
    
    However, this behavior turned out to be problematic, and it was a common
    point of failure that throwing icons outside folders wouldn't work.
    
    Remove the icon from the folder when dragging it to outside the dialog.
    
    Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3092
    
    https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447

 js/ui/appDisplay.js | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 43bab2db98..ce6754c562 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -2454,7 +2454,18 @@ var AppFolderDialog = GObject.registerClass({
             this._setupDragMonitor();
         }
 
-        return DND.DragMotionResult.NO_DROP;
+        return DND.DragMotionResult.MOVE_DROP;
+    }
+
+    acceptDrop(source) {
+        const appId = source.id;
+
+        this.popdown(() => {
+            this._view.removeApp(source);
+            this._appDisplay.selectApp(appId);
+        });
+
+        return true;
     }
 
     toggle() {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]