Frontmatter
| id | 7847 |
| title | Enhance WindowPosition Addon with Adaptive Tracking |
| state | Closed |
| labels | enhancementstaleai |
| assignees | [] |
| createdAt | Nov 21, 2025, 8:23 PM |
| updatedAt | Mar 7, 2026, 4:27 AM |
| githubUrl | https://github.com/neomjs/neo/issues/7847 |
| author | tobiu |
| commentsCount | 3 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Mar 7, 2026, 4:27 AM |
Enhance WindowPosition Addon with Adaptive Tracking
tobiu cross-referenced by #7846 on Nov 21, 2025, 8:23 PM

tobiu
Nov 21, 2025, 8:29 PM
Input from Gemini 2.5:
✦ Architecture Update:
The user has provided a "Heuristic Tracking" strategy to further optimize the polling mechanism. We will implement this inside
Neo.main.addon.WindowPosition.Logic:
- Blur: Stop all tracking (Idle).
- Focus (Content): Slow polling (1Hz) to catch keyboard shortcuts (Win+Arrows) or non-mouse movements.
- MouseOut (Top): Fast polling (rAF) because the user likely grabbed the title bar.
- MouseEnter: Revert to Slow polling.
This replaces the simpler "Focus=Fast" logic originally proposed.
@github-actions - 2026-02-20T03:42:14Z
This issue is stale because it has been open for 90 days with no activity.
- 2026-02-20T03:42:15Z @github-actions added the
stalelabel
@github-actions - 2026-03-07T03:27:46Z
This issue was closed because it has been inactive for 14 days since being marked as stale.
- 2026-03-07T03:27:47Z @github-actions closed this issue
Refactor
src/main/addon/WindowPosition.mjsto support high-frequency, adaptive position tracking. This replaces the legacymouseoutpolling with a robustfocus/blurstrategy, enabling real-time window tracking for the "Infinite Canvas" feature.Tasks:
startTracking()(onfocus) andstopTracking()(onblur) methods.window.screenX/YandouterWidth/Height.windowPositionChangemessages to the App Worker if the values have effectively changed.mouseoutlogic to rely on this new, more reliable strategy.Neo.config).Note: This enhancement is the "Client-Side Reporter" for the multi-window coordinate system.