Skip to content

Feat: live resize - neighboring tiled windows resize in real time during mouse drag #511

@AbdulMateenzwl

Description

@AbdulMateenzwl

Description

Problem

When resizing a tiled window by dragging its corner, neighboring tiled windows
do not update their size until the mouse button is released. This creates a
jarring, non-continuous experience - the layout "jumps" into place only after
the drag ends.

Expected Behavior

Neighboring windows should resize in real time as you drag, similar to how
tiling window managers like Hyprland handle it - when you drag a window
edge, all adjacent windows fluidly adjust their size continuously as you move
the mouse.

Current Behavior

  • Drag window corner → only the dragged window resizes live
  • Neighboring tiled windows stay frozen at their original size
  • On mouse release → all neighbors snap/jump to their new positions instantly

Root Cause

On Wayland, Mutter suppresses size-changed and position-changed signals
during an active grab operation. The existing _handleResizing function
correctly calculates new size percentages for neighbors, but it was never
called during the drag - only on grab-op-end.

Additionally, this.move() has a metaWindow.grabbed guard that returns early
for all windows during a Wayland grab, so even if percentages were updated,
moving neighbors was blocked.

here is a example how it should actually work

Screencast.From.2026-03-13.22-38-24.mp4

As shown in the video, I have already worked on it and tested the changes on Wayland and X11, time to merge it

Alternatives I've considered

No response

Design / Screenshots / Mockups

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions