[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