git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commit2814cad8182d27fed53f9f98d3ab13f65b634bbc
parent54e9816ca2
authortiosgz <[email protected]>
date2022-07-19 09:35
LayoutDemand: handle too many view dimensions correctly

The condition was wrong for the first extra view (0 isn't < 0), plus
the counting stopped at that moment.

 river/LayoutDemand.zig | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/river/LayoutDemand.zig b/river/LayoutDemand.zig
index 11c3295..4ad65e7 100644
--- a/river/LayoutDemand.zig
+++ b/river/LayoutDemand.zig
@@ -83,7 +83,10 @@ fn handleTimeout(layout: *Layout) callconv(.C) c_int {
 /// Push a set of proposed view dimensions and position to the list
 pub fn pushViewDimensions(self: *Self, output: *Output, x: i32, y: i32, width: u32, height: u32) void {
     // The client pushed too many dimensions
-    if (self.views < 0) return;
+    if (self.views <= 0) {
+        self.views -= 1;
+        return;
+    }
 
     // Here we apply the offset to align the coords with the origin of the
     // usable area and shrink the dimensions to accomodate the border size.