WM_STATE und WM_NAME (WM_ICON_NAME) abfragen

07/06/2011 - 08:49 von Jochen Luebbers | Report spam
Hallo,

ich möchte gerne von einer (dritten) Anwendung WM_STATE und WM_NAME der
Fenster, die auf einem Screen existieren, abfragen. Ziel meiner
Bemühungen ist es, in einem Programm ein "Window"-Menü anzubieten, dass
alle Fenster des Screens auflistet.

Dafür lasse ich mir mit XQueryTree() eine Liste aller Kindfenster
geben. Etliche sortiere ich nach kurzer Analyse via XGetWMHints()
bzw. XGetWindowAttributes() gleich als irrelevant aus.

Von den verbleibenden versuche ich per XFetchName() den Namen und
mittels XGetWindowProperty() den WM_STATE zu erfahren. Doch leider
klappt das nicht so wie erhofft.

Von etlichen Fenster bekomme ich durchaus den Namen, aber gerade so
Klassiker wie "xterm" oder "emacs" sind dabei außen vor! Wenn ich
*keinen* Windowmanager laufen habe, dann klappt es mit den Namen
besser...

Beim WM_STATE ist es im Prinzip genauso, nur dass ich, sobald ein WM
làuft, gar keinen Status mehr lesen kann.

Ohne WM_STATE weiß ich aber nicht zu unterscheiden, ob eine Fenster
ikonisiert ist oder aber (von der Anwendung) ganz versteckt wurde.

Was übersehen ich (<Loriot>Andere können es doch auch!</Loriot>)?

Gruß
Jochen.
"Who desire to give up freedom in order to gain security
will loose both in the end."
 

Lesen sie die antworten

#1 Jochen Lübbers
07/06/2011 - 14:52 | Warnen spam
Nun habe ich es doch noch gefunden:
Da der Windowmanager ein eigenes Fenster um das eigentliche Fenster
"klatscht" fehlte mir der kleine aber entscheidende Aufruf von
XmuClientWindow() um an das "richtige" Fenster zu gelangen.

(Womit auch geklàrt wàre, warum mein Programm in der Konstellation ohne
Windowmanager besser lief...)

Gruß
Jochen .
"Wer die Freiheit aufgibt, um Sicherheit zu gewinnen,
der wird am Ende beides verlieren"

Ähnliche fragen