diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-08-29 04:29:29 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-08-29 04:31:49 +0300 |
commit | c489c8481f112fc6027f88e51dffe7104baa3f16 (patch) | |
tree | 562bb2397f0ff8eff2936876cacf0faf3520b32c /source/blender/windowmanager | |
parent | ab2b6134c932057d97dc2a7d3e297c0f696ac1e5 (diff) |
Keymap: check modal keymap item poll function
Fixes T56591: Vertex/Edge slide C-Key fails
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 1c709dcb83c..cd1357e85b1 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -1871,13 +1871,15 @@ static void wm_event_modalkeymap(const bContext *C, wmOperator *op, wmEvent *eve for (kmi = keymap->items.first; kmi; kmi = kmi->next) { if (wm_eventmatch(event, kmi)) { - - event->prevtype = event->type; - event->prevval = event->val; - event->type = EVT_MODAL_MAP; - event->val = kmi->propvalue; - - break; + if ((keymap->poll_modal_item == NULL) || + (keymap->poll_modal_item(op, kmi->propvalue))) + { + event->prevtype = event->type; + event->prevval = event->val; + event->type = EVT_MODAL_MAP; + event->val = kmi->propvalue; + break; + } } } } |