diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-01-02 22:58:32 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-01-02 22:58:32 +0000 |
| commit | e05d5f7934ce27893f900627fbd06b1679d4c0ad (patch) | |
| tree | 553ced7070d991c96016e5dca53e6068991602e4 /src/frame.cc | |
| parent | 54da8e404b0baa8b4521ce14c8eb9a28ea64e7f9 (diff) | |
kill button release events
Diffstat (limited to 'src/frame.cc')
| -rw-r--r-- | src/frame.cc | 45 |
1 files changed, 20 insertions, 25 deletions
diff --git a/src/frame.cc b/src/frame.cc index 072edc70..4dee65c3 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 <string> @@ -70,33 +72,26 @@ OBFrame::~OBFrame() void OBFrame::grabButtons(bool grab) { - if (grab) { - // grab simple button clicks on the client, but pass them through too - otk::OBDisplay::grabButton(Button1, 0, _plate.window(), true, - ButtonPressMask, GrabModeSync, GrabModeSync, - _plate.window(), None, false); - otk::OBDisplay::grabButton(Button2, 0, _plate.window(), true, - ButtonPressMask, GrabModeSync, GrabModeSync, - _plate.window(), None, false); - otk::OBDisplay::grabButton(Button3, 0, _plate.window(), true, - ButtonPressMask, GrabModeSync, GrabModeSync, - _plate.window(), None, false); - otk::OBDisplay::grabButton(Button4, 0, _plate.window(), true, - ButtonPressMask, GrabModeSync, GrabModeSync, - _plate.window(), None, false); - otk::OBDisplay::grabButton(Button5, 0, _plate.window(), true, - ButtonPressMask, GrabModeSync, GrabModeSync, - _plate.window(), None, false); - } else { - } + _plate.grabButtons(grab); // grab any requested buttons on the entire frame - if (grab) { - - otk::OBDisplay::grabButton(Button1, 0, _plate.window(), true, - ButtonPressMask, GrabModeSync, GrabModeSync, - _plate.window(), None, false); - } else { + std::vector<std::string> grabs; + if (python_get_stringlist("client_buttons", &grabs)) { + std::vector<std::string>::iterator grab_it, grab_end = grabs.end(); + for (grab_it = grabs.begin(); grab_it != grab_end; ++grab_it) { + Binding b(0,0); + 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); + } + } } } |
