IPB

Bienvenue invité ( Connexion | Inscription )

> La fenêtre active perd le focus
Options
pimentpub
posté 29 Jul 2022, 10:34
Message #1


Adepte de Macbidouille
*

Groupe : Membres
Messages : 43
Inscrit : 26 May 2008
Membre no 114 865



Bonjour.

J'ai un Mac mini 2018 - OSX MONTERY 12.5 - J'ouvre une application, exemple TexEdit, j'ai mon application qui fonctionne et j'ai une fenêtre, la fenêtre active commence à perdre le focus de manière aléatoire - la fenêtre active devient légèrement grisée et je dois cliquer à nouveau dessus !

Donc la fenêtre active perd le focus.

Pas de changement avec ONYX et PRAM… ça recommence après quelques jours le problème.

Une solution sans avoir à réinstaller OSX ?

J'ai un script qui fonctionne en Python 2 pour OSX 10.12.6 mais pas avec OSX MONTERY 12.5.…

Ce script sert a savoir en tache de fond le dernier programme qui s'active.

Je ne suis pas programmeur pour que cela fonctionne avec Python3.

Code
#!/usr/bin/python                                                                                                      

try:
    from AppKit import NSWorkspace
except ImportError:
    print "Can't import AppKit -- maybe you're running python from brew?"
    print "Try running with Apple's /usr/bin/python instead."
    exit(1)

from datetime import datetime
from time import sleep

last_active_name = None
while True:
    active_app = NSWorkspace.sharedWorkspace().activeApplication()
    if active_app['NSApplicationName'] != last_active_name:
        last_active_name = active_app['NSApplicationName']
        print '%s: %s [%s]' % (
            datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
            active_app['NSApplicationName'],
            active_app['NSApplicationPath']
        )
    sleep(1)


Ce message a été modifié par pimentpub - 29 Jul 2022, 10:37.
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
Krazubu
posté 29 Jul 2022, 14:24
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 3 544
Inscrit : 5 Sep 2005
Membre no 45 266



Pour faire fonctionner ton script, la syntaxe de "print" a changé avec python 3, il faut rajouter des parenthèses, ça donne ça :
Code
#!/usr/bin/python                                                                                                      

try:
    from AppKit import NSWorkspace
except ImportError:
    print("Can't import AppKit -- maybe you're running python from brew?")
    print("Try running with Apple's /usr/bin/python instead.")
    exit(1)

from datetime import datetime
from time import sleep

last_active_name = None
while True:
    active_app = NSWorkspace.sharedWorkspace().activeApplication()
    if active_app['NSApplicationName'] != last_active_name:
        last_active_name = active_app['NSApplicationName']
        print('%s: %s [%s]' % (
            datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
            active_app['NSApplicationName'],
            active_app['NSApplicationPath']
        ))
    sleep(1)

Il faudra ensuite installer une dépendance pour que le script fonctionne, voir ici : https://developer.apple.com/forums/thread/702611

Citation (baron @ 29 Jul 2022, 15:16) *
L'application qui, comme tu dis « prend le focus », ce n'est pas simplement celle qui apparaît dans la barre des menus ? huh.gif
Ou alors je n'ai rien compris… unsure.gif

Hélas c'est un vieux talon d'Achille de macOS qui me gonfle depuis des années, la gestion du focus est complètement anarchique.
On le voit particulièrement au lancement de l'OS quand toutes les apps se réveillent. Il m'arrive parfois de ne pas patienter, et de commencer à taper quelque part. Je dois alors re-cliquer 1 fois, 2… 3… 5 fois sur ma fenêtre qui n'arrête pas de se désactiver.
Au delà de l'aspect peu pratique (ex : on est en tranquillement en train de taper dans une app et tout à coup une autre vole le focus et on tape dans le vide…), c'est carrément un trou béant de sécurité puisque n'importe quelle app peut voler le focus à n'importe qui, n'importe quand. On imagine facilement une petite app qui aurait le don de s'imposer pile au moment où on est sur le point de taper son mot de passe…

Ce message a été modifié par Krazubu - 29 Jul 2022, 14:25.
Go to the top of the page
 
+Quote Post

Les messages de ce sujet
- pimentpub   La fenêtre active perd le focus   29 Jul 2022, 10:34
- - MacGregor74   Citation (pimentpub @ 29 Jul 2022, 11:34)...   29 Jul 2022, 13:03
- - pimentpub   A savoir qu'elle est le programme qui vient en...   29 Jul 2022, 13:10
|- - MacGregor74   Citation (pimentpub @ 29 Jul 2022, 14:10)...   29 Jul 2022, 13:28
- - baron   L'application qui, comme tu dis « prend le fo...   29 Jul 2022, 14:16
- - Krazubu   Pour faire fonctionner ton script, la syntaxe de ...   29 Jul 2022, 14:24
|- - baron   Citation (Krazubu @ 29 Jul 2022, 15:24) [...   29 Jul 2022, 14:37
|- - pimentpub   Citation (Krazubu @ 29 Jul 2022, 15:24) H...   29 Jul 2022, 15:01
- - Anibé   Salut ! Dois-je comprendre que le problème vi...   30 Jul 2022, 22:01
- - Sirix1995   Ce n'est pas forcément le cas, non. J'ai ...   31 Jul 2022, 13:26
- - Krazubu   Eh oui c'est exactement le type de comportemen...   31 Jul 2022, 16:17
- - jumera   Bonjour Citation (Sirix1995 @ 31 Jul 2022, 1...   31 Jul 2022, 18:48
|- - Krazubu   Citation (jumera @ 31 Jul 2022, 19:48) un...   5 Aug 2022, 11:12
- - Sirix1995   Comme je disais, personnellement, j'aimerai ef...   5 Aug 2022, 12:13
- - jumera   J'ai l'impression que cela dépend des app...   5 Aug 2022, 12:48
|- - pimentpub   Citation (jumera @ 5 Aug 2022, 13:48) J...   5 Aug 2022, 13:16
|- - jeanjd63   Citation (pimentpub @ 5 Aug 2022, 14:16) ...   5 Aug 2022, 13:46
|- - pimentpub   Citation (jeanjd63 @ 5 Aug 2022, 14:46) C...   5 Aug 2022, 16:05
- - Sirix1995   Disons que c'est le mode de fonctionnement qui...   5 Aug 2022, 12:59
- - jumera   Donc ce sont aux développeurs de modifier tout ce...   5 Aug 2022, 13:22
- - Krazubu   Citation (jumera @ 5 Aug 2022, 13:48) Cel...   5 Aug 2022, 14:47
- - jumera   Merci Krazubu En espérant que les ingénieurs d...   5 Aug 2022, 15:55
- - jeanjd63   Donc tu as un fichier Desktop.py sur le Bureau? S...   5 Aug 2022, 17:46
- - pimentpub   Merci… mais voici le message de la console:   6 Aug 2022, 09:58
- - jeanjd63   C'est comme si la commande : Codepip3 install...   6 Aug 2022, 10:57
|- - pimentpub   Citation (jeanjd63 @ 6 Aug 2022, 11:57) C...   6 Aug 2022, 16:48
- - MacGregor74   ben ça fait causer ce focus depuis 10 jours, j...   6 Aug 2022, 13:08
- - jeanjd63   Tente, avec un éditeur style BBedit de reprendre ...   6 Aug 2022, 16:53
|- - pimentpub   Citation (jeanjd63 @ 6 Aug 2022, 17:53) T...   7 Aug 2022, 08:12
|- - jeanjd63   Citation (pimentpub @ 7 Aug 2022, 09:12) ...   7 Aug 2022, 08:42
- - Krazubu   Pas besoin de bidouiller le fichier .py ce n'e...   6 Aug 2022, 22:15


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 18th July 2025 - 02:04