X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fbackgroundwidget.cc;h=3d4bb2f2bfbc61660a40e1afbb225659a968ff4c;hb=1c8090fa67994215f5e79cd9dd08f82110589d8a;hp=e7f7e732086f185843b4215528cae5a8322af46f;hpb=b8653c3ab8ee785fc0605a960ac83afb97ac7edf;p=chaz%2Fopenbox diff --git a/src/backgroundwidget.cc b/src/backgroundwidget.cc index e7f7e732..3d4bb2f2 100644 --- a/src/backgroundwidget.cc +++ b/src/backgroundwidget.cc @@ -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); +} + }