From 023b50e7a7002226d6176bede22930d96da074a9 Mon Sep 17 00:00:00 2001 From: Mario Sanchez Prada Date: Tue, 26 Sep 2017 11:03:33 +0100 Subject: [PATCH] messageTray: Check monitor's existence before trying to update the state Not doing this will throw a backtrace when running on headless mode and trying to show a notification, due to Main.layoutManager.primaryMonitor being undefined, so it's better to return early. https://bugzilla.gnome.org/show_bug.cgi?id=730551 --- js/ui/messageTray.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 4704073eb..73e67ebbc 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -1205,8 +1205,9 @@ var MessageTray = new Lang.Class({ // _updateState() figures out what (if anything) needs to be done // at the present time. _updateState: function() { - this.actor.visible = !this._bannerBlocked && this._banner != null; - if (this._bannerBlocked) + let hasMonitor = Main.layoutManager.primaryMonitor != null; + this.actor.visible = !this._bannerBlocked && hasMonitor && this._banner != null; + if (this._bannerBlocked || !hasMonitor) return; // If our state changes caused _updateState to be called,