From aba3336b51dcb029acc856377db3c952b2c8a8a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 21 Jan 2020 16:36:56 +0100 Subject: [PATCH] dateMenu: Bind pad visibility to indicator Currently the indicator pad requests a size of 0x0 if the corresponding indicator is hidden. Right now this is enough to balance out the indicator, but it won't be when we add spacing to the parent container. Properly hide the pad with the indicator to avoid that issue. https://gitlab.gnome.org/GNOME/gnome-shell/issues/239 --- js/ui/dateMenu.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/js/ui/dateMenu.js b/js/ui/dateMenu.js index 1fd6ccdbc..690d30f4b 100644 --- a/js/ui/dateMenu.js +++ b/js/ui/dateMenu.js @@ -473,21 +473,19 @@ var IndicatorPad = GObject.registerClass( class IndicatorPad extends St.Widget { _init(actor) { this._source = actor; - this._source.connect('notify::visible', () => this.queue_relayout()); this._source.connect('notify::size', () => this.queue_relayout()); super._init(); + this._source.bind_property('visible', + this, 'visible', + GObject.BindingFlags.SYNC_CREATE); } vfunc_get_preferred_width(forHeight) { - if (this._source.visible) - return this._source.get_preferred_width(forHeight); - return [0, 0]; + return this._source.get_preferred_width(forHeight); } vfunc_get_preferred_height(forWidth) { - if (this._source.visible) - return this._source.get_preferred_height(forWidth); - return [0, 0]; + return this._source.get_preferred_height(forWidth); } });