layout: Unset primary and bottom monitor when headless

We were handling being initially headless by only setting the primary
and bottom monitor if there was any primary monitor, then checking the
primary monitor reference before making calls assuming there was any
monitors.

What we didn't do was unset the primary and bottom monitor when going
headless, meaning that temporarly disconnecting a monitor while having
windows open caused an assert to be triggered due to various code paths
taking the path assuming there are valid monitors.

Unsetting both the primary and bottom monitor when going headless avoids
the code paths in the same way as they were avoided when starting
headless.

https://bugzilla.gnome.org/show_bug.cgi?id=788607
This commit is contained in:
Jonas Ådahl 2017-10-06 20:26:24 -04:00
parent fa8523db1e
commit db43c45b12

View File

@ -351,6 +351,9 @@ var LayoutManager = new Lang.Class({
this._loadBackground(); this._loadBackground();
this._pendingLoadBackground = false; this._pendingLoadBackground = false;
} }
} else {
this.primaryMonitor = null;
this.bottomMonitor = null;
} }
}, },