layer_shell: Guard against negative exclusive zone

This can happen with surfaces that set negative margins.
This commit is contained in:
Sebastian Krzyszkowiak 2019-08-12 01:18:24 +02:00 committed by Drew DeVault
parent 6200ecbc1d
commit 8bd3b7be8a

View file

@ -68,7 +68,7 @@ static void apply_exclusive(struct wlr_box *usable_area,
}, },
}; };
for (size_t i = 0; i < sizeof(edges) / sizeof(edges[0]); ++i) { for (size_t i = 0; i < sizeof(edges) / sizeof(edges[0]); ++i) {
if ((anchor & edges[i].anchors) == edges[i].anchors) { if ((anchor & edges[i].anchors) == edges[i].anchors && exclusive + edges[i].margin > 0) {
if (edges[i].positive_axis) { if (edges[i].positive_axis) {
*edges[i].positive_axis += exclusive + edges[i].margin; *edges[i].positive_axis += exclusive + edges[i].margin;
} }