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

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to