diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-11-26 16:50:09 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-11-26 18:17:22 +0300 |
commit | b711be9b99d90a40bdf787a756cb982eab5c1e61 (patch) | |
tree | da21d9604cb163660eecb2a7866be20ec995862c /source/blender/windowmanager | |
parent | 9abcf56fa88dd849bf0f83fafe5d4666d3531cd2 (diff) |
Keymaps: don't do CLICK event when PRESS was already handled.
This fixes conflicts where the tool and editor keymap use different event
types. Tools need to be able to mouse buttons on PRESS without triggering
CLICK events in the editor keymap.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index a9a248f027b..576f5470069 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2635,15 +2635,15 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) event->x = x; event->y = y; - win->eventstate->check_click = 0; - win->eventstate->check_drag = 0; + win->eventstate->check_click = false; + win->eventstate->check_drag = false; } } } else { wmWindow *win = CTX_wm_window(C); if (win) { - win->eventstate->check_drag = 0; + win->eventstate->check_drag = false; } } } @@ -3115,6 +3115,12 @@ void wm_event_do_handlers(bContext *C) } + /* If press was handled, we don't want to do click. This way + * press in tool keymap can override click in editor keymap.*/ + if (event->val == KM_PRESS && !wm_action_not_handled(action)) { + win->eventstate->check_click = false; + } + /* update previous mouse position for following events to use */ win->eventstate->prevx = event->x; win->eventstate->prevy = event->y; |