kiapanahi / kiapanahi/KuriousLabs.WindowsTilingWindowManager

Implement drag-to-swap with a click-through preview overlay

Open
#20 0 comments 0 reactions 0 assignees View on GitHub
area:win32 type:feature
Dominant language
C#
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Problem / goal

Implement drag-to-swap: dragging a tiled window over another shows a preview of the resulting swap and re-tiles once the drag ends.

## References

- `DESIGN.md` §7 (Input & Focus, Drag-to-swap paragraph) — `EVENT_SYSTEM_MOVESIZESTART`/`END` bracket the drag; a WM-owned click-through highlight window (`WS_EX_LAYERED|WS_EX_TRANSPARENT|WS_EX_NOACTIVATE` + `SetLayeredWindowAttributes`) previews the drop tile; re-tile happens once on MOVESIZEEND via a Defer batch.
- Depends on the WinEvent ingest pump issue (source of MOVESIZESTART/END) and the Placement Executor issue (the Defer batch mechanism reused here).

## Acceptance criteria

- [ ] A drag gesture is bracketed by `EVENT_SYSTEM_MOVESIZESTART`/`END` (consumed from the existing WinEvent ingest pump, not a second hook).
- [ ] A layered, click-through, non-activating overlay window previews the candidate drop tile during the drag.
- [ ] Exactly one re-tile Defer batch is issued on `MOVESIZEEND`, not continuously during the drag.

Contributor guide

Open the contributing guide

Research direction

Start with DESIGN.md §7, then read the existing WinEvent ingest pump and Placement Executor work referenced by the issue. Trace how MOVESIZESTART/END are consumed and how the Defer batch is reused. Done means a click-through preview appears during the drag and exactly one re-tile batch runs on MOVESIZEEND.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.