]> Dogcows Code - chaz/openbox/blobdiff - src/backgroundwidget.cc
clicks on the client work as they should
[chaz/openbox] / src / backgroundwidget.cc
index e7f7e732086f185843b4215528cae5a8322af46f..3d4bb2f2bfbc61660a40e1afbb225659a968ff4c 100644 (file)
@@ -84,4 +84,38 @@ void OBBackgroundWidget::adjust()
   // nothing to adjust here. its done in OBFrame::adjustSize
 }
 
+void OBBackgroundWidget::grabButtons(bool grab)
+{
+  if (grab) {
+    // grab simple button clicks on the client, but pass them through too
+    otk::OBDisplay::grabButton(Button1, 0, _window, true,
+                               ButtonPressMask, GrabModeSync, GrabModeSync,
+                               _window, None, false);
+    otk::OBDisplay::grabButton(Button2, 0, _window, true,
+                               ButtonPressMask, GrabModeSync, GrabModeSync,
+                               _window, None, false);
+    otk::OBDisplay::grabButton(Button3, 0, _window, true,
+                               ButtonPressMask, GrabModeSync, GrabModeSync,
+                               _window, None, false);
+    otk::OBDisplay::grabButton(Button4, 0, _window, true,
+                               ButtonPressMask, GrabModeSync, GrabModeSync,
+                               _window, None, false);
+    otk::OBDisplay::grabButton(Button5, 0, _window, true,
+                               ButtonPressMask, GrabModeSync, GrabModeSync,
+                               _window, None, false);
+  } else {
+    otk::OBDisplay::ungrabButton(Button1, 0, _window);
+    otk::OBDisplay::ungrabButton(Button2, 0, _window);
+    otk::OBDisplay::ungrabButton(Button3, 0, _window);
+    otk::OBDisplay::ungrabButton(Button4, 0, _window);
+    otk::OBDisplay::ungrabButton(Button5, 0, _window);
+  }
+}
+
+void OBBackgroundWidget::buttonPressHandler(const XButtonEvent &e)
+{
+  if (type() == OBWidget::Type_Plate)
+    XAllowEvents(otk::OBDisplay::display, ReplayPointer, e.time);
+}
+
 }
This page took 0.024221 seconds and 4 git commands to generate.