[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25064] trunk/blender/source/blender: Reset operator properties for keymap items when operator idname is changed .
Martin Poirier
theeth at yahoo.com
Wed Dec 2 05:12:16 CET 2009
Revision: 25064
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25064
Author: theeth
Date: 2009-12-02 05:12:16 +0100 (Wed, 02 Dec 2009)
Log Message:
-----------
Reset operator properties for keymap items when operator idname is changed.
This means added operators in the keymap editor will now show options correctly (maybe not for old .B25.blend)
Modified Paths:
--------------
trunk/blender/source/blender/makesrna/intern/rna_wm.c
trunk/blender/source/blender/windowmanager/WM_api.h
trunk/blender/source/blender/windowmanager/intern/wm_keymap.c
Modified: trunk/blender/source/blender/makesrna/intern/rna_wm.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_wm.c 2009-12-02 04:07:40 UTC (rev 25063)
+++ trunk/blender/source/blender/makesrna/intern/rna_wm.c 2009-12-02 04:12:16 UTC (rev 25064)
@@ -255,6 +255,8 @@
#include "BKE_idprop.h"
+#include "MEM_guardedalloc.h"
+
static wmOperator *rna_OperatorProperties_find_operator(PointerRNA *ptr)
{
wmWindowManager *wm= ptr->id.data;
@@ -558,6 +560,8 @@
WM_operator_bl_idname(idname, value);
BLI_strncpy(kmi->idname, idname, sizeof(kmi->idname));
+
+ WM_keymap_properties_reset(kmi);
}
#else
Modified: trunk/blender/source/blender/windowmanager/WM_api.h
===================================================================
--- trunk/blender/source/blender/windowmanager/WM_api.h 2009-12-02 04:07:40 UTC (rev 25063)
+++ trunk/blender/source/blender/windowmanager/WM_api.h 2009-12-02 04:12:16 UTC (rev 25064)
@@ -112,6 +112,7 @@
int WM_keymap_user_init(struct wmWindowManager *wm, struct wmKeyMap *keymap);
wmKeyMap *WM_keymap_copy_to_user(struct wmKeyMap *keymap);
void WM_keymap_restore_to_default(struct wmKeyMap *keymap);
+void WM_keymap_properties_reset(struct wmKeyMapItem *kmi);
wmKeyMap *WM_modalkeymap_add(struct wmKeyConfig *keyconf, char *idname, struct EnumPropertyItem *items);
wmKeyMap *WM_modalkeymap_get(struct wmKeyConfig *keyconf, char *idname);
Modified: trunk/blender/source/blender/windowmanager/intern/wm_keymap.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_keymap.c 2009-12-02 04:07:40 UTC (rev 25063)
+++ trunk/blender/source/blender/windowmanager/intern/wm_keymap.c 2009-12-02 04:12:16 UTC (rev 25064)
@@ -55,6 +55,17 @@
/* ********************* key config ***********************/
+void WM_keymap_properties_reset(wmKeyMapItem *kmi)
+{
+ WM_operator_properties_free(kmi->ptr);
+ MEM_freeN(kmi->ptr);
+
+ kmi->ptr = NULL;
+ kmi->properties = NULL;
+
+ WM_operator_properties_alloc(&(kmi->ptr), &(kmi->properties), kmi->idname);
+}
+
static void keymap_properties_set(wmKeyMapItem *kmi)
{
WM_operator_properties_alloc(&(kmi->ptr), &(kmi->properties), kmi->idname);
More information about the Bf-blender-cvs
mailing list