Tutorials/C Programming Tutorial/How to find out which window has the focus
From ThorstensHome
You can use the following source code to find out which window has the focus on your Linux desktop:
main.cpp
#include <stdio.h>
#include <X11/Xlib.h>
/* Compile this using
g++ -lXtst main.cpp
*/
int main()
{
Display* display= XOpenDisplay(NULL);
char* name="blahblah";
Window window=0;
int i=0;
XGetInputFocus(display, &window, &i);
int status = XFetchName (display, window , &name);
XCloseDisplay( display );
printf("%i",i);
printf("%i",window);
printf(name);
}
Compile, link and run it
g++ -lXtst main.cpp ./a.out
Now the strange thing is, this worked. But now, kwrite and firefox's window titles are not correctly recognized. However, the programs xprop and xwininfo work correctly. So I analyzed the code and found they are using XGetWMName instead of XFetchName.