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é 5 Aug 2022, 14:47
Message #2


Macbidouilleur d'Or !
*****

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



Citation (jumera @ 5 Aug 2022, 13:48) *
Cela voudrait dire que c'est aux développeurs d'applications de le faire ? (c'est une question...)
et que par exemple Discord ne le fait pas

Citation (jumera @ 5 Aug 2022, 14:22) *
Donc ce sont aux développeurs de modifier tout cela ?

Oui et non. L'OS fournit aux développeurs des classes qu'ils peuvent exploiter pour leurs logiciels. Par exemple pour créer une fenêtre un développeur ne s'amuse pas à dessiner les bordures, créer les menus, les icônes "fermer", "agrandir", "réduire", etc…
Il y a une fonction de base pour créer une fenêtre qui contient déjà tous les éléments visuels incontournables, ainsi que toutes les règles concernant son comportement et les relations qu'elle a avec le reste du système. On peut éventuellement préciser quelques paramètres pour la personnaliser comme la taille ou la possibilité de la redimensionner ou non par exemple, .
Et à l'inverse, certaines possibilités sont volontairement absentes (n'existent pas ou alors existent sans documentation), et c'est géré au niveau supérieur pas l'OS qui décidera pour tout le monde. Par exemple si on voulait mettre une fenêtre en mode sombre alors que l'OS est configuré en mode normal, ça ne serait pas possible.
Ca évite que chacun fasse sa sauce et qu'aucune fenêtre ne ressemble à une autre avec des interfaces et des logiques qui changent sur chacune (coucou Windows wink.gif ) Tout cela est accompagné de guidelines qui préconisent quoi utiliser pour quel types d'usage et les choses à ne pas faire.
Il y a 2 philosophies, d'un côté un système contraignant qui laisse peu de liberté aux développeurs, au bénéfice d'une grande cohérence, d'une grande stabilité et aussi plus simple à programmer, de l'autre un système où on est très libre avec la possibilité de tout faire, et donc de créer des horreurs.
macOS est clairement dans le 1er camp et là pour le coup ça me semble être un problème au niveau de l'OS, car c'est à lui de gérer ça, voire d'interdire aux apps de changer cela. Il y a bien plusieurs types de fenêtres avec des statuts différents, un développeur peut souvent détourner une fonction qui était prévue pour un autre usage (on appelle ça une catachrèse, comme par exemple utiliser un tournevis comme décapsuleur), mais dans tous les cas je ne vois pas trop pourquoi la logique de piquer le focus devrait changer selon l'app. Peut-être dans certains cas critiques réservés au système (si mon HD vient d'exploser, je veux bien que l'OS me prévienne prioritairement), ou alors avec l'accord du centre de sécurité par exemple, car on frise vraiment la faille de sécurité digne des années 90.

Réponse courte : oui les développeurs pourraient faire mieux, mais si l'OS était mieux foutu, ils n'auraient pas eu la possibilité de le faire mal.

Ce message a été modifié par Krazubu - 5 Aug 2022, 14:51.
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 - 03:01