From abd5b2a5035395241f41d7d1f1bf467fb8c2aa67 Mon Sep 17 00:00:00 2001 From: Arthur Sonzogni Date: Wed, 28 Dec 2022 11:47:11 +0100 Subject: [PATCH] Fix Windows UTF16 char. (#538) Windows output UTF16 unicode char, but FTXUI works using UTF8. Do the conversion. This resolves: https://github.com/ArthurSonzogni/FTXUI/issues/495 --- src/ftxui/component/screen_interactive.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ftxui/component/screen_interactive.cpp b/src/ftxui/component/screen_interactive.cpp index 7617d364..0bcfdbea 100644 --- a/src/ftxui/component/screen_interactive.cpp +++ b/src/ftxui/component/screen_interactive.cpp @@ -26,6 +26,7 @@ #include "ftxui/component/terminal_input_parser.hpp" // for TerminalInputParser #include "ftxui/dom/node.hpp" // for Node, Render #include "ftxui/dom/requirement.hpp" // for Requirement +#include "ftxui/screen/string.hpp" #include "ftxui/screen/terminal.hpp" // for Size, Dimensions #if defined(_WIN32) @@ -104,7 +105,11 @@ void EventListener(std::atomic* quit, Sender out) { // ignore UP key events if (key_event.bKeyDown == FALSE) continue; - parser.Add((char)key_event.uChar.UnicodeChar); + std::wstring wstring; + wstring += key_event.uChar.UnicodeChar; + for(auto it : to_string(wstring)) { + parser.Add(it); + } } break; case WINDOW_BUFFER_SIZE_EVENT: out->Send(Event::Special({0}));