[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