[Windows] Window positions across monitors with different scale factors
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 55/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- cpp
- Bereich
- desktop, operating-systems
Rechercherichtung
Locate the C++ implementations of Window::GetPosition(), SetPosition(), the bounds calls, and DisplayManager's display bounds handling. Trace the existing GetScaleFactorForWindow conversion and WM_DPICHANGED behavior; done means positions and sizes remain consistent when saving, restoring, or moving windows between monitors with different scale factors.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
On Windows, Window::GetPosition() / SetPosition() (and the bounds calls) convert between logical and physical pixels with the scale factor of the monitor the window is currently on (GetScaleFactorForWindow). With monitors at different scale factors, the same logical point maps to different physical points depending on where the window is. Saving a position on one monitor and restoring it (or restoring on another monitor) puts the window in the wrong place or makes it the wrong size.
Expected: one global coordinate space that matches DisplayManager's display bounds. That means converting with the scale factor of the monitor that contains the target point, and handling the WM_DPICHANGED resize that follows a move across monitors.
Background:
- leanflutter/window_manager#474: getPosition/setPosition wrong with multiple scaled screens (also #448, #536, #589)
- Vorherrschende Sprache
- C++
- Sterne
- 34
- Forks
- 7
- Ø Merge
- 3 T. 1 Std.
- Gemergte PRs (30 T.)
- 1
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus libnativeapi/nativeapi
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
libnativeapi/nativeapi#81 ·
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
libnativeapi/nativeapi#80 ·
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
libnativeapi/nativeapi#79 ·
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
libnativeapi/nativeapi#78 ·
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
libnativeapi/nativeapi#77 ·
Alle Issues in libnativeapi/nativeapi
Ähnliche Issues
-
ai_reviewed
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
ydb-platform/ydb#53869 · 3 Kommentare ·
-
bug cert blocker needs triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
project-chip/connectedhomeip#74373 ·
-
[request] tracy/0.14.1 Offenupstream update
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
conan-io/conan-center-index#31035 ·
-
Bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
documentation
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
vllm-project/vllm-ascend#17329 ·