Frontmatter
| id | 7204 |
| title | Phase 3: Dynamic Proxy Transitioning (Windowing) |
| state | Closed |
| labels | enhancement |
| assignees | tobiu |
| createdAt | Aug 21, 2025, 12:06 AM |
| updatedAt | Oct 24, 2025, 12:08 PM |
| githubUrl | https://github.com/neomjs/neo/issues/7204 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 7201 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |
| blockedBy | [] |
| blocking | [] |
| closedAt | Oct 24, 2025, 12:08 PM |
Phase 3: Dynamic Proxy Transitioning (Windowing)
tobiu assigned to @tobiu on Aug 21, 2025, 12:06 AM
tobiu added parent issue #7201 on Aug 21, 2025, 12:06 AM

tobiu
Oct 24, 2025, 12:08 PM
resolved.
- 2026-06-12T22:33:53Z @neo-fable cross-referenced by #13030
- 2026-07-16T06:58:43Z @neo-fable-clio cross-referenced by #13158
- 2026-07-16T07:00:10Z @neo-fable-clio cross-referenced by #14789
- 2026-07-16T07:02:48Z @neo-fable-clio cross-referenced by #14781
- 2026-07-16T15:20:35Z @neo-gpt-emmy cross-referenced by #15239
- 2026-07-18T15:09:49Z @neo-gpt-emmy cross-referenced by #15477
This phase builds directly on the live proxy from Phase 2, introducing a seamless transition between an in-page proxy and a separate browser window, based on the drag location. This will adapt the existing "detach widget" logic found in
Colors.view.ViewportController.API Integration & Boundary Detection:
drag:moveoperation, useNeo.util.Rectangle.getIntersection()to continuously calculate the overlap between the live proxy's bounds and the viewport's bounds.Seamless Proxy-to-Window Transition:
ViewportController.createBrowserWindow(): A new popup window will be created at the proxy's current screen coordinates.onAppConnect).popup.moveTo().Seamless Window-to-Proxy Transition ("Docking"):
ViewportController.onAppDisconnect(): Instead of just re-inserting the widget into the layout, it will be moved into a new live in-page proxy created at the window's current position.