From a0e340f06ebc471dcee1b957b531338a329c557d Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Thu, 13 Dec 2012 14:19:44 -0500 Subject: [PATCH] workspaces-view: make sure to add spacing between view and controls The thumbnail controls are not a separate actor in the overview group yet, so we need to ensure a spacing between them and the workspaces view. Instead of exporting the overview spacing, just add a temporary style class to the workspaces-view actor for it. It will be removed in the future when we change the layout of overview elements. https://bugzilla.gnome.org/show_bug.cgi?id=690174 --- data/theme/gnome-shell.css | 4 ++++ js/ui/workspacesView.js | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css index c0764fcfe..388b48eae 100644 --- a/data/theme/gnome-shell.css +++ b/data/theme/gnome-shell.css @@ -620,6 +620,10 @@ StScrollBar StButton#vhandle:active { spacing: 32px; } +.workspaces-display { + spacing: 32px; /* needs to be the same value as #overview-group */ +} + .window-caption { spacing: 25px; } diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index 00f627ba4..89eee30d4 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -437,13 +437,24 @@ const WorkspacesDisplay = new Lang.Class({ Name: 'WorkspacesDisplay', _init: function() { - this.actor = new Shell.GenericContainer(); + this.actor = new Shell.GenericContainer({ style_class: 'workspaces-display' }); this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth)); this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight)); this.actor.connect('allocate', Lang.bind(this, this._allocate)); this.actor.connect('parent-set', Lang.bind(this, this._parentSet)); this.actor.set_clip_to_allocation(true); + this._spacing = 0; + this.actor.connect('style-changed', Lang.bind(this, + function() { + let node = this.actor.get_theme_node(); + let spacing = node.get_length('spacing'); + if (spacing != this._spacing) { + this._spacing = spacing; + this._updateWorkspacesGeometry(); + } + })); + let clickAction = new Clutter.ClickAction() clickAction.connect('clicked', Lang.bind(this, function(action) { // Only switch to the workspace when there's no application @@ -854,6 +865,7 @@ const WorkspacesDisplay = new Lang.Class({ let clipY = y + (fullHeight - clipHeight) / 2; let widthAdjust = this._zoomOut ? controlsNatural : controlsVisible; + widthAdjust += this._spacing; width -= widthAdjust; if (rtl) x += widthAdjust;