From b8a9eec14f1fbb29691320bbf3520a2b5e3ab134 Mon Sep 17 00:00:00 2001 From: Mads Villadsen Date: Tue, 16 Feb 2010 22:34:57 +0100 Subject: [PATCH] Make width of workspace switcher popup dynamic Make the width of the workspace switcher dynamic in order to make it have the same proportions as the actual screen. Call redraw after adding indicator to stage to avoid warning. https://bugzilla.gnome.org/show_bug.cgi?id=610049 Signed-off-by: Adel Gadllah --- data/theme/gnome-shell.css | 3 --- js/ui/workspaceSwitcherPopup.js | 8 ++++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css index b2c816f4c..c8cd4191a 100644 --- a/data/theme/gnome-shell.css +++ b/data/theme/gnome-shell.css @@ -703,7 +703,6 @@ StTooltip { } .ws-switcher-active-left { - width: 98px; height: 98px; border: 0px; background: rgba(255,255,255,0.5); @@ -712,7 +711,6 @@ StTooltip { } .ws-switcher-active-right { - width: 98px; height: 98px; border: 0px; background: rgba(255,255,255,0.5); @@ -729,7 +727,6 @@ StTooltip { } .ws-switcher-box { - width: 96px; height: 96px; border: 2px solid rgba(85,85,85,0.5); background: transparent; diff --git a/js/ui/workspaceSwitcherPopup.js b/js/ui/workspaceSwitcherPopup.js index 655779c70..31e380f17 100644 --- a/js/ui/workspaceSwitcherPopup.js +++ b/js/ui/workspaceSwitcherPopup.js @@ -27,14 +27,17 @@ WorkspaceSwitcherPopup.prototype = { height: global.screen_height }); global.stage.add_actor(this.actor); + this._scaleWidth = global.screen_width / global.screen_height; + this._container = new St.BoxLayout({ style_class: "workspace-switcher-container" }); this._list = new St.BoxLayout({ style_class: "workspace-switcher" }); - this._redraw(); - this._container.add(this._list); + this.actor.add_actor(this._container); + this._redraw(); + this._position(); this.actor.show(); @@ -55,6 +58,7 @@ WorkspaceSwitcherPopup.prototype = { indicator = new St.Bin({ style_class: 'ws-switcher-box' }); this._list.add(indicator); + indicator.set_width(Math.round(indicator.get_height() * this._scaleWidth)); if (i < global.screen.n_workspaces - 1) { let spacer = new St.Bin({ style_class: 'ws-switcher-spacer' });