diff options
Diffstat (limited to 'plugingui')
-rw-r--r-- | plugingui/eventhandler.cc | 7 | ||||
-rw-r--r-- | plugingui/eventhandler.h | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/plugingui/eventhandler.cc b/plugingui/eventhandler.cc index 050c2e1..a7aff12 100644 --- a/plugingui/eventhandler.cc +++ b/plugingui/eventhandler.cc @@ -38,6 +38,7 @@ GUI::EventHandler::EventHandler(GlobalContext *gctx) { this->gctx = gctx; last_click = 0; + last_was_dbl_click = false; #ifdef WIN32 this->gctx->eventhandler = this; event = NULL; @@ -481,8 +482,14 @@ void GUI::EventHandler::processEvents(Window *window) break; case Event::Button: { + if(last_was_dbl_click) { + last_was_dbl_click = false; + continue; + } ButtonEvent *be = (ButtonEvent *)event; + last_was_dbl_click = be->doubleclick; + Widget *w = window->find(be->x, be->y); if(window->buttonDownFocus()) { diff --git a/plugingui/eventhandler.h b/plugingui/eventhandler.h index 99be2d4..69586f4 100644 --- a/plugingui/eventhandler.h +++ b/plugingui/eventhandler.h @@ -55,6 +55,9 @@ private: int last_click; void (*closeHandler)(void *); void *closeHandlerPtr; + + // Used to ignore mouse button release after a double click. + bool last_was_dbl_click; }; }; |