J'ai essayé ce qui suit dans un appel à XCreateWindow():Set X11 curseur flèche
unsigned long ctt_attribute_mask = CWWinGravity | CWCursor;
ctt_attributes->win_gravity = NorthEastGravity;
ctt_attributes->cursor = XC_arrow;
ctt_window = XCreateWindow(dpy, parent, ctt_xpos, ctt_ypos,
ctt_xy_size, ctt_xy_size, ctt_border,
ctt_depth, ctt_class, ctt_visual,
ctt_attribute_mask, ctt_attributes);
Cela crée la fenêtre, mais il ne touche pas le pointeur quand il roule sur la fenêtre.
Je souhaite utiliser le curseur de pointeur standard de l'environnement de bureau de l'utilisateur lorsque la souris apparaît sur ma fenêtre.
Xlib est requis, car il s'agit d'un programme indépendant de la boîte à outils.
ETA: un contexte supplémentaire est disponible; voir create_ctt_window
à partir de la ligne 35 dans le source file.
Intéressant, merci pour le pointeur sur libXcursor. Maintenant, je dois juste comprendre comment l'utiliser. Les API répertoriées dans la page de manuel pour cela, eh bien, elles ne semblent pas fonctionner; 'char * XcursorGetTheme (Display * dpy)' renvoie NULL même pour les noms de thème présents dans le répertoire des thèmes du curseur, et 'Cursor XcursorLibraryLoadCursor (Affichage * dpy, const char * name)' ne semble pas réellement faire quoi que ce soit. Bien sûr, je fais probablement quelque chose de mal. On dirait que je suis damné quand il s'agit de programmation X11 de bas niveau. :) –
Aha. Il s'avère que libXcursor ne peut pas découvrir quel est le thème de la souris en cours d'utilisation. Je devrai recourir à la découverte de la WM sous-jacente et/ou DE d'une manière dépendante de WM/DE. Tellement pour la portabilité ... –