From db4076b6977d9de41ccb8e73f3eb1cbe57ba0d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 3 Mar 2015 02:04:37 +0100 Subject: [PATCH] calendar: Hide message list when all sections are disallowed If none of the sections is allowed to display anything, it doesn't make sense to show the message list at all, so hide it in that case. https://bugzilla.gnome.org/show_bug.cgi?id=745494 --- js/ui/calendar.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/js/ui/calendar.js b/js/ui/calendar.js index 1c47b74e7..e325a8dc5 100644 --- a/js/ui/calendar.js +++ b/js/ui/calendar.js @@ -1730,6 +1730,8 @@ const MessageList = new Lang.Class({ this._eventsSection = new EventsSection(); this._addSection(this._eventsSection); + + Main.sessionMode.connect('updated', Lang.bind(this, this._sync)); }, _addSection: function(section) { @@ -1772,7 +1774,15 @@ const MessageList = new Lang.Class({ }, _sync: function() { - let showPlaceholder = [...this._sections.keys()].every(function(s) { + let sections = [...this._sections.keys()]; + let visible = sections.some(function(s) { + return s.allowed; + }); + this.actor.visible = visible; + if (!visible) + return; + + let showPlaceholder = sections.every(function(s) { return s.empty || !s.actor.visible; }); this._placeholder.actor.visible = showPlaceholder;