Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
XdgToplevel: don't update geometry if configure inflight
river/XdgToplevel.zig | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/river/XdgToplevel.zig b/river/XdgToplevel.zig
index 58e18c7..438794c 100644
--- a/river/XdgToplevel.zig
+++ b/river/XdgToplevel.zig
@@ -319,11 +319,11 @@ fn handleCommit(listener: *wl.Listener(*wlr.Surface), _: *wlr.Surface) void {
};
}
- const old_geometry = toplevel.geometry;
- toplevel.wlr_toplevel.base.getGeometry(&toplevel.geometry);
-
switch (toplevel.configure_state) {
.idle, .committed, .timed_out => {
+ const old_geometry = toplevel.geometry;
+ toplevel.wlr_toplevel.base.getGeometry(&toplevel.geometry);
+
const size_changed = toplevel.geometry.width != old_geometry.width or
toplevel.geometry.height != old_geometry.height;
const no_layout = view.current.output != null and view.current.output.?.layout == null;
@@ -360,6 +360,8 @@ fn handleCommit(listener: *wl.Listener(*wlr.Surface), _: *wlr.Surface) void {
// stashed buffer from when the transaction started.
.inflight => view.sendFrameDone(),
.acked, .timed_out_acked => {
+ toplevel.wlr_toplevel.base.getGeometry(&toplevel.geometry);
+
if (view.inflight.resizing) {
view.resizeUpdatePosition(toplevel.geometry.width, toplevel.geometry.height);
}