main
dev
chore/365-cut-1.2.1
fix/363-pin-db-path
feat/351-contact-settings-menu
feat/349-window-geometry
feat/355-migration-merge
integration/290-306-335
release/1.1.2-rc.3-allplatforms
fix/309-path-len-decode
chore/298-path-logging
fix/285-ingest-timelog
fix/252-block-outgoing-dm
feat/64-observer-config
feat/batch1-ux
chore/offband-rebrand
v1.2.1
v1.2.0
v1.1.2-rc.3-allplatforms
v1.1.2-rc.3
v1.1.2-rc.2
v1.0.0
observer-g2-rc3
observer-g2-rc4
observer-g2-rc5
observer-g2-rc6
observer-g2-rc7
observer-g2-rc8
observer-g2-rc9
v1.1.0-rc.1
v1.1.0-rc.2
v1.1.0-rc.3
v1.1.2-beta.1
v1.1.2-beta.2
v1.1.2-beta.3
v1.1.2-ble-test
v1.1.2-queuediag
v1.1.2-rc.1
v1.1.2-rc.1-b45-nearbyrep
v1.1.2-rc.1-b46-pathhash
v1.1.2-rc.1-b47-tracewidth
v1.1.2-rc.1-b48-repeatertrace
v1.1.2-rc.1-b49-maptrace
v1.1.2-rc.1-b50-tracefix
v1.1.2-rc.1-b51-originstrip
v1.1.2-rc.1-b52-channelqr
v1.1.2-rc.1-b53-viarepeater
v1.1.2-rc.1-b54-rxfed
v1.1.2-rc.1-b55-topology
v1.1.2-rc.1-b57-routeux
v1.1.2-rc.1-b58-toporeadout
v1.1.2-rc.3-b59-pathlen
${ noResults }
2 Commits (4ab744ddfe921ea16fc7ae73dee596325fb883c4)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
615c0ed3b5 |
fix(#349): address Gemini review of window geometry
Three findings from the adversarial review (standards#145), all real, all fixed: - Move-then-close inside the 400ms debounce lost the final position. The service now setPreventClose(true) and saves on onWindowClose before destroying the window, so the closing frame is always persisted. - _isReachable mixed a display's visible ORIGIN with its total SIZE when visibleSize was null, producing a rect offset from the real area. It now uses the visible pair when both are known, else the total pair. Negative visiblePosition (a monitor left of/above primary) is handled by intersect(). - The window listener and debounce timer are now released in onWindowClose. flutter analyze clean, dart format clean, 509 tests pass. |
20 hours ago |
|
|
07ccd28afd |
feat(#349): persist and restore desktop window geometry
The stock Flutter desktop runner never saved the window frame, so the window always reopened at a default position and size (#349). Adds WindowGeometryService (window_manager + screen_retriever): it saves the frame on move/resize, debounced, and restores it on launch. Restore is clamped against the connected displays. A window last placed on a monitor that is now unplugged must not reopen off-screen where it cannot be grabbed; if the saved frame does not overlap any display by at least 80px on both axes it is discarded and the window opens at the default. A too-small or undecodable saved value also falls through to the default (logged, not swallowed). Gated on PlatformInfo.isDesktop, so it is a no-op on mobile and web. Scoped past just Windows deliberately: window_manager is desktop-only and the same gap exists on Linux/macOS, so all three get the fix rather than Windows needing an extra guard. Known limitation, not addressed here: without a native runner change to start the window hidden, restore repositions AFTER the window is shown, so there can be a brief flash at the default position before it jumps to the saved frame. Eliminating that needs a windows/runner edit; flagged for the owner to judge during hardware test. flutter analyze clean, dart format clean, tests pass. Windows-run verification is the owner's (geometry is a real-desktop behaviour). |
20 hours ago |