#include #include #include #include #include #include int main ( int argc, char **argv ) { Display *disp; Window win; char *data; int size, loop; XEvent ev; disp= XOpenDisplay(NULL); if (!disp) { perror("XOpenDisplay"); exit(-1); } win= XCreateSimpleWindow(disp, DefaultRootWindow(disp), 10, 10, 100, 100, 0, 0, 0); XSelectInput(disp, win, ButtonPressMask | KeyPressMask); XMapWindow(disp, win); for (loop= 1; loop;) { data= XFetchBuffer(disp, &size, XA_PRIMARY); if (!data) data= XFetchBuffer(disp, &size, 0); if (data) { printf("Data size: %d\n", size); printf("String: [%s]\n", data); XFree(data); } while(XPending(disp)) { XNextEvent(disp, &ev); if (ev.type==ButtonPress) loop= 0; else if (ev.type==KeyPress) loop= 0; } } XDestroyWindow(disp, win); XCloseDisplay(disp); return(0); }