I'm attaching the source code for a sample X client application, for which the problem can be reproduced reliably. The application uses 'globally active' input focus model, just like Java (AWT/Swing) applications, but also waits for 10 milliseconds before reacting to WM_TAKE_FOCUS message. If such an artificial delay isn't performed (just comment out 'usleep' call in the source code), the problem can be reproduced as well, but only with a certain probability.
The sample app can be compiled and launched using the following command:
gcc twoFrames.c -lX11; ./a.out
I'm attaching the source code for a sample X client application, for which the problem can be reproduced reliably. The application uses 'globally active' input focus model, just like Java (AWT/Swing) applications, but also waits for 10 milliseconds before reacting to WM_TAKE_FOCUS message. If such an artificial delay isn't performed (just comment out 'usleep' call in the source code), the problem can be reproduced as well, but only with a certain probability.
The sample app can be compiled and launched using the following command:
gcc twoFrames.c -lX11; ./a.out