2009-03-16 10 views
3

Je travaille sur une ancienne application basée sur Motif pour Linux. Je veux être en mesure de modifier par programme la fenêtre active de notre application. Je peux rediriger l'entrée en utilisant la fonction XSetInputFocus() et l'entrée du clavier commence à y aller, mais les fonctions XReconfigureWMWindow() et XRaiseWindow() ne fonctionnent tout simplement pas. J'ai lu que les gestionnaires de fenêtres essaient d'arrêter ce comportement, donc essayé de désactiver la redirection de configuration, mais cela ne fonctionne pas non plus. Des idées comment faire une de mes propres fenêtres sur le dessus de la pile de la fenêtre?Comment changer le focus dans X-Windows?

+0

Salut @theJonan étiez-vous capable de trouver une solution sur comment se concentrer? Je cherche à faire une collection de toutes les solutions, ainsi je peux créer une solution de gestionnaire de fenêtres croisées. – Noitidart

Répondre

0

Vous pouvez trouver la réponse à cela dépend du gestionnaire de fenêtres que l'utilisateur utilise, ou même quels paramètres ils ont donné au gestionnaire de fenêtres. J'aime configurer mes gestionnaires de fenêtres pour qu'ils fassent «focus suit mouse», ce qui signifie que vous ne pouvez pas envoyer le focus à une fenêtre sur laquelle je n'ai pas placé ma souris, sauf si vous y mettez la souris (cette fonction s'appelle XWarpMouse ?).

2

Il existe un petit programme appelé wmctrl disponible (au moins dans Debian/Ubuntu il est dans la distribution standard) qui est capable d'effectuer de nombreuses opérations sur les fenêtres et les bureaux, et gère beaucoup de gestionnaires de fenêtres. Je suggère de tester si cela fonctionne dans votre environnement, et si oui, jeter un coup d'œil à ses sources.

+0

Comme alternative à wmctrl, voir [xdotool] (http://www.semicomplete.com/projects/xdotool/). –

Questions connexes