all repos — openbox @ bdc491ccfe71ce29a5a1ea813da4b1c66e2fa330

openbox fork - make it a bit more like ryudo

map and unmap work great now yay
Dana Jansens danakj@orodu.net
commit

bdc491ccfe71ce29a5a1ea813da4b1c66e2fa330

parent

9860b76c50e5ecacc85921539058eab4c655c38d

5 files changed, 16 insertions(+), 0 deletions(-)

jump to
M otk/eventdispatcher.ccotk/eventdispatcher.cc

@@ -34,6 +34,7 @@ {

_map.erase(id); } +#include <stdio.h> void OtkEventDispatcher::dispatchEvents(void) { XEvent e;

@@ -42,6 +43,10 @@ OtkEventMap::iterator it;

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);
M src/client.ccsrc/client.cc

@@ -832,6 +832,11 @@ #ifdef DEBUG

printf("UnmapNotify for 0x%lx\n", e.window); #endif // DEBUG + if (ignore_unmaps) { + ignore_unmaps--; + return; + } + OtkEventHandler::unmapHandler(e); // this deletes us etc
M src/openbox.ccsrc/openbox.cc

@@ -260,6 +260,7 @@

void Openbox::removeClient(Window window) { + _clients[window] = 0; ClientMap::iterator it = _clients.find(window); if (it != _clients.end()) _clients.erase(it);
M src/rootwindow.ccsrc/rootwindow.cc

@@ -100,7 +100,10 @@ #endif // DEBUG

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())->
M src/screen.ccsrc/screen.cc

@@ -387,6 +387,8 @@ OBFrame *frame = client->frame;

// 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());