Skip to content

fix: ignore no-op stack resize grabs - #1826

Open
philip-sterne wants to merge 1 commit into
pop-os:master_noblefrom
philip-sterne:agent/no-op-stack-resize
Open

fix: ignore no-op stack resize grabs#1826
philip-sterne wants to merge 1 commit into
pop-os:master_noblefrom
philip-sterne:agent/no-op-stack-resize

Conversation

@philip-sterne

Copy link
Copy Markdown

Summary

  • Calculate resize movement from the window frame before adding stack-tab geometry.
  • Correct the unchanged-height comparison in Movement.calculate().
  • Stop a zero-motion resize grab before it can change tiling-tree ratios.

Root cause

Pop Shell records the raw window frame when a resize grab begins. For stacked windows, the grab-end path added the tab strip to the ending rectangle before comparing it with that raw starting frame. An edge click with no actual resize therefore appeared to be an upward grow operation.

The no-movement branch also compared the starting height with the ending width. Even when Movement.NONE was returned, it was accepted as valid and reached forest.resize(), where it followed the grow path.

Impact

Clicking a stack's resize edge without dragging no longer shrinks the stack or reflows neighboring tiled windows. Actual directional resize operations retain their existing behavior.

This resize-grab path is independent of #1824's DING desktop-window detection and focus handling.

Testing

  • make compile
  • Focused Movement.calculate() checks for unchanged, upward-grow, and downward-grow rectangles.
  • Logged out and back in on Ubuntu with GNOME 50 and exercised the stack layout during normal use.

@philip-sterne
philip-sterne marked this pull request as ready for review August 13, 2026 10:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant