[gnome-shell] dash: Handle cancelled drags



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]