From 197a4f2e3efafdc28c94a8df7b5140fed40eabd9 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 5 May 2020 23:05:50 +0100 Subject: [PATCH] fcitx: Use XLookupString instead of XLookupKeysym to fix modifier keys See: #142 --- src/video/sdl2_v.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/video/sdl2_v.cpp b/src/video/sdl2_v.cpp index 13f41501ba..95e9b056b6 100644 --- a/src/video/sdl2_v.cpp +++ b/src/video/sdl2_v.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #endif @@ -254,7 +255,9 @@ static void FcitxSYSWMEVENT(const SDL_SysWMEvent &event) if (event.msg->subsystem != SDL_SYSWM_X11) return; XEvent &xevent = event.msg->msg.x11.event; if (xevent.type == KeyPress) { - KeySym keysym = XLookupKeysym(&xevent.xkey, 0); + char text[8]; + KeySym keysym = 0; + XLookupString(&xevent.xkey, text, lengthof(text), &keysym, nullptr); _fcitx_last_keycode = xevent.xkey.keycode; _fcitx_last_keysym = keysym; }