[Bf-blender-cvs] [1b1c683f747] master: Fix missing text input on Windows with certain keyboard layouts

Germano Cavalcante noreply at git.blender.org
Thu Mar 26 13:23:01 CET 2020


Commit: 1b1c683f747932afbdf939a27fd0da97ac5210ab
Author: Germano Cavalcante
Date:   Thu Mar 26 09:22:37 2020 -0300
Branches: master
https://developer.blender.org/rB1b1c683f747932afbdf939a27fd0da97ac5210ab

Fix missing text input on Windows with certain keyboard layouts

Events for keys specific to certain keyboard layouts unknown to Blender
were ignored. Now pass them along as unknown key events for which we
can still handle text input, like we already do for Linux and macOS.

Differential Revision: https://developer.blender.org/D7229

===================================================================

M	intern/ghost/intern/GHOST_SystemWin32.cpp

===================================================================

diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp
index 26d3aea403c..e31186bd6a5 100644
--- a/intern/ghost/intern/GHOST_SystemWin32.cpp
+++ b/intern/ghost/intern/GHOST_SystemWin32.cpp
@@ -1044,7 +1044,10 @@ GHOST_EventKey *GHOST_SystemWin32::processKeyEvent(GHOST_WindowWin32 *window, RA
   GHOST_TKey key = system->hardKey(raw, &keyDown, &vk);
   GHOST_EventKey *event;
 
-  if (key != GHOST_kKeyUnknown) {
+  /* We used to check `if (key != GHOST_kKeyUnknown)`, but since the message
+   * values `WM_SYSKEYUP`, `WM_KEYUP` and `WM_CHAR` are ignored, we capture
+   * those events here as well. */
+  {
     char utf8_char[6] = {0};
     char ascii = 0;
     bool is_repeat = false;
@@ -1102,9 +1105,6 @@ GHOST_EventKey *GHOST_SystemWin32::processKeyEvent(GHOST_WindowWin32 *window, RA
 
     // GHOST_PRINTF("%c\n", ascii); // we already get this info via EventPrinter
   }
-  else {
-    event = NULL;
-  }
   return event;
 }



More information about the Bf-blender-cvs mailing list