PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Xlib] Fenster löschen



Cypher
07-02-2008, 09:45
hi,
ich bin gerade ein bisschen am rumprobieren und bastel an einem rudimentären Fenstermanager. Bisher zeichnet er Rähmen um Fenster. wenn man ein programm allerdings beendet bleibt das vom WM gezeichnete "Hintergrundfenster" bestehen.
Ich mach die Sache in C++
und hab eine Client-Klasse, die bei ihrer initialisierung das entsprechende Fenster in einen dafür erstellten frame mapped. wird das fenster geschlossen (das bemerkt man doch über eine UnmapNotify oder DestroyNotify, oder?) wird das entsprechende Client-Object gelöscht und dessen Deconstructor sollte eigentlich auch den Frame löschen, machts aber nicht...
der Deconstructor sieht so aus:

Client::~Client(void) {
XGrabServer(Global::dpy);
_setWmState(WithdrawnState);
XReparentWindow(Global::dpy, _window, Global::root, _x, _y);
XRemoveFromSaveSet(Global::dpy, _window);
XDestroyWindow(Global::dpy, _frame);
XFree(_name);
XSync(Global::dpy, false);
XUngrabServer(Global::dpy);
}
ich orientier mich hauptsächlich am Sourcecode von aewm (http://www.red-bean.com/~decklin/software/aewm/) und da gehts.... ich versteh nicht was ich anders mach

nunja, danke schonmal für hilfe
cypher

Cypher
07-02-2008, 11:19
der fehler scheint woanders zu liegen....
wie oft bekommt man denn für ein fenster map und unmap notifies?