diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-09-30 00:16:13 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-10-03 00:13:54 +0800 |
commit | 047e0eba34c669ff71535602c09edec587912059 (patch) | |
tree | ed1b98bf2c1451f9cc02b96cd45f4eae00163b6d /src/platform/gui/xcb/Keyboard.cpp | |
parent | e903083732b0d4638ac066fc85b030b121d8e7e6 (diff) | |
download | cru-047e0eba34c669ff71535602c09edec587912059.tar.gz cru-047e0eba34c669ff71535602c09edec587912059.tar.bz2 cru-047e0eba34c669ff71535602c09edec587912059.zip |
Impl input method for xim 3.
Diffstat (limited to 'src/platform/gui/xcb/Keyboard.cpp')
-rw-r--r-- | src/platform/gui/xcb/Keyboard.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/platform/gui/xcb/Keyboard.cpp b/src/platform/gui/xcb/Keyboard.cpp index c52f7cc1..f49cac51 100644 --- a/src/platform/gui/xcb/Keyboard.cpp +++ b/src/platform/gui/xcb/Keyboard.cpp @@ -7,6 +7,7 @@ #include <xcb/xcb.h> #include <xcb/xproto.h> #include <bitset> +#include <cctype> #include <climits> #include <unordered_map> #include <utility> @@ -114,9 +115,10 @@ KeyCode XorgKeycodeToCruKeyCode(XcbUiApplication *application, return KeyCode::Unknown; } -std::string XorgKeysymToUtf8(xcb_keysym_t keysym) { +std::string XorgKeysymToUtf8(xcb_keysym_t keysym, bool upper) { if (0x20 <= keysym && keysym <= 0x7e || 0xa0 <= keysym && keysym <= 0xff) { - return std::string{static_cast<char>(keysym)}; + return std::string{ + static_cast<char>(upper ? std::toupper(keysym) : keysym)}; } if (0x01000100 <= keysym && keysym <= 0x0110FFFF) { |