[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35188] trunk/blender/source/blender/ windowmanager/intern/wm_keymap.c: Bugfix #26174

Ton Roosendaal ton at blender.org
Fri Feb 25 17:32:03 CET 2011


Revision: 35188
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35188
Author:   ton
Date:     2011-02-25 16:32:03 +0000 (Fri, 25 Feb 2011)
Log Message:
-----------
Bugfix #26174

Shift+A "add primitive" menu didn't allow to set shortcuts on the
sublevels. 

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-02-25 16:19:50 UTC (rev 35187)
+++ trunk/blender/source/blender/windowmanager/intern/wm_keymap.c	2011-02-25 16:32:03 UTC (rev 35188)
@@ -440,6 +440,7 @@
 
 		if(keymap && (!keymap->poll || keymap->poll((bContext*)C))) {
 			for(kmi=keymap->items.first; kmi; kmi=kmi->next) {
+				
 				if(strcmp(kmi->idname, opname) == 0 && WM_key_event_string(kmi->type)[0]) {
 					if (hotkey)
 						if (!ISHOTKEY(kmi->type))
@@ -803,9 +804,19 @@
 	/* Editing Modes */
 	else if (strstr(opname, "MESH_OT")) {
 		km = WM_keymap_find_all(C, "Mesh", 0, 0);
+		
+		/* some mesh operators are active in object mode too, like add-prim */
+		if(km && km->poll && km->poll((bContext *)C)==0) {
+			km = WM_keymap_find_all(C, "Object Mode", 0, 0);
+		}
 	}
 	else if (strstr(opname, "CURVE_OT")) {
 		km = WM_keymap_find_all(C, "Curve", 0, 0);
+		
+		/* some curve operators are active in object mode too, like add-prim */
+		if(km && km->poll && km->poll((bContext *)C)==0) {
+			km = WM_keymap_find_all(C, "Object Mode", 0, 0);
+		}
 	}
 	else if (strstr(opname, "ARMATURE_OT")) {
 		km = WM_keymap_find_all(C, "Armature", 0, 0);
@@ -818,6 +829,11 @@
 	}
 	else if (strstr(opname, "MBALL_OT")) {
 		km = WM_keymap_find_all(C, "Metaball", 0, 0);
+		
+		/* some mball operators are active in object mode too, like add-prim */
+		if(km && km->poll && km->poll((bContext *)C)==0) {
+			km = WM_keymap_find_all(C, "Object Mode", 0, 0);
+		}
 	}
 	else if (strstr(opname, "LATTICE_OT")) {
 		km = WM_keymap_find_all(C, "Lattice", 0, 0);




More information about the Bf-blender-cvs mailing list