Comment obtenir la position de la fenêtre de niveau supérieur par rapport à la fenêtre racine (c'est-à-dire l'intégralité de l'écran) à l'aide de plain ol 'xlib (ou tout nouveau XCB)?Position de la fenêtre dans Xlib
Répondre
Utilisez XTranslateCoordinates (ou l'équivalent xcb) pour traduire 0,0 sur la fenêtre en coordonnées de la fenêtre racine.
En utilisant Xlib:
XWindowAttributes xwa;
XGetWindowAttributes(display, window, &xwa);
printf("%d %d\n", xwa.x, xwa.y);
Il y a aussi beaucoup d'autres informations qui viennent avec XWindowAttributes
. Voir here.
Les composants x, y de la structure renvoyée par XGetWindowAttributes sont relatifs à l'origine du parent de la fenêtre. Ce n'est pas la même chose par rapport à la partie supérieure gauche de l'écran.
Appel de XTranslateCoordinates en passant la fenêtre racine et 0,0 donne les coordonnées de la fenêtre par rapport à l'écran.
Je trouve que si j'écris:
int x, y;
Window child;
XWindowAttributes xwa;
XTranslateCoordinates(display, window, root_window, 0, 0, &x, &y, &child);
XGetWindowAttributes(display, window, &xwa);
printf("%d %d\n", x - xwa.x, y - xwa.y);
Les valeurs affichées par le printf sont ceux qui, si elle est adoptée à XMoveWindow, garder la fenêtre à sa position actuelle. Ainsi, ces coordonnées sont raisonnablement considérées comme la position de la fenêtre.
- 1. XLib Lock Position de la souris (habillage de la souris)
- 2. Enregistrer la fenêtre Xlib dans le fichier eps
- 3. Xlib obtenir des événements d'une fenêtre enfant
- 4. Position de la fenêtre réduite dans WPF
- 5. Faire une fenêtre un bureau dans XLib/Qt
- 6. Position de la fenêtre de notification
- 7. Position de la fenêtre d'un fichier CHM
- 8. Comment détecter la position de la fenêtre dans vim
- 9. Position UIElement par rapport à la fenêtre
- 10. Xlib: XGetWindowAttributes renvoie toujours 1x1?
- 11. Modification de la position de la fenêtre AIR (en AS3)?
- 12. Acquisition de la position de la fenêtre Internet Explorer
- 13. Déterminer la position de la fenêtre du navigateur en JavaScript?
- 14. Hotkey global avec X11/Xlib
- 15. Fenêtre Jquery Jqmodal position IE
- 16. comment obtenir la position scrollTop de la fenêtre parent
- 17. Est-il possible d'obtenir la position de div dans la fenêtre du navigateur? Pas dans le document. Dans la fenêtre
- 18. Evénement Xlib lorsque la fenêtre est déplacée d'un espace de travail à un autre
- 19. Processus d'ouverture et changement de position de la fenêtre
- 20. Événements de souris Xlib et ButtonPressMask
- 21. Découvrez la taille d'un panneau avec Xlib
- 22. Fenêtre de position C# sur le bureau
- 23. Obtenir la position par rapport à la fenêtre du navigateur
- 24. Comment redimensionner un pixmap avec XLib?
- 25. obtenir la position de la fenêtre d'affichage dans javascript dans iphone safari
- 26. Restaurer la position de la fenêtre précédente sur le commutateur de tampon dans Emacs
- 27. position définie pour une nouvelle fenêtre
- 28. xlib/xcb deadlock ou bloc
- 29. Python Xlib catch/send mouseclick
- 30. Obtenir la position actuelle de la fenêtre d'affichage dans Mobile (iPhone) Safari
c'est la réponse qui a fonctionné pour moi aussi – thinlizzy