]> Dogcows Code - chaz/openbox/blobdiff - src/rootwindow.cc
unmap works.. once
[chaz/openbox] / src / rootwindow.cc
index 4891b4fe01591b11730e9abceb9764574ba9dddf..ff8a644fa648d4eb732273ae3b04d04ea5654761 100644 (file)
@@ -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 <stdio.h>
+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);
+}
+
+
 }
This page took 0.026194 seconds and 4 git commands to generate.