workspace-thumbnails: Emit 'window-drag-cancelled'

The dash handles 'window-drag-cancelled', to be able to do the
animations for drag snap-back and size changes in parallel. As
the signal is not emitted for previews in the workspace switcher,
it does not work in that case.
This commit is contained in:
Florian Müllner 2011-12-02 16:54:27 +01:00
parent 2c243b678f
commit 47b55e29d4

View File

@ -51,6 +51,7 @@ const WindowClone = new Lang.Class({
dragActorMaxSize: Workspace.WINDOW_DND_SIZE, dragActorMaxSize: Workspace.WINDOW_DND_SIZE,
dragActorOpacity: Workspace.DRAGGING_WINDOW_OPACITY }); dragActorOpacity: Workspace.DRAGGING_WINDOW_OPACITY });
this._draggable.connect('drag-begin', Lang.bind(this, this._onDragBegin)); this._draggable.connect('drag-begin', Lang.bind(this, this._onDragBegin));
this._draggable.connect('drag-cancelled', Lang.bind(this, this._onDragCancelled));
this._draggable.connect('drag-end', Lang.bind(this, this._onDragEnd)); this._draggable.connect('drag-end', Lang.bind(this, this._onDragEnd));
this.inDrag = false; this.inDrag = false;
}, },
@ -108,6 +109,10 @@ const WindowClone = new Lang.Class({
this.emit('drag-begin'); this.emit('drag-begin');
}, },
_onDragCancelled : function (draggable, time) {
this.emit('drag-cancelled');
},
_onDragEnd : function (draggable, time, snapback) { _onDragEnd : function (draggable, time, snapback) {
this.inDrag = false; this.inDrag = false;
@ -386,6 +391,10 @@ const WorkspaceThumbnail = new Lang.Class({
Lang.bind(this, function(clone) { Lang.bind(this, function(clone) {
Main.overview.beginWindowDrag(); Main.overview.beginWindowDrag();
})); }));
clone.connect('drag-cancelled',
Lang.bind(this, function(clone) {
Main.overview.cancelledWindowDrag();
}));
clone.connect('drag-end', clone.connect('drag-end',
Lang.bind(this, function(clone) { Lang.bind(this, function(clone) {
Main.overview.endWindowDrag(); Main.overview.endWindowDrag();