[gnome-shell] dash: Handle cancelled drags
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] dash: Handle cancelled drags
- Date: Sat, 19 Mar 2011 10:16:39 +0000 (UTC)
commit 2c48efa3fd00c5ca203aefc29b099c8affc4441d
Author: Florian Müllner <fmuellner gnome org>
Date: Wed Mar 9 16:56:08 2011 +0100
dash: Handle cancelled drags
If a drag was cancelled, do animations like size changes or zooming
out the remove target in parallel with the snapback animation.
https://bugzilla.gnome.org/show_bug.cgi?id=644324
js/ui/dash.js | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/dash.js b/js/ui/dash.js
index 6a39edc..ed22fea 100644
--- a/js/ui/dash.js
+++ b/js/ui/dash.js
@@ -283,20 +283,37 @@ Dash.prototype = {
Lang.bind(this, this._onDragBegin));
Main.overview.connect('item-drag-end',
Lang.bind(this, this._onDragEnd));
+ Main.overview.connect('item-drag-cancelled',
+ Lang.bind(this, this._onDragCancelled));
Main.overview.connect('window-drag-begin',
Lang.bind(this, this._onDragBegin));
+ Main.overview.connect('window-drag-cancelled',
+ Lang.bind(this, this._onDragCancelled));
Main.overview.connect('window-drag-end',
Lang.bind(this, this._onDragEnd));
},
_onDragBegin: function() {
+ this._dragCancelled = false;
this._dragMonitor = {
dragMotion: Lang.bind(this, this._onDragMotion)
};
DND.addDragMonitor(this._dragMonitor);
},
+ _onDragCancelled: function() {
+ this._dragCancelled = true;
+ this._endDrag();
+ },
+
_onDragEnd: function() {
+ if (this._dragCancelled)
+ return;
+
+ this._endDrag();
+ },
+
+ _endDrag: function() {
this._clearDragPlaceholder();
if (this._favRemoveTarget) {
this._favRemoveTarget.actor.hide();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]