Skip to content

fix(raise): activation fenêtre-seule — le raise ramenait toutes les fenêtres de l'app - #39

Merged
Destynova2 merged 2 commits into
mainfrom
fix/raise-window-only
Jul 6, 2026
Merged

Destynova2 merged 2 commits into
mainfrom
fix/raise-window-only

Conversation

@Destynova2

Copy link
Copy Markdown
Contributor

Symptôme : sélectionner/exposer une fenêtre cible ramène toutes les fenêtres du même logiciel au premier plan, sur tous les écrans.

Cause : le chemin Raise (raise_element, expose_target_window, préparation des commandes de menu) faisait suivre l'AXRaise fenêtre-scopé d'un borrow_target_frontmost → osascript set frontmost of targetProcess to true — activation au niveau processus, dont la sémantique macOS remonte toutes les fenêtres de l'app. Le même piège avait déjà été retiré de set_focused_field_text (le commentaire du code documentait exactement ce comportement) mais restait dans le raise.

Fix : NSRunningApplication::activateWithOptions sans NSApplicationActivateAllWindows, après l'AXRaise qui a rendu la fenêtre cible key — seule celle-ci remonte. borrow_target_frontmost reste en place pour select_file, où l'activation complète est voulue (dialogue de fichiers).

Validation : clippy -D warnings propre, 235 tests verts, fmt OK. Le comportement fenêtre-seule est observable en live : expose_target_window sur une app à deux fenêtres ne doit plus remonter la seconde.

…enêtres de l'app

Le chemin Raise (raise_element, expose_target_window, préparation des
commandes de menu) faisait suivre l'AXRaise fenêtre-scopé d'un osascript
« set frontmost of process to true » : activation processus qui remonte
toutes les fenêtres de l'app, sur tous les écrans, par-dessus le premier
plan de l'utilisateur. Remplacé par NSRunningApplication
activateWithOptions sans NSApplicationActivateAllWindows : seule la
fenêtre key (celle de l'AXRaise) remonte. Même piège déjà retiré de
set_focused_field_text ; borrow_target_frontmost reste en place pour le
sélecteur de fichiers où l'activation complète est voulue.
@Destynova2
Destynova2 enabled auto-merge (squash) July 6, 2026 18:34
@Destynova2
Destynova2 merged commit 53c58e5 into main Jul 6, 2026
19 checks passed
@Destynova2
Destynova2 deleted the fix/raise-window-only branch July 6, 2026 19:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant