From b1739374a61d0c33270bafe84da9d787e79c0686 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 9 Jan 2003 04:26:32 +0000 Subject: [PATCH] change what re-maprequest events do, just convert them to net_active_window messages. make net_active_window unshade/iconify --- src/client.cc | 3 +++ src/screen.cc | 20 ++++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/client.cc b/src/client.cc index 423316b0..07bf6f0b 100644 --- a/src/client.cc +++ b/src/client.cc @@ -914,6 +914,9 @@ void OBClient::clientMessageHandler(const XClientMessageEvent &e) #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 } diff --git a/src/screen.cc b/src/screen.cc index b16a75de..c650872e 100644 --- a/src/screen.cc +++ b/src/screen.cc @@ -789,10 +789,22 @@ void OBScreen::mapRequestHandler(const XMapRequestEvent &e) 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); } -- 2.39.2