3 Stimmen

X11-Programmierung: Benachrichtigt werden, wenn ein neues Fenster erscheint?

Programmierung in C mit der X11-Bibliothek, gibt es eine Möglichkeit, benachrichtigt zu werden, wenn ein neues Fenster erschienen ist? Ich fand XSetAfterFunction aber das ist nur für Debugging-Zwecke gedacht ...

Vielen Dank für Ihre Hilfe!

Heinrich

@edit:

Dieser Code löst mein Problem

int main() {    
Display* display = XOpenDisplay(":2");

XSetWindowAttributes attributes;
attributes.event_mask = SubstructureNotifyMask | StructureNotifyMask;

XChangeWindowAttributes(display, 0x100, CWEventMask, &attributes);

while (true) {
    XEvent event;
    XNextEvent(display, &event);
    std::cout << "Event occured" << std::endl;
}

return 0;
}

2voto

AProgrammer Punkte 49452

Soweit ich mich erinnere, können Sie XChangeWindowAttributes verwenden, um auf Ereignisse des Root-Fensters zu hören, und dann auf XMapEvent (oder XCreateWindowEvent oder was auch immerEvent, je nach Ihrer Definition von "ein neues Fenster ist erschienen") reagieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X