atagen

monolith

public
Star0
Watch0

Commit b4b7a4a30098

tarball

atagen <boss@atagen.co>2026-10-19 10:59 UTC

1 file changed+4-1
state: skip the scale walk while dragging

apply_layout runs once per pointer motion during a drag, and send_scales visits every surface of every window, layer and lock surface each time. A drag clamps its window to the output it is on, so nothing the walk reports can have changed until the release runs apply_layout again.
Modified file: crates/monolith/src/state.rs+4 additions−1 deletions
@@ -474,7 +474,10 @@ impl State {
474474 self.sync_focus();
475475 self.follow_focus();
476476 self.update_inhibit();
477- self.send_scales();
477+ // Drags clamp windows to their own output, so no scale can have changed.
478+ if self.input.drag.is_none() {
479+ self.send_scales();
480+ }
478481 self.dirty.redraw = true;
479482 self.dirty.snapshot = true;
480483 }