From b64ce217e4c06e624682f91926151dc4cccc329e Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Tue, 26 May 2020 22:29:29 -0300 Subject: [PATCH] appDisplay: Create app folder where the drop happened Create the app folder where the icon we drop at is located. This ensures the folder icon doesn't go into the last page, hidden and solitary. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284 --- js/ui/appDisplay.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 0e14d376c..65d41fa53 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -1126,6 +1126,11 @@ class AppDisplay extends BaseAppView { return false; } + // The hovered AppIcon always passes its own id as the first + // one, and this is where we want the folder to be created + const [folderPage, folderPosition] = + this._grid.getItemPosition(this._items.get(apps[0])); + let appItems = apps.map(id => this._items.get(id).app); let folderName = _findBestFolderName(appItems); if (!folderName) @@ -1136,7 +1141,12 @@ class AppDisplay extends BaseAppView { newFolderSettings.set_strv('apps', apps); newFolderSettings.apply(); - this.selectApp(newFolderId); + this._redisplay(); + + // Move the folder to where the icon target icon was + const folderItem = this._items.get(newFolderId); + this._moveItem(folderItem, folderPage, folderPosition); + this._savePages(); return true; }