[Windows] Window positions across monitors with different scale factors
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- cpp
- Área
- desktop, operating-systems
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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)
- Lenguaje dominante
- C++
- Estrellas
- 34
- Forks
- 7
- Merge medio
- 3 d 1 h
- PR fusionados (30 d)
- 1
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de libnativeapi/nativeapi
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
libnativeapi/nativeapi#81 ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
libnativeapi/nativeapi#80 ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
libnativeapi/nativeapi#79 ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
libnativeapi/nativeapi#78 ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
libnativeapi/nativeapi#77 ·
Todos los issues de libnativeapi/nativeapi
Issues similares
-
AuTest Bug Tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
apache/trafficserver#13714 ·
-
bug build
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
facebookincubator/velox#19143 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
tenstorrent/tt-metal#57393 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
objectionary/eo-graphs#74 ·