[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40690] trunk/blender/source/blender: Fix #28769 & #28768: problem with duplicated keymap items after fix yesterday.
Brecht Van Lommel
brechtvanlommel at pandora.be
Thu Sep 29 15:52:58 CEST 2011
Revision: 40690
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40690
Author: blendix
Date: 2011-09-29 13:52:58 +0000 (Thu, 29 Sep 2011)
Log Message:
-----------
Fix #28769 & #28768: problem with duplicated keymap items after fix yesterday.
Modified Paths:
--------------
trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
trunk/blender/source/blender/windowmanager/intern/wm.c
Modified: trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h 2011-09-29 12:11:58 UTC (rev 40689)
+++ trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h 2011-09-29 13:52:58 UTC (rev 40690)
@@ -295,6 +295,7 @@
/* wmKeyConfig.flag */
#define KEYCONF_USER (1 << 1)
+#define KEYCONF_INIT_DEFAULT (1 << 2)
/* this one is the operator itself, stored in files for macros etc */
/* operator + operatortype should be able to redo entirely, but for different contextes */
Modified: trunk/blender/source/blender/windowmanager/intern/wm.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm.c 2011-09-29 12:11:58 UTC (rev 40689)
+++ trunk/blender/source/blender/windowmanager/intern/wm.c 2011-09-29 13:52:58 UTC (rev 40690)
@@ -230,6 +230,7 @@
{
wmWindowManager *wm= CTX_wm_manager(C);
+ /* create standard key configs */
if(!wm->defaultconf)
wm->defaultconf= WM_keyconfig_new(wm, "Blender");
if(!wm->addonconf)
@@ -237,11 +238,18 @@
if(!wm->userconf)
wm->userconf= WM_keyconfig_new(wm, "Blender User");
+ /* initialize only after python init is done, for keymaps that
+ use python operators */
if(CTX_py_init_get(C) && (wm->initialized & WM_INIT_KEYMAP) == 0) {
- /* create default key config */
- wm_window_keymap(wm->defaultconf);
- ED_spacetypes_keymap(wm->defaultconf);
+ /* create default key config, only initialize once,
+ it's persistent across sessions */
+ if(!(wm->defaultconf->flag & KEYCONF_INIT_DEFAULT)) {
+ wm_window_keymap(wm->defaultconf);
+ ED_spacetypes_keymap(wm->defaultconf);
+ wm->defaultconf->flag |= KEYCONF_INIT_DEFAULT;
+ }
+
WM_keyconfig_update_tag(NULL, NULL);
WM_keyconfig_update(wm);
More information about the Bf-blender-cvs
mailing list