[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42644] trunk/blender/intern/ghost/intern/ GHOST_SystemWin32.cpp: Fix #29233: Windows accessibility feature " sticky keys" for disabled people not working.

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Dec 15 14:01:08 CET 2011


Revision: 42644
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42644
Author:   blendix
Date:     2011-12-15 13:01:01 +0000 (Thu, 15 Dec 2011)
Log Message:
-----------
Fix #29233: Windows accessibility feature "sticky keys" for disabled people not working.

Modified Paths:
--------------
    trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp	2011-12-15 12:44:05 UTC (rev 42643)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp	2011-12-15 13:01:01 UTC (rev 42644)
@@ -438,8 +438,12 @@
 
 	GHOST_ModifierKeys modifiers;
 	system->retrieveModifierKeys(modifiers);
-	
-	*keyDown = !(raw.data.keyboard.Flags & RI_KEY_BREAK);
+
+	// RI_KEY_BREAK doesn't work for sticky keys release, so we also
+	// check for the up message
+	unsigned int msg = raw.data.keyboard.Message;
+	*keyDown = !(raw.data.keyboard.Flags & RI_KEY_BREAK) && msg != WM_KEYUP && msg != WM_SYSKEYUP;
+
 	key = this->convertKey(window, raw.data.keyboard.VKey, raw.data.keyboard.MakeCode, (raw.data.keyboard.Flags&(RI_KEY_E1|RI_KEY_E0)));
 	
 	// extra handling of modifier keys: don't send repeats out from GHOST




More information about the Bf-blender-cvs mailing list