Revision: 39126
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39126
Author: blendix
Date: 2011-08-07 11:01:55 +0000 (Sun, 07 Aug 2011)
Log Message:
-----------
Fix #28169: keymap bug when using a preset configuration, e.g. object mode
keymap
was also being used in edit mode.
Modified Paths:
--------------
trunk/blender/source/blender/windowmanager/intern/wm_keymap.c
Modified: trunk/blender/source/blender/windowmanager/intern/wm_keymap.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_keymap.c
2011-08-07 10:29:43 UTC (rev 39125)
+++ trunk/blender/source/blender/windowmanager/intern/wm_keymap.c
2011-08-07 11:01:55 UTC (rev 39126)
@@ -532,7 +532,7 @@
}
}
-static void wm_keymap_patch_update(ListBase *lb, wmKeyMap *defaultmap,
wmKeyMap *addonmap, wmKeyMap *usermap)
+static wmKeyMap *wm_keymap_patch_update(ListBase *lb, wmKeyMap *defaultmap,
wmKeyMap *addonmap, wmKeyMap *usermap)
{
wmKeyMap *km;
int expanded = 0;
@@ -552,8 +552,6 @@
wmKeyMapItem *kmi, *orig_kmi;
km = wm_keymap_copy(usermap);
- km->modal_items = defaultmap->modal_items;
- km->poll = defaultmap->poll;
/* try to find corresponding id's for items */
for(kmi=km->items.first; kmi; kmi=kmi->next) {
@@ -587,6 +585,8 @@
/* add to list */
BLI_addtail(lb, km);
+
+ return km;
}
static void wm_keymap_diff_update(ListBase *lb, wmKeyMap *defaultmap, wmKeyMap
*addonmap, wmKeyMap *km)
@@ -977,7 +977,7 @@
void WM_keyconfig_update(wmWindowManager *wm)
{
- wmKeyMap *km, *defaultmap, *addonmap, *usermap;
+ wmKeyMap *km, *defaultmap, *addonmap, *usermap, *kmn;
wmKeyMapItem *kmi;
wmKeyMapDiffItem *kmdi;
int compat_update = 0;
@@ -1021,8 +1021,13 @@
usermap= WM_keymap_list_find(&U.user_keymaps, km->idname,
km->spaceid, km->regionid);
/* add */
- wm_keymap_patch_update(&wm->userconf->keymaps, defaultmap,
addonmap, usermap);
+ kmn= wm_keymap_patch_update(&wm->userconf->keymaps, defaultmap,
addonmap, usermap);
+ if(kmn) {
+ kmn->modal_items= km->modal_items;
+ kmn->poll= km->poll;
+ }
+
/* in case of old non-diff keymaps, force extra update to
create diffs */
compat_update = compat_update || (usermap && !(usermap->flag &
KEYMAP_DIFF));
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs