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
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2021-03-14 10:03:16 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-03-14 10:08:05 +0300
commit2919c4bf9df4fc1cf6a10aec152411b02598dc9b (patch)
tree9cb163fed2d5a9f54a6a174b98a8d2ffbfdb0d49 /source
parentd2f4fc8275d4df6e585815757c69c762412bfa65 (diff)
Cleanup: use explicit check for WM_KEYMAP_UPDATE_RECONFIGURE
A block of code ran when `wm_keymap_update_flag` was non-zero, replace this with explicit flag check since it wasn't immediately obvious which flag needed to be set.
Diffstat (limited to 'source')
-rw-r--r--source/blender/windowmanager/intern/wm_keymap.c93
1 files changed, 46 insertions, 47 deletions
diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c
index 1b4908224cc..38d06ea83d3 100644
--- a/source/blender/windowmanager/intern/wm_keymap.c
+++ b/source/blender/windowmanager/intern/wm_keymap.c
@@ -1801,72 +1801,71 @@ void WM_keyconfig_update(wmWindowManager *wm)
wm_keymap_update_flag &= ~WM_KEYMAP_UPDATE_OPERATORTYPE;
}
- if (wm_keymap_update_flag == 0) {
- return;
- }
-
- /* update operator properties for non-modal user keymaps */
- LISTBASE_FOREACH (wmKeyMap *, km, &U.user_keymaps) {
- if ((km->flag & KEYMAP_MODAL) == 0) {
- LISTBASE_FOREACH (wmKeyMapDiffItem *, kmdi, &km->diff_items) {
- if (kmdi->add_item) {
- wm_keymap_item_properties_set(kmdi->add_item);
+ if (wm_keymap_update_flag & WM_KEYMAP_UPDATE_RECONFIGURE) {
+ /* update operator properties for non-modal user keymaps */
+ LISTBASE_FOREACH (wmKeyMap *, km, &U.user_keymaps) {
+ if ((km->flag & KEYMAP_MODAL) == 0) {
+ LISTBASE_FOREACH (wmKeyMapDiffItem *, kmdi, &km->diff_items) {
+ if (kmdi->add_item) {
+ wm_keymap_item_properties_set(kmdi->add_item);
+ }
+ if (kmdi->remove_item) {
+ wm_keymap_item_properties_set(kmdi->remove_item);
+ }
}
- if (kmdi->remove_item) {
- wm_keymap_item_properties_set(kmdi->remove_item);
+
+ LISTBASE_FOREACH (wmKeyMapItem *, kmi, &km->items) {
+ wm_keymap_item_properties_set(kmi);
}
}
+ }
- LISTBASE_FOREACH (wmKeyMapItem *, kmi, &km->items) {
- wm_keymap_item_properties_set(kmi);
+ /* update U.user_keymaps with user key configuration changes */
+ LISTBASE_FOREACH (wmKeyMap *, km, &wm->userconf->keymaps) {
+ /* only diff if the user keymap was modified */
+ if (wm_keymap_test_and_clear_update(km)) {
+ /* find keymaps */
+ wmKeyMap *defaultmap = wm_keymap_preset(wm, km);
+ wmKeyMap *addonmap = WM_keymap_list_find(
+ &wm->addonconf->keymaps, km->idname, km->spaceid, km->regionid);
+
+ /* diff */
+ if (defaultmap) {
+ wm_keymap_diff_update(&U.user_keymaps, defaultmap, addonmap, km);
+ }
}
}
- }
- /* update U.user_keymaps with user key configuration changes */
- LISTBASE_FOREACH (wmKeyMap *, km, &wm->userconf->keymaps) {
- /* only diff if the user keymap was modified */
- if (wm_keymap_test_and_clear_update(km)) {
+ /* create user key configuration from preset + addon + user preferences */
+ LISTBASE_FOREACH (wmKeyMap *, km, &wm->defaultconf->keymaps) {
/* find keymaps */
wmKeyMap *defaultmap = wm_keymap_preset(wm, km);
wmKeyMap *addonmap = WM_keymap_list_find(
&wm->addonconf->keymaps, km->idname, km->spaceid, km->regionid);
+ wmKeyMap *usermap = WM_keymap_list_find(
+ &U.user_keymaps, km->idname, km->spaceid, km->regionid);
- /* diff */
- if (defaultmap) {
- wm_keymap_diff_update(&U.user_keymaps, defaultmap, addonmap, km);
- }
- }
- }
-
- /* create user key configuration from preset + addon + user preferences */
- LISTBASE_FOREACH (wmKeyMap *, km, &wm->defaultconf->keymaps) {
- /* find keymaps */
- wmKeyMap *defaultmap = wm_keymap_preset(wm, km);
- wmKeyMap *addonmap = WM_keymap_list_find(
- &wm->addonconf->keymaps, km->idname, km->spaceid, km->regionid);
- wmKeyMap *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);
- /* 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 */
+ wmKeyMap *kmn = wm_keymap_patch_update(
+ &wm->userconf->keymaps, defaultmap, addonmap, usermap);
- /* add */
- wmKeyMap *kmn = wm_keymap_patch_update(&wm->userconf->keymaps, defaultmap, addonmap, usermap);
+ if (kmn) {
+ kmn->modal_items = km->modal_items;
+ kmn->poll = km->poll;
+ kmn->poll_modal_item = km->poll_modal_item;
+ }
- if (kmn) {
- kmn->modal_items = km->modal_items;
- kmn->poll = km->poll;
- kmn->poll_modal_item = km->poll_modal_item;
+ /* in case of old non-diff keymaps, force extra update to create diffs */
+ compat_update = compat_update || (usermap && !(usermap->flag & KEYMAP_DIFF));
}
- /* in case of old non-diff keymaps, force extra update to create diffs */
- compat_update = compat_update || (usermap && !(usermap->flag & KEYMAP_DIFF));
+ wm_keymap_update_flag &= ~WM_KEYMAP_UPDATE_RECONFIGURE;
}
- wm_keymap_update_flag &= ~WM_KEYMAP_UPDATE_RECONFIGURE;
-
BLI_assert(wm_keymap_update_flag == 0);
if (compat_update) {