change what re-maprequest events do, just convert them to net_active_window messages. make net_active_window unshade/iconify

This commit is contained in:
Dana Jansens 2003-01-09 04:26:32 +00:00
parent e2274e0f0a
commit b1739374a6
2 changed files with 19 additions and 4 deletions

View file

@ -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
}

View file

@ -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);
}