[gnome-shell] Start the workspace zoom out immediately on dnd cancel.
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] Start the workspace zoom out immediately on dnd cancel.
- Date: Wed, 9 Mar 2011 12:57:14 +0000 (UTC)
commit df2f939f3a54f5b30b4f87451e45939944b80d80
Author: Alexander Larsson <alexl redhat com>
Date: Tue Mar 8 14:50:34 2011 +0100
Start the workspace zoom out immediately on dnd cancel.
This means the snap-back animation happens at the same time as the zoom,
which looks much better.
https://bugzilla.gnome.org/show_bug.cgi?id=643786
js/ui/workspacesView.js | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
---
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index df69f99..c2502ef 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -553,6 +553,7 @@ WorkspacesDisplay.prototype = {
this.workspacesView = null;
this._inDrag = false;
+ this._cancelledDrag = false;
this._zoomOut = false;
this._zoomFraction = 0;
@@ -562,6 +563,7 @@ WorkspacesDisplay.prototype = {
this._itemDragBeginId = 0;
this._itemDragEndId = 0;
this._windowDragBeginId = 0;
+ this._windowDragCancelledId = 0;
this._windowDragEndId = 0;
},
@@ -597,6 +599,9 @@ WorkspacesDisplay.prototype = {
if (this._windowDragBeginId == 0)
this._windowDragBeginId = Main.overview.connect('window-drag-begin',
Lang.bind(this, this._dragBegin));
+ if (this._windowDragCancelledId == 0)
+ this._windowDragCancelledId = Main.overview.connect('window-drag-cancelled',
+ Lang.bind(this, this._dragCancelled));
if (this._windowDragEndId == 0)
this._windowDragEndId = Main.overview.connect('window-drag-end',
Lang.bind(this, this._dragEnd));
@@ -631,6 +636,10 @@ WorkspacesDisplay.prototype = {
Main.overview.disconnect(this._windowDragBeginId);
this._windowDragBeginId = 0;
}
+ if (this._windowDragCancelledId > 0) {
+ Main.overview.disconnect(this._windowDragCancelledId);
+ this._windowDragCancelledId = 0;
+ }
if (this._windowDragEndId > 0) {
Main.overview.disconnect(this._windowDragEndId);
this._windowDragEndId = 0;
@@ -782,7 +791,7 @@ WorkspacesDisplay.prototype = {
if (Main.overview.animationInProgress)
return;
- let shouldZoom = this._controls.hover || this._inDrag;
+ let shouldZoom = this._controls.hover || (this._inDrag && !this._cancelledDrag);
if (shouldZoom != this._zoomOut) {
this._zoomOut = shouldZoom;
this._updateWorkspacesGeometry();
@@ -805,6 +814,12 @@ WorkspacesDisplay.prototype = {
_dragBegin: function() {
this._inDrag = true;
+ this._cancelledDrag = false;
+ this._updateZoom();
+ },
+
+ _dragCancelled: function() {
+ this._cancelledDrag = true;
this._updateZoom();
},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]