From b078daf4d24d290abdc222e9cd3ef272c93ba5fa Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Tue, 19 Oct 2021 20:42:01 +0300
Subject: [PATCH] SL-14977 Fix passing wrong codes to ToUnicodeEx

---
 indra/newview/llviewerwindow.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 9c4eba25bcb..783c46a33b5 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -2916,7 +2916,8 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
                     // ToUnicodeEx changes buffer state on OS below Win10, which is undesirable,
                     // but since we already did a TranslateMessage() in gatherInput(), this
                     // should have no negative effect
-                    int res = ToUnicodeEx(key, 0, keyboard_state, chars, char_count, 1 << 2 /*do not modify buffer flag*/, layout);
+                    // ToUnicodeEx works with virtual key codes
+                    int res = ToUnicodeEx(raw_key, 0, keyboard_state, chars, char_count, 1 << 2 /*do not modify buffer flag*/, layout);
                     if (res == 1 && chars[0] >= 0x20)
                     {
                         // Let it fall through to character handler and get a WM_CHAR.
-- 
GitLab