[gnome-shell/gbsneto/icon-grid-dnd: 30/35] appIcon: Use a real BaseIcon as the drag actor
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gbsneto/icon-grid-dnd: 30/35] appIcon: Use a real BaseIcon as the drag actor
- Date: Thu, 4 Jul 2019 19:59:27 +0000 (UTC)
commit 090f9f23a12e6b0825ee6d73d74b2112aa152805
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Wed Jul 3 13:29:20 2019 -0300
appIcon: Use a real BaseIcon as the drag actor
Moving an app icon to other positions is semantically different
to dragging an actor to the dash; the act of moving should itself
be semantic, in that we should feel like we are moving the actual
icon.
Currently, AppIcon gives the DnD code a simplified version of itself,
with just its icon, instead of a complete copy with the label.
Make AppIcon create a new IconGrid.BaseIcon and use it as the drag
actor.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/603
js/ui/appDisplay.js | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 031ed6fc4..1b44131b3 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -1821,15 +1821,18 @@ var AppIcon = class AppIcon {
this._draggable = DND.makeDraggable(this.actor);
this._draggable.connect('drag-begin', () => {
this._dragging = true;
+ this.actor.opacity = 0;
this._removeMenuTimeout();
Main.overview.beginItemDrag(this);
});
this._draggable.connect('drag-cancelled', () => {
this._dragging = false;
+ this.actor.opacity = 255;
Main.overview.cancelledItemDrag(this);
});
this._draggable.connect('drag-end', () => {
this._dragging = false;
+ this.actor.opacity = 255;
Main.overview.endItemDrag(this);
});
}
@@ -2040,7 +2043,12 @@ var AppIcon = class AppIcon {
}
getDragActor() {
- return this.app.create_icon_texture(Main.overview.dashIconSize);
+ let iconParams = { createIcon: this._createIcon.bind(this),
+ showLabel: (this.icon.label != null),
+ setSizeManually: false };
+
+ let icon = new IconGrid.BaseIcon(this.name, iconParams);
+ return icon;
}
// Returns the original actor that should align with the actor
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]