layout: Skip strut computation in the no-monitor case
It's possible for updateRegions() to be called before monitors have been properly initialized. Instead of throwing an error in that case, just skip the strut computation (that doesn't make sense anyway without a monitor). https://bugzilla.gnome.org/show_bug.cgi?id=781471
This commit is contained in:
parent
1ba014d9db
commit
4e57b45142
@ -969,7 +969,11 @@ const LayoutManager = new Lang.Class({
|
|||||||
if (actorData.affectsInputRegion && wantsInputRegion && actorData.actor.get_paint_visibility())
|
if (actorData.affectsInputRegion && wantsInputRegion && actorData.actor.get_paint_visibility())
|
||||||
rects.push(new Meta.Rectangle({ x: x, y: y, width: w, height: h }));
|
rects.push(new Meta.Rectangle({ x: x, y: y, width: w, height: h }));
|
||||||
|
|
||||||
if (actorData.affectsStruts) {
|
let monitor = null;
|
||||||
|
if (actorData.affectsStruts)
|
||||||
|
monitor = this.findMonitorForActor(actorData.actor);
|
||||||
|
|
||||||
|
if (monitor) {
|
||||||
// Limit struts to the size of the screen
|
// Limit struts to the size of the screen
|
||||||
let x1 = Math.max(x, 0);
|
let x1 = Math.max(x, 0);
|
||||||
let x2 = Math.min(x + w, global.screen_width);
|
let x2 = Math.min(x + w, global.screen_width);
|
||||||
@ -986,7 +990,6 @@ const LayoutManager = new Lang.Class({
|
|||||||
// spans the width/height across the middle of the
|
// spans the width/height across the middle of the
|
||||||
// screen, then we don't create a strut for it at all.
|
// screen, then we don't create a strut for it at all.
|
||||||
|
|
||||||
let monitor = this.findMonitorForActor(actorData.actor);
|
|
||||||
let side;
|
let side;
|
||||||
if (x1 <= monitor.x && x2 >= monitor.x + monitor.width) {
|
if (x1 <= monitor.x && x2 >= monitor.x + monitor.width) {
|
||||||
if (y1 <= monitor.y)
|
if (y1 <= monitor.y)
|
||||||
|
Loading…
Reference in New Issue
Block a user