Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-06-08 23:17:21 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-06-08 23:17:21 +0300
commit5165d6293153fd622e11c2f9f991a8693b765ccb (patch)
treee1956798aded78986f93f28296f643600d0a20e4 /source/blender/windowmanager
parent185782383996d4d2abcf23bdc97688be679b393e (diff)
WM: correct recent change to click/drag detection
fb1915d87090a - caused click/drag events not to be detected. Now check a key is a mouse or keyboard event.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 8693fd401a8..d517fb280d1 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -2274,7 +2274,9 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers)
}
}
}
- else if (!ELEM(event->type, EVENT_NONE) && !ISTIMER(event->type)) {
+ else if (ISMOUSE(event->type) || ISKEYBOARD(event->type)) {
+ /* All events that don't set wmEvent.prevtype must be ignored. */
+
/* test for CLICK events */
if (wm_action_not_handled(action)) {
wmWindow *win = CTX_wm_window(C);
@@ -2284,11 +2286,8 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers)
if (win != NULL) {
if (event->val == KM_PRESS) {
- /* Ensure the types match to prevent mouse wheel from triggering drag/clicks. */
- if (event->type == win->eventstate->prevtype) {
- win->eventstate->check_click = true;
- win->eventstate->check_drag = true;
- }
+ win->eventstate->check_click = true;
+ win->eventstate->check_drag = true;
}
else if (event->val == KM_RELEASE) {
win->eventstate->check_drag = false;