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-08-29 04:29:29 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-08-29 04:31:49 +0300
commitc489c8481f112fc6027f88e51dffe7104baa3f16 (patch)
tree562bb2397f0ff8eff2936876cacf0faf3520b32c /source/blender/windowmanager
parentab2b6134c932057d97dc2a7d3e297c0f696ac1e5 (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.c16
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;
+ }
}
}
}