Make Focus() / Blur() reliable and let Blur() return focus to the previous app
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- cpp
- Domaine
- desktop, operating-systems
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- C++
- Étoiles
- 34
- Forks
- 7
- Merge moyen
- 3 j 1 h
- PR mergées (30 j)
- 1
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de libnativeapi/nativeapi
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
libnativeapi/nativeapi#81 ·
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
libnativeapi/nativeapi#80 ·
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
libnativeapi/nativeapi#79 ·
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
libnativeapi/nativeapi#78 ·
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
libnativeapi/nativeapi#77 ·
Toutes les issues de libnativeapi/nativeapi
Issues similaires
-
AuTest Bug Tests
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
apache/trafficserver#13714 ·
-
bug build
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
facebookincubator/velox#19143 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
tenstorrent/tt-metal#57393 · 1 commentaire ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
objectionary/eo-graphs#74 ·