[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24774] trunk/blender: 2.5: Emulate numpad works again.

Brecht Van Lommel brecht at blender.org
Sun Nov 22 17:33:47 CET 2009


Revision: 24774
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24774
Author:   blendix
Date:     2009-11-22 17:33:47 +0100 (Sun, 22 Nov 2009)

Log Message:
-----------
2.5: Emulate numpad works again.

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_userpref.py
    trunk/blender/source/blender/makesrna/intern/rna_userdef.c
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: trunk/blender/release/scripts/ui/space_userpref.py
===================================================================
--- trunk/blender/release/scripts/ui/space_userpref.py	2009-11-22 16:33:00 UTC (rev 24773)
+++ trunk/blender/release/scripts/ui/space_userpref.py	2009-11-22 16:33:47 UTC (rev 24774)
@@ -275,7 +275,6 @@
         sub1.itemR(system, "dpi")
         sub1.itemR(system, "frame_server_port")
         sub1.itemR(system, "scrollback", text="Console Scrollback")
-        sub1.itemR(system, "emulate_numpad")
         sub1.itemR(system, "auto_run_python_scripts")
 
         sub1.itemS()
@@ -1129,8 +1128,10 @@
         sub.row().itemR(inputs, "middle_mouse", expand=True)
 
         sub.itemS()
+
+        sub.itemR(inputs, "emulate_numpad")
+
         sub.itemS()
-        sub.itemS()
 
         sub.itemL(text="Orbit Style:")
         sub.row().itemR(inputs, "view_rotation", expand=True)

Modified: trunk/blender/source/blender/makesrna/intern/rna_userdef.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_userdef.c	2009-11-22 16:33:00 UTC (rev 24773)
+++ trunk/blender/source/blender/makesrna/intern/rna_userdef.c	2009-11-22 16:33:47 UTC (rev 24774)
@@ -2160,10 +2160,6 @@
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_DONT_DOSCRIPTLINKS);
 	RNA_def_property_ui_text(prop, "Auto Run Python Scripts", "Allow any .blend file to run scripts automatically (unsafe with blend files from an untrusted source).");
 
-	prop= RNA_def_property(srna, "emulate_numpad", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_NONUMPAD);
-	RNA_def_property_ui_text(prop, "Emulate Numpad", "Causes the 1 to 0 keys to act as the numpad (useful for laptops).");
-
 	prop= RNA_def_property(srna, "prefetch_frames", PROP_INT, PROP_NONE);
 	RNA_def_property_int_sdna(prop, NULL, "prefetchframes");
 	RNA_def_property_range(prop, 0, 500);
@@ -2326,6 +2322,10 @@
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_TWOBUTTONMOUSE);
 	RNA_def_property_boolean_funcs(prop, NULL, "rna_userdef_emulate_set");
 	RNA_def_property_ui_text(prop, "Emulate 3 Button Mouse", "Emulates Middle Mouse with Alt+LeftMouse (doesnt work with Left Mouse Select option.)");
+
+	prop= RNA_def_property(srna, "emulate_numpad", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_NONUMPAD);
+	RNA_def_property_ui_text(prop, "Emulate Numpad", "Causes the 1 to 0 keys to act as the numpad (useful for laptops).");
 }
 
 static void rna_def_userdef_filepaths(BlenderRNA *brna)

Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2009-11-22 16:33:00 UTC (rev 24773)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2009-11-22 16:33:47 UTC (rev 24774)
@@ -774,7 +774,31 @@
 				return 1;
 		}
 	}
+	/* exception for numpad emulation */
+	else if(U.flag & USER_NONUMPAD) {
+		wmKeyMapItem tmp= *kmi;
 
+		switch(kmi->type) {
+			case PAD0: tmp.type = ZEROKEY; break;
+			case PAD1: tmp.type = ONEKEY; break;
+			case PAD2: tmp.type = TWOKEY; break;
+			case PAD3: tmp.type = THREEKEY; break;
+			case PAD4: tmp.type = FOURKEY; break;
+			case PAD5: tmp.type = FIVEKEY; break;
+			case PAD6: tmp.type = SIXKEY; break;
+			case PAD7: tmp.type = SEVENKEY; break;
+			case PAD8: tmp.type = EIGHTKEY; break;
+			case PAD9: tmp.type = NINEKEY; break;
+			case PADMINUS: tmp.type = MINUSKEY; break;
+			case PADPLUSKEY: tmp.type = EQUALKEY; break;
+			case PADSLASHKEY: tmp.type = BACKSLASHKEY; break;
+		}
+
+		if(tmp.type != kmi->type)
+			if(wm_eventmatch(winevent, &tmp))
+				return 1;
+	}
+
 	/* the matching rules */
 	if(kmitype==KM_TEXTINPUT)
 		if(ISTEXTINPUT(winevent->type) && winevent->ascii) return 1;





More information about the Bf-blender-cvs mailing list