_map.erase(id);
}
+#include <stdio.h>
void OtkEventDispatcher::dispatchEvents(void)
{
XEvent e;
while (XPending(OBDisplay::display)) {
XNextEvent(OBDisplay::display, &e);
+#ifdef DEBUG
+ printf("Event %d window %lx\n", e.type, e.xany.window);
+#endif
+
it = _map.find(e.xany.window);
if (it != _map.end())
printf("UnmapNotify for 0x%lx\n", e.window);
#endif // DEBUG
+ if (ignore_unmaps) {
+ ignore_unmaps--;
+ return;
+ }
+
OtkEventHandler::unmapHandler(e);
// this deletes us etc
void Openbox::removeClient(Window window)
{
+ _clients[window] = 0;
ClientMap::iterator it = _clients.find(window);
if (it != _clients.end())
_clients.erase(it);
OBClient *client = Openbox::instance->findClient(e.window);
+ printf("Client: %lx\n", client);
+
if (client) {
+ printf("found client\n");
// XXX: uniconify and/or unshade the window
} else {
Openbox::instance->screen(_info->getScreenNumber())->
// XXX: pass around focus if this window was focused
+ // remove from the wm's map
+ Openbox::instance->removeClient(client->window());
// unregister for handling events
Openbox::instance->clearHandler(client->window());