X11 - retunere det aktive vindue?
Goddag,Jeg forsøger at lave et lille projekt, hvor jeg vil have X11's aktive vindue, samt dets navn og måske bredde og højde.
Jeg har fået lavet dette:
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <X11/Xos.h>
#include <X11/keysym.h>
#include <X11/Xresource.h>
#include <X11/cursorfont.h>
#include <giblib/giblib.h>
#include <stdio.h>
int d()
{
Display *disp;
Window focus;
int revert;
XWindowAttributes attr;
char *windowName = NULL;
disp = XOpenDisplay(NULL);
XGetInputFocus(disp, &focus, &revert);
XGetWindowAttributes(disp, focus, &attr);
XFetchName(disp, focus, &windowName);
printf("Window name: %s\nWidth: %d\n", windowName, attr.height);
}
Og det virker helt fint, ingen problemer eller noget som helst - med den betingelse at det er projektets eget vindue..
Resulterende output (xterm med projektet kørende der var aktivt):
---8<---
Window name: oculus
Width: 316
---8<---
Men lige så snart jeg får et andet vindue i fokus, bliver resultatet:
---8<---
Window name: (null)
Width: 1
---8<---
Er det den forkerte metode jeg kalder, eller noget andet? Jeg håber du har løsningen.
Sincerely,
Mikkel Kroman.