Make Focus() / Blur() reliable and let Blur() return focus to the previous app
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/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
Start by locating the platform implementations of Window::Focus(), Blur(), and IsFocused(), then inspect the Windows, Linux, and macOS focus behavior described in the issue. Done means focus changes succeed reliably across those platforms and Blur() returns focus to the previously active window or app.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Window::Focus() and Blur() follow the platforms' simplest calls and fail in common cases:
- Windows:
Focus()isSetForegroundWindow+SetFocus, which the foreground lock refuses when the app isn't in the foreground (only the taskbar flashes). Consider theAttachThreadInput/AllowSetForegroundWindowapproaches, and checkIsFocused()after focus changes. - Linux:
gtk_window_present()without a timestamp is subject to focus-stealing prevention; usegtk_window_present_with_time()with the last event time. Blur()should hand focus back to the previously active window or app. On macOS it only doesorderBack:, and on WindowsSetFocus(nullptr), which leaves the app active. Typical use: a launcher/search bar that hides and pastes into the previous app. Related: libnativeapi/nativeapi#59 (app-level hide on macOS).
Background:
- leanflutter/window_manager#364: focus() not always working, isFocused() always false (Windows)
- leanflutter/window_manager#218: focus() doesn't focus the window on Ubuntu
- leanflutter/window_manager#387: how to unfocus the window and bring back the previous one
- leanflutter/window_manager#352: focus the previous window when hiding
- 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
-
AuTest Bug Tests
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/trafficserver#13714 ·
-
bug build
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
facebookincubator/velox#19143 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
tenstorrent/tt-metal#57393 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
objectionary/eo-graphs#74 ·