[Windows] Window positions across monitors with different scale factors
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 55/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- cpp
- Domínio
- desktop, operating-systems
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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)
- Linguagem predominante
- C++
- Estrelas
- 34
- Forks
- 7
- Merge médio
- 3d 1h
- PRs com merge (30d)
- 1
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de libnativeapi/nativeapi
-
bug
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
libnativeapi/nativeapi#81 ·
-
bug
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
libnativeapi/nativeapi#80 ·
-
bug
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
libnativeapi/nativeapi#79 ·
-
bug
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
libnativeapi/nativeapi#78 ·
-
bug
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
libnativeapi/nativeapi#77 ·
Todas as issues de libnativeapi/nativeapi
Issues semelhantes
-
ai_reviewed
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
ydb-platform/ydb#53869 · 3 comentários ·
-
bug cert blocker needs triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
project-chip/connectedhomeip#74373 ·
-
[request] tracy/0.14.1 Abertaupstream update
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
conan-io/conan-center-index#31035 ·
-
Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
documentation
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
vllm-project/vllm-ascend#17329 ·