workspacesView: Fix graphical glitches with windows appearing for a split-second

When we were knocking off workspace height to fix the ratio problems, we
weren't adding spacing in between workspaces, so they smooshed up against
each other whenever we took height off, causing them to be visible.
This commit is contained in:
Jasper St. Pierre 2011-03-17 09:37:55 -04:00 committed by Adel Gadllah
parent 6bb5cdeb2f
commit f259162d64

View File

@ -51,6 +51,7 @@ WorkspacesView.prototype = {
this._height = 0; this._height = 0;
this._x = 0; this._x = 0;
this._y = 0; this._y = 0;
this._workspaceRatioSpacing = 0;
this._spacing = 0; this._spacing = 0;
this._lostWorkspaces = []; this._lostWorkspaces = [];
this._animating = false; // tweening this._animating = false; // tweening
@ -124,7 +125,7 @@ WorkspacesView.prototype = {
this._swipeScrollEndId = 0; this._swipeScrollEndId = 0;
}, },
setGeometry: function(x, y, width, height) { setGeometry: function(x, y, width, height, spacing) {
if (this._x == x && this._y == y && if (this._x == x && this._y == y &&
this._width == width && this._height == height) this._width == width && this._height == height)
return; return;
@ -132,6 +133,7 @@ WorkspacesView.prototype = {
this._height = height; this._height = height;
this._x = x; this._x = x;
this._y = y; this._y = y;
this._workspaceRatioSpacing = spacing;
for (let i = 0; i < this._workspaces.length; i++) for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].setGeometry(x, y, width, height); this._workspaces[i].setGeometry(x, y, width, height);
@ -200,7 +202,7 @@ WorkspacesView.prototype = {
Tweener.removeTweens(workspace.actor); Tweener.removeTweens(workspace.actor);
let opacity = (this._inDrag && w != active) ? 200 : 255; let opacity = (this._inDrag && w != active) ? 200 : 255;
let y = (w - active) * (this._height + this._spacing); let y = (w - active) * (this._height + this._spacing + this._workspaceRatioSpacing);
if (showAnimation) { if (showAnimation) {
let params = { y: y, let params = { y: y,
@ -763,9 +765,10 @@ WorkspacesDisplay.prototype = {
} }
height = (fullHeight / fullWidth) * width; height = (fullHeight / fullWidth) * width;
y += (fullHeight - height) / 2; let difference = fullHeight - height;
y += difference / 2;
this.workspacesView.setGeometry(x, y, width, height); this.workspacesView.setGeometry(x, y, width, height, difference);
}, },
_onRestacked: function() { _onRestacked: function() {