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:
Code:
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 und da gehts.... ich versteh nicht was ich anders mach
nunja, danke schonmal für hilfe
cypher
Lesezeichen