appDisplay: Handle dropped app favorites

Now that apps either appear in the dash or the app grid, it makes
sense to allow DND between the two components to add and remove
favorites.

Currently this only works for adding items to the dash, update the
app grid code to also accept drops from the dash.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1594>
This commit is contained in:
Florian Müllner 2021-01-26 11:33:54 +01:00
parent 9f1eb6da2b
commit 55439713f4

View File

@ -1325,7 +1325,8 @@ class AppDisplay extends BaseAppView {
// exist in AppDisplay. We work around that by adding a placeholder // exist in AppDisplay. We work around that by adding a placeholder
// icon that is either destroyed on cancel, or becomes the effective // icon that is either destroyed on cancel, or becomes the effective
// new icon when dropped. // new icon when dropped.
if (_getViewFromIcon(source) instanceof FolderView) if (_getViewFromIcon(source) instanceof FolderView ||
this._appFavorites.isFavorite(source.id))
this._ensurePlaceholder(source); this._ensurePlaceholder(source);
} }
@ -1363,6 +1364,9 @@ class AppDisplay extends BaseAppView {
if (this._currentDialog) if (this._currentDialog)
this._currentDialog.popdown(); this._currentDialog.popdown();
if (this._appFavorites.isFavorite(source.id))
this._appFavorites.removeFavorite(source.id);
return true; return true;
} }