Skip to content

App Layout restore clears Stash tracking after stashRight/stashDown action #890

Description

@DMcCoder

Description

When restoring an App Layout that contains stashed windows, the windows are moved back into their correct stash positions, but the slide-out behavior no longer works.

Running the same stash keyboard shortcut manually after the layout restore fixes the issue.

It appears the layout restore successfully applies the stash action and starts cursor tracking, but a following manual action clears the stash state.

Environment

  • Rectangle Pro: v3.80 (225)
  • macOS: 26.5.1 (Build 25F80)
  • Hardware: Apple Silicon MacBook Pro
  • Display: Samsung Odyssey G95SD (5120x1440)

Steps to reproduce

  1. Arrange multiple application windows
  2. Use Rectangle Pro stash shortcuts:
    • Stash Right
    • Stash Down
  3. Save the arrangement as an App Layout
  4. Restore the App Layout
  5. Move cursor to stash edge

Expected behavior

The restored stashed windows should slide out when hovering over the stash area.

Actual behavior

The windows are moved to the correct stash locations, but they do not slide out.

Running the stash shortcut again on the affected window restores the expected slide-out behavior.

Relevant logs

The log appears to show:

stashRight/stashDown -> cursor tracking starts -> manual action executes -> cursor tracking stops

Rectangle Pro v3.80 (225)
macOS: Version 26.5.1 (Build 25F80)
Model: MacBook Pro Apple Silicon
Display: Odyssey G95SD 5120x1440

2026-06-12T07:44:13-06:00:
Layouts: started layout: Dev - Chat

2026-06-12T07:44:13-06:00:
Layouts: 11 windows, 10 unique PIDs with windows


--- Stash Right example ---

2026-06-12T07:44:13-06:00:
LayoutState: Applying window action

2026-06-12T07:44:13-06:00:
Execute action: stashRight, source: keyboardShortcut

2026-06-12T07:44:13-06:00:
Stashing window ID: ### to location: stashRight

2026-06-12T07:44:13-06:00:
AX position proposed: (5119.0, 30.0), result: (5119.0, 30.0)

2026-06-12T07:44:13-06:00:
Starting cursor tracking (stashed count: 1) ✅

2026-06-12T07:44:13-06:00:
Execute action: manual, source: keyboardShortcut ⁉️

2026-06-12T07:44:13-06:00:
Stopping cursor tracking (menu open: false, stashed count: 0) ‼️

2026-06-12T07:44:13-06:00:
LayoutState: indexAndApply completed,
Windows applied: 1,
Windows stashed: 0,
Windows remaining: 0


--- Stash Down example ---

2026-06-12T07:44:13-06:00:
Execute action: stashDown, source: keyboardShortcut

2026-06-12T07:44:13-06:00:
Stashing window ID: ### to location: stashDown

2026-06-12T07:44:13-06:00:
AX position proposed: (5119.0, 1439.0),
result: (5119.0, 1408.0)

2026-06-12T07:44:13-06:00:
Starting cursor tracking (stashed count: 1) ✅

2026-06-12T07:44:13-06:00:
Execute action: manual, source: keyboardShortcut ⁉️

2026-06-12T07:44:13-06:00:
Stopping cursor tracking (menu open: false, stashed count: 0) ‼️

2026-06-12T07:44:13-06:00:
LayoutState: indexAndApply completed,
Windows applied: 1,
Windows stashed: 0,
Windows remaining: 0


--- Layout completion ---

2026-06-12T07:44:13-06:00:
Layouts: Bringing 1 windows forward for spec: Stash Right

2026-06-12T07:44:13-06:00:
Layouts: Bringing 1 windows forward for spec: Stash Down

2026-06-12T07:44:13-06:00:
Layouts: completed - Total windows applied: 7

Notes

The App Layout appears to save the stash actions correctly because stashRight and stashDown are executed during restore.

The issue appears to happen after the stash action succeeds, when the stash tracking state is cleared before the layout restore completes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions