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>2020-03-26 11:02:15 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-03-26 11:11:50 +0300
commite8dd96516c60c4c43c8eb217f2c2cc61761cd0a0 (patch)
treecaca01d39d7072747bc2f6a3ea1046ef15715ee6 /source/blender/windowmanager
parent03b2fc1a615b442902a6565b27b73d1c5bf4ecbe (diff)
Keymap: disallow modal key-maps in add-ons keyconfig
Disable functionality reported in T60766 & only partially worked. This could be used if the key-map was added after Blender started as a way to customize modal key-maps, however it didn't work with the add-on enabled on startup. Add-on key-maps are intended to extend existing key-maps so they can call the add-on, not as a way to change modal key-maps for Blender's built-in functionality. Disable this since it's not needed as add-ons can't yet define modal key-maps.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c2
-rw-r--r--source/blender/windowmanager/intern/wm_keymap.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 6f133e063f7..b61759e6d97 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1864,6 +1864,8 @@ static wmKeyMapItem *wm_eventmatch_modal_keymap_items(const wmKeyMap *keymap,
const wmEvent *event)
{
for (wmKeyMapItem *kmi = keymap->items.first; kmi; kmi = kmi->next) {
+ /* Should already be handled by #wm_user_modal_keymap_set_items. */
+ BLI_assert(kmi->propvalue_str[0] == '\0');
if (wm_eventmatch(event, kmi)) {
if ((keymap->poll_modal_item == NULL) || (keymap->poll_modal_item(op, kmi->propvalue))) {
return kmi;
diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c
index c1a4595ec6b..ab4888d4d31 100644
--- a/source/blender/windowmanager/intern/wm_keymap.c
+++ b/source/blender/windowmanager/intern/wm_keymap.c
@@ -1900,6 +1900,8 @@ void WM_keyconfig_update(wmWindowManager *wm)
addonmap = WM_keymap_list_find(&wm->addonconf->keymaps, km->idname, km->spaceid, km->regionid);
usermap = WM_keymap_list_find(&U.user_keymaps, km->idname, km->spaceid, km->regionid);
+ /* For now only the default map defines modal key-maps,
+ * if we support modal keymaps for 'addonmap', these will need to be enabled too. */
wm_user_modal_keymap_set_items(wm, defaultmap);
/* add */