[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51776] trunk/blender/source/blender/ windowmanager: fix [#30479] Exclamation mark '!' doesn' t input with AZERTY keyboard mapping

Andrea Weikert elubie at gmx.net
Tue Oct 30 22:06:25 CET 2012


Revision: 51776
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51776
Author:   elubie
Date:     2012-10-30 21:06:25 +0000 (Tue, 30 Oct 2012)
Log Message:
-----------
fix [#30479] Exclamation mark '!' doesn't input with AZERTY keyboard mapping
For the french keyboard setting (AZERTY) on Windows, the '!' came back with winevent->type=312, winevent->ascii='!' and the ISTEXTINPUT only matched key codes up to 255. Now replaces with
ISKEYBOARD in wm_eventmatch.

Modified Paths:
--------------
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
    trunk/blender/source/blender/windowmanager/wm_event_types.h

Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2012-10-30 21:05:51 UTC (rev 51775)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2012-10-30 21:06:25 UTC (rev 51776)
@@ -1331,8 +1331,12 @@
 
 	/* the matching rules */
 	if (kmitype == KM_TEXTINPUT)
-		if (winevent->val == KM_PRESS) // prevent double clicks
-			if (ISTEXTINPUT(winevent->type) && (winevent->ascii || winevent->utf8_buf[0])) return 1;
+		if (winevent->val == KM_PRESS) { // prevent double clicks			
+			/* NOT using ISTEXTINPUT anymore because (at least on Windows) some key codes above 255
+			could have printable ascii keys - BUG [#30479] */
+			if (ISKEYBOARD(winevent->type) && (winevent->ascii || winevent->utf8_buf[0])) return 1; 
+		}
+
 	if (kmitype != KM_ANY)
 		if (winevent->type != kmitype) return 0;
 	
@@ -1355,7 +1359,7 @@
 	/* key modifiers always check when event has it */
 	/* otherwise regular keypresses with keymodifier still work */
 	if (winevent->keymodifier)
-		if (ISTEXTINPUT(winevent->type)) 
+		if (ISKEYBOARD(winevent->type)) // was ISTEXTINPUT - BUG [#30479]
 			if (winevent->keymodifier != kmi->keymodifier) return 0;
 	
 	return 1;

Modified: trunk/blender/source/blender/windowmanager/wm_event_types.h
===================================================================
--- trunk/blender/source/blender/windowmanager/wm_event_types.h	2012-10-30 21:05:51 UTC (rev 51775)
+++ trunk/blender/source/blender/windowmanager/wm_event_types.h	2012-10-30 21:06:25 UTC (rev 51776)
@@ -285,8 +285,9 @@
 
 /* for event checks */
 	/* only used for KM_TEXTINPUT, so assume that we want all user-inputtable ascii codes included */
+	/* UNUSED - see wm_eventmatch - BUG [#30479]
 #define ISTEXTINPUT(event)  (event >= ' ' && event <= 255)
-
+	*/
 	/* test whether the event is a key on the keyboard */
 #define ISKEYBOARD(event)  (event >= ' ' && event <= 320)
 




More information about the Bf-blender-cvs mailing list