From: Dana Jansens Date: Tue, 18 Feb 2003 15:59:36 +0000 (+0000) Subject: watch for case where we think one button is pressed but it isnt anymore, making Click... X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=a1a606d4f86a712b09fade7ca5b170f0ca6c6167;p=chaz%2Fopenbox watch for case where we think one button is pressed but it isnt anymore, making Click events get missed --- 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);