[gnome-shell/gbsneto/icon-grid-dnd-fixes: 11/19] appDisplay: Adjust folder position
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gbsneto/icon-grid-dnd-fixes: 11/19] appDisplay: Adjust folder position
- Date: Fri, 2 Oct 2020 16:31:18 +0000 (UTC)
commit ae11d48e3be6cecfb6cdfbfc824e73ce964862b9
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Thu Sep 24 12:00:03 2020 -0300
appDisplay: Adjust folder position
If you try and drop an icon that's in the same page, but before the
drop target, it'll be one position ahead of where it should be -
because we just removed one icon before the target position.
Adjust the final position of the to-be-created folder.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447
js/ui/appDisplay.js | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 6011d72ee6..b704a54601 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -1314,9 +1314,18 @@ class AppDisplay extends BaseAppView {
// 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] =
+ let [folderPage, folderPosition] =
this._grid.getItemPosition(this._items.get(apps[0]));
+ // Adjust the final position
+ folderPosition -= apps.reduce((counter, appId) => {
+ const [page, position] =
+ this._grid.getItemPosition(this._items.get(appId));
+ if (page === folderPage && position < folderPosition)
+ counter++;
+ return counter;
+ }, 0);
+
let appItems = apps.map(id => this._items.get(id).app);
let folderName = _findBestFolderName(appItems);
if (!folderName)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]