X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Frootwindow.cc;h=364f614471d186a562544b7cc9200c677860a490;hb=3827c1a76e27865a9e2cc9da43c42399ea354e18;hp=4891b4fe01591b11730e9abceb9764574ba9dddf;hpb=958df7716291a1af680bf9d5432aa99f0b7cf644;p=chaz%2Fopenbox diff --git a/src/rootwindow.cc b/src/rootwindow.cc index 4891b4fe..364f6144 100644 --- a/src/rootwindow.cc +++ b/src/rootwindow.cc @@ -6,16 +6,18 @@ #include "rootwindow.hh" #include "openbox.hh" +#include "screen.hh" #include "otk/display.hh" namespace ob { OBRootWindow::OBRootWindow(int screen) - : _info(otk::OBDisplay::screenInfo(screen)) + : OBWidget(OBWidget::Type_Root), + _info(otk::OBDisplay::screenInfo(screen)) { updateDesktopNames(); - Openbox::instance->registerHandler(_info->getRootWindow(), this); + Openbox::instance->registerHandler(_info->rootWindow(), this); } @@ -32,7 +34,7 @@ void OBRootWindow::updateDesktopNames() unsigned long num = (unsigned) -1; - if (!property->get(_info->getRootWindow(), + if (!property->get(_info->rootWindow(), otk::OBProperty::net_desktop_names, otk::OBProperty::utf8, &num, &_names)) _names.clear(); @@ -86,9 +88,24 @@ void OBRootWindow::setDesktopName(int i, const std::string &name) otk::OBProperty::StringVect newnames = _names; newnames[i] = name; - property->set(_info->getRootWindow(), otk::OBProperty::net_desktop_names, + property->set(_info->rootWindow(), otk::OBProperty::net_desktop_names, otk::OBProperty::utf8, newnames); } +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->screen())->manageWindow(e.window); + } +} + }