diff --git a/js/ui/panel.js b/js/ui/panel.js index 3eeb12622..afae2a435 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -821,6 +821,7 @@ var Panel = new Lang.Class({ global.window_group.connect('actor-removed', Lang.bind(this, this._onWindowActorRemoved)); global.window_manager.connect('switch-workspace', Lang.bind(this, this._updateSolidStyle)); + global.screen.connect('workareas-changed', () => { this.actor.queue_relayout(); }); this._updatePanel(); }, @@ -867,7 +868,16 @@ var Panel = new Lang.Class({ let sideWidth, centerWidth; centerWidth = centerNaturalWidth; - sideWidth = Math.max(0, (allocWidth - centerWidth) / 2); + + // get workspace area and center date entry relative to it + let monitor = Main.layoutManager.findMonitorForActor(actor); + let centerOffset = 0; + if (monitor) { + let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor.index); + centerOffset = 2 * (workArea.x - monitor.x) + workArea.width - monitor.width; + } + + sideWidth = Math.max(0, (allocWidth - centerWidth + centerOffset) / 2); let childBox = new Clutter.ActorBox();