Correction de c_cursor.c
/* changement de cursor */
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/cursorfont.h>
GC gc;
Display *display;
int screen;
Window win, root;
unsigned long white_pixel, black_pixel;
Cursor curs0, curs1;
XSetWindowAttributes attributs;
unsigned long masque_valeur;
main() {
if ((display = XOpenDisplay ("")) == NULL) {
fprintf (stderr, "Can't open Display\n");
exit (1);
}
gc = DefaultGC (display, screen);
screen = DefaultScreen (display);
root = RootWindow (display, screen);
white_pixel = WhitePixel (display, screen);
black_pixel = BlackPixel (display, screen);
masque_valeur = 0;
attributs.background_pixel = white_pixel;
masque_valeur |= CWBackPixel;
attributs.border_pixel = black_pixel;
masque_valeur |= CWBorderPixel;
attributs.cursor = curs0 = XCreateFontCursor(display, XC_gumby);
curs1 = XCreateFontCursor(display, XC_man);
masque_valeur |= CWCursor;
win = XCreateWindow (display, root, 0, 0, 200, 300, 5, CopyFromParent,
InputOutput, CopyFromParent, masque_valeur, &attributs);
XStoreName(display, win, "c_cursor");
XSelectInput (display, win, ButtonPressMask);
XMapWindow (display, win);
for (;;) {
XEvent ev;
XNextEvent (display, &ev);
switch (ev.type) {
case ButtonPress :
if (ev.xbutton.x < 100)
XDefineCursor(display, win, curs1);
else
XDefineCursor(display, win, curs0);
break;
default :
break;
}
}
}