[gnome-shell] Clip workspace area in grid view
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] Clip workspace area in grid view
- Date: Mon, 1 Mar 2010 18:33:25 +0000 (UTC)
commit 21641d892508ea651e419cb10c89c8e3e24af92c
Author: Florian Müllner <fmuellner src gnome org>
Date: Wed Feb 17 02:53:18 2010 +0100
Clip workspace area in grid view
When workspaces slide in/out in mosaic view, they may cross with the
workspace controls, which looks pretty weird.
Also adjust the vertical spacing in the grid view so that the grid height
matches the workspace height in the linear view.
https://bugzilla.gnome.org/show_bug.cgi?id=610350
js/ui/workspacesView.js | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index 5f03607..f87211c 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -275,6 +275,10 @@ MosaicView.prototype = {
GenericWorkspacesView.prototype._init.call(this, width, height, x, y, animate);
this.actor.style_class = "workspaces mosaic";
+ this._actor.set_clip(x - Workspace.FRAME_SIZE,
+ y - Workspace.FRAME_SIZE,
+ width + 2 * Workspace.FRAME_SIZE,
+ height + 2 * Workspace.FRAME_SIZE);
this._workspaces[global.screen.get_active_workspace_index()].setSelected(true);
this._removeButton = null;
@@ -295,8 +299,12 @@ MosaicView.prototype = {
let gridWidth = Math.ceil(Math.sqrt(this._workspaces.length));
let gridHeight = Math.ceil(this._workspaces.length / gridWidth);
+ // adjust vertical spacing so workspaces can preserve their aspect
+ // ratio without exceeding this._height
+ let verticalSpacing = this._spacing * this._height / this._width;
+
let wsWidth = (this._width - (gridWidth - 1) * this._spacing) / gridWidth;
- let wsHeight = (this._height - (gridHeight - 1) * this._spacing) / gridHeight;
+ let wsHeight = (this._height - (gridHeight - 1) * verticalSpacing) / gridHeight;
let scale = wsWidth / global.screen_width;
let span = 1, n = 0, row = 0, col = 0, horiz = true;
@@ -308,7 +316,7 @@ MosaicView.prototype = {
workspace.gridCol = col;
workspace.gridX = this._x + workspace.gridCol * (wsWidth + this._spacing);
- workspace.gridY = this._y + workspace.gridRow * (wsHeight + this._spacing);
+ workspace.gridY = this._y + workspace.gridRow * (wsHeight + verticalSpacing);
workspace.scale = scale;
if (horiz) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]