X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fframe.cc;h=e7f310a0f69721cfeddd9761f34b9e9fb3b01ab5;hb=7071b1f094f7b4b5e09ed329d13d2d1454a9cacf;hp=4f466b46d26edbaf053bfc0cae138102cc36e701;hpb=b8653c3ab8ee785fc0605a960ac83afb97ac7edf;p=chaz%2Fopenbox diff --git a/src/frame.cc b/src/frame.cc index 4f466b46..e7f310a0 100644 --- a/src/frame.cc +++ b/src/frame.cc @@ -13,6 +13,8 @@ extern "C" { #include "openbox.hh" #include "frame.hh" #include "client.hh" +#include "python.hh" +#include "bindings.hh" #include "otk/display.hh" #include @@ -56,15 +58,44 @@ OBFrame::OBFrame(OBClient *client, otk::Style *style) _plate.show(); // the other stuff is shown based on decor settings grabClient(); + + grabButtons(true); } OBFrame::~OBFrame() { + grabButtons(false); releaseClient(false); } +void OBFrame::grabButtons(bool grab) +{ +/* _plate.grabButtons(grab); + + // grab any requested buttons on the entire frame + std::vector grabs; + if (python_get_stringlist("client_buttons", &grabs)) { + std::vector::iterator grab_it, grab_end = grabs.end(); + for (grab_it = grabs.begin(); grab_it != grab_end; ++grab_it) { + Binding b; + if (!Openbox::instance->bindings()->translate(*grab_it, b, false)) + continue; + printf("grabbing %d %d\n", b.key, b.modifiers); + if (grab) { + otk::OBDisplay::grabButton(b.key, b.modifiers, _window, true, + ButtonPressMask | ButtonMotionMask | + ButtonReleaseMask, GrabModeAsync, + GrabModeAsync, _window, None, false); + } else { + otk::OBDisplay::ungrabButton(b.key, b.modifiers, _window); + } + } + }*/ +} + + void OBFrame::setTitle(const std::string &text) { _label.setText(text);