[gnome-shell] Always reserve space in all workspaces on a drag
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] Always reserve space in all workspaces on a drag
- Date: Thu, 17 Mar 2011 13:34:28 +0000 (UTC)
commit 05736ba0a1facaea873822fbc73221f2eed37414
Author: Alexander Larsson <alexl redhat com>
Date: Fri Mar 4 15:49:13 2011 +0100
Always reserve space in all workspaces on a drag
We used to do this only on automatic workspace switch, but that
doesn't work for the multiple monitors case where we want to reserve
space on the extra monitors.
https://bugzilla.gnome.org/show_bug.cgi?id=609258
js/ui/workspacesView.js | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index e9b548a..d288c2c 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -385,6 +385,7 @@ WorkspacesView.prototype = {
return;
this._inDrag = true;
+ this._firstDragMotion = true;
this._dragMonitor = {
dragMotion: Lang.bind(this, this._onDragMotion)
@@ -396,6 +397,14 @@ WorkspacesView.prototype = {
if (Main.overview.animationInProgress)
return DND.DragMotionResult.CONTINUE;
+ if (this._firstDragMotion) {
+ this._firstDragMotion = false;
+ for (let i = 0; i < this._workspaces.length; i++)
+ this._workspaces[i].setReservedSlot(dragEvent.dragActor._delegate);
+ for (let i = 0; i < this._extraWorkspaces.length; i++)
+ this._extraWorkspaces[i].setReservedSlot(dragEvent.dragActor._delegate);
+ }
+
let primary = global.get_primary_monitor();
let activeWorkspaceIndex = global.screen.get_active_workspace_index();
@@ -409,7 +418,6 @@ WorkspacesView.prototype = {
let switchTop = (dragEvent.y <= topEdge && topWorkspace);
if (switchTop && this._dragOverLastY != topEdge) {
topWorkspace.metaWorkspace.activate(global.get_current_time());
- topWorkspace.setReservedSlot(dragEvent.dragActor._delegate);
this._dragOverLastY = topEdge;
return DND.DragMotionResult.CONTINUE;
@@ -418,7 +426,6 @@ WorkspacesView.prototype = {
let switchBottom = (dragEvent.y >= bottomEdge && bottomWorkspace);
if (switchBottom && this._dragOverLastY != bottomEdge) {
bottomWorkspace.metaWorkspace.activate(global.get_current_time());
- bottomWorkspace.setReservedSlot(dragEvent.dragActor._delegate);
this._dragOverLastY = bottomEdge;
return DND.DragMotionResult.CONTINUE;
@@ -453,7 +460,6 @@ WorkspacesView.prototype = {
this._timeoutId = Mainloop.timeout_add_seconds(1,
Lang.bind(this, function() {
hoverWorkspace.metaWorkspace.activate(global.get_current_time());
- hoverWorkspace.setReservedSlot(dragEvent.dragActor._delegate);
return false;
}));
} else {
@@ -476,6 +482,8 @@ WorkspacesView.prototype = {
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].setReservedSlot(null);
+ for (let i = 0; i < this._extraWorkspaces.length; i++)
+ this._extraWorkspaces[i].setReservedSlot(null);
},
_swipeScrollBegin: function() {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]