summaryrefslogtreecommitdiff
path: root/src/actions.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/actions.cc')
-rw-r--r--src/actions.cc18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/actions.cc b/src/actions.cc
index 1213f21e..c340d64b 100644
--- a/src/actions.cc
+++ b/src/actions.cc
@@ -86,6 +86,22 @@ void Actions::buttonPressHandler(const XButtonEvent &e)
else
return; // not a valid mouse context
+ if (_button) {
+ unsigned int mask;
+ switch(_button) {
+ case Button1: mask = Button1Mask; break;
+ case Button2: mask = Button2Mask; break;
+ case Button3: mask = Button3Mask; break;
+ case Button4: mask = Button4Mask; break;
+ case Button5: mask = Button5Mask; break;
+ default: assert(false); return; // unhandled button
+ }
+ // was the button released but we didnt get the event? (pointergrabs cause
+ // this)
+ if (!(e.state & mask))
+ _button = 0;
+ }
+
// run the PRESS python hook
// kill off the Button1Mask etc, only want the modifiers
unsigned int state = e.state & (ControlMask | ShiftMask | Mod1Mask |
@@ -120,7 +136,7 @@ void Actions::buttonPressHandler(const XButtonEvent &e)
void Actions::buttonReleaseHandler(const XButtonEvent &e)
{
otk::EventHandler::buttonReleaseHandler(e);
- removePress(e);
+ //removePress(e);
MouseContext::MC context;
EventHandler *h = openbox->findHandler(e.window);