all repos — openbox @ a1a606d4f86a712b09fade7ca5b170f0ca6c6167

openbox fork - make it a bit more like ryudo

watch for case where we think one button is pressed but it isnt anymore, making Click events get missed
Dana Jansens danakj@orodu.net
commit

a1a606d4f86a712b09fade7ca5b170f0ca6c6167

parent

ccb58d37ee5539271c3595ed7b72a461434f428d

1 files changed, 17 insertions(+), 1 deletions(-)

jump to
M src/actions.ccsrc/actions.cc

@@ -86,6 +86,22 @@ context = MouseContext::Root;

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::buttonReleaseHandler(const XButtonEvent &e) { otk::EventHandler::buttonReleaseHandler(e); - removePress(e); + //removePress(e); MouseContext::MC context; EventHandler *h = openbox->findHandler(e.window);