X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Frootwindow.cc;h=ff8a644fa648d4eb732273ae3b04d04ea5654761;hb=9860b76c50e5ecacc85921539058eab4c655c38d;hp=4891b4fe01591b11730e9abceb9764574ba9dddf;hpb=958df7716291a1af680bf9d5432aa99f0b7cf644;p=chaz%2Fopenbox diff --git a/src/rootwindow.cc b/src/rootwindow.cc index 4891b4fe..ff8a644f 100644 --- a/src/rootwindow.cc +++ b/src/rootwindow.cc @@ -6,6 +6,7 @@ #include "rootwindow.hh" #include "openbox.hh" +#include "screen.hh" #include "otk/display.hh" namespace ob { @@ -91,4 +92,42 @@ void OBRootWindow::setDesktopName(int i, const std::string &name) } +void OBRootWindow::mapRequestHandler(const XMapRequestEvent &e) +{ +#ifdef DEBUG + printf("MapRequest for 0x%lx\n", e.window); +#endif // DEBUG + + OBClient *client = Openbox::instance->findClient(e.window); + + if (client) { + // XXX: uniconify and/or unshade the window + } else { + Openbox::instance->screen(_info->getScreenNumber())-> + manageWindow(e.window); + } +} + + +#include +void OBRootWindow::configureRequestHandler(const XConfigureRequestEvent &e) +{ + OtkEventHandler::configureRequestHandler(e); + + // when configure requests come to the root window, just pass them on + XWindowChanges xwc; + + xwc.x = e.x; + xwc.y = e.y; + xwc.width = e.width; + xwc.height = e.height; + xwc.border_width = e.border_width; + xwc.sibling = e.above; + xwc.stack_mode = e.detail; + + XConfigureWindow(otk::OBDisplay::display, e.window, + e.value_mask, &xwc); +} + + }