Keymap: check modal keymap item poll function
Fixes T56591: Vertex/Edge slide C-Key fails
This commit is contained in:
@@ -1871,16 +1871,18 @@ static void wm_event_modalkeymap(const bContext *C, wmOperator *op, wmEvent *eve
|
|||||||
|
|
||||||
for (kmi = keymap->items.first; kmi; kmi = kmi->next) {
|
for (kmi = keymap->items.first; kmi; kmi = kmi->next) {
|
||||||
if (wm_eventmatch(event, kmi)) {
|
if (wm_eventmatch(event, kmi)) {
|
||||||
|
if ((keymap->poll_modal_item == NULL) ||
|
||||||
|
(keymap->poll_modal_item(op, kmi->propvalue)))
|
||||||
|
{
|
||||||
event->prevtype = event->type;
|
event->prevtype = event->type;
|
||||||
event->prevval = event->val;
|
event->prevval = event->val;
|
||||||
event->type = EVT_MODAL_MAP;
|
event->type = EVT_MODAL_MAP;
|
||||||
event->val = kmi->propvalue;
|
event->val = kmi->propvalue;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
/* modal keymap checking returns handled events fine, but all hardcoded modal
|
/* modal keymap checking returns handled events fine, but all hardcoded modal
|
||||||
* handling typically swallows all events (OPERATOR_RUNNING_MODAL).
|
* handling typically swallows all events (OPERATOR_RUNNING_MODAL).
|
||||||
|
Reference in New Issue
Block a user