all repos — openbox @ b1739374a61d0c33270bafe84da9d787e79c0686

openbox fork - make it a bit more like ryudo

change what re-maprequest events do, just convert them to net_active_window messages. make net_active_window unshade/iconify
Dana Jansens danakj@orodu.net
commit

b1739374a61d0c33270bafe84da9d787e79c0686

parent

e2274e0f0aaa34b1b12e5a7ef0c0c8b8d70264da

2 files changed, 19 insertions(+), 4 deletions(-)

jump to
M src/client.ccsrc/client.cc

@@ -914,6 +914,9 @@ property->atom(otk::OBProperty::net_active_window)) {

#ifdef DEBUG printf("net_active_window for 0x%lx\n", _window); #endif + if (_shaded) + shade(false); + // XXX: deiconify focus(); Openbox::instance->screen(_screen)->restack(true, this); // raise }
M src/screen.ccsrc/screen.cc

@@ -789,10 +789,22 @@ */

OBClient *c = Openbox::instance->findClient(e.window); if (c) { - if (c->shaded()) - c->shade(false); - // XXX: uniconify the window - c->focus(); + // send a net_active_window message + XEvent ce; + ce.xclient.type = ClientMessage; + ce.xclient.message_type = + Openbox::instance->property()->atom(otk::OBProperty::net_active_window); + ce.xclient.display = otk::OBDisplay::display; + ce.xclient.window = c->window(); + ce.xclient.format = 32; + ce.xclient.data.l[0] = 0l; + ce.xclient.data.l[1] = 0l; + ce.xclient.data.l[2] = 0l; + ce.xclient.data.l[3] = 0l; + ce.xclient.data.l[4] = 0l; + XSendEvent(otk::OBDisplay::display, _info->rootWindow(), false, + SubstructureRedirectMask | SubstructureNotifyMask, + &ce); } else manageWindow(e.window); }