hi all.<br>This is my ~/.xinitrc :<br>              exec xterm<br><br>I start x with 'startx' command,  and then run 'testx'. This is  source :<br>/* gcc testx.c -o testx -lX11 */<br>  1 #include <stdio.h><br>  2 #include <X11/Xlib.h><br>  3 int main(int argc, char *argv[])<br>  4 {<br>  5 <br>  6     Display *display=XOpenDisplay(NULL);<br>  7     Window root, parent, *child=NULL, root_win=RootWindow(display, DefaultScreen(display));<br>  8     unsigned int n;<br>  9     XWindowAttributes attr;<br> 10     if(XQueryTree(display, root_win, &root, &parent, &child, &n))<br> 11         for(size_t i=0; i<n; i++)<br> 12             if(XGetWindowAttributes(display, child[i], &attr)<br> 13                 && attr.map_state == IsViewable<br> 14                 && XSelectInput(display, child[i], ButtonPressMask))<br> 15                     printf("set %x\n", child[i]);<br> 16     XEvent event;<br> 17     while(1)<br> 18     {<br> 19         XNextEvent(display, &event);<br> 20         if(event.type == ButtonPress)<br> 21         printf("type=%d, w=%x\n", event.type, event.xbutton.window);<br> 22     }<br> 23 }<br><br>I can not get ButtonPress when i press button. But I can get EnterNotify if i replace ButtonPressMask with EnterWindowMask. why ?<br>