![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
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. |
|
|
![]() |
![]()
Message
#2
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 3 544 Inscrit : 5 Sep 2005 Membre no 45 266 ![]() |
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 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 ![]() 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. |
|
|
![]() ![]() |
Nous sommes le : 18th July 2025 - 03:01 |