diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-10-16 21:16:43 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-10-16 21:16:43 +0800 |
commit | a8b83f7b483a516fb92e2e22b3f364d51b7eb273 (patch) | |
tree | cc869eaa751935e13b983c0bdd961e9c0be8f44f /src | |
parent | 073a1e3e5af78fb0d220169009fd6a0939b432d2 (diff) | |
download | cru-a8b83f7b483a516fb92e2e22b3f364d51b7eb273.tar.gz cru-a8b83f7b483a516fb92e2e22b3f364d51b7eb273.tar.bz2 cru-a8b83f7b483a516fb92e2e22b3f364d51b7eb273.zip |
Resort input method demo.
Diffstat (limited to 'src')
-rw-r--r-- | src/base/log/Logger.cpp | 1 | ||||
-rw-r--r-- | src/platform/gui/xcb/InputMethod.cpp | 6 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/base/log/Logger.cpp b/src/base/log/Logger.cpp index e8714f26..50a41e0f 100644 --- a/src/base/log/Logger.cpp +++ b/src/base/log/Logger.cpp @@ -120,6 +120,7 @@ void Logger::LogThreadRun() { log_queue_condition_variable_.wait( lock, [this] { return !log_queue_.empty() || log_stop_; }); queue = std::move(log_queue_); + log_queue_ = {}; stop = log_stop_; } diff --git a/src/platform/gui/xcb/InputMethod.cpp b/src/platform/gui/xcb/InputMethod.cpp index 2b495925..1d0cd538 100644 --- a/src/platform/gui/xcb/InputMethod.cpp +++ b/src/platform/gui/xcb/InputMethod.cpp @@ -2,6 +2,7 @@ #include "cru/base/log/Logger.h" #include "cru/platform/Check.h" #include "cru/platform/gui/InputMethod.h" +#include "cru/platform/gui/Keyboard.h" #include "cru/platform/gui/xcb/Keyboard.h" #include "cru/platform/gui/xcb/UiApplication.h" #include "cru/platform/gui/xcb/Window.h" @@ -29,7 +30,10 @@ XcbXimInputMethodManager::XcbXimInputMethodManager( auto text = manager->application_->GetXcbKeyboardManager()->KeycodeToUtf8( event->detail); - if (text.empty() || text == "\b") { + auto modifiers = ConvertModifiersOfEvent(event->detail); + if (text.empty() || text == "\b" || + modifiers.Has(KeyModifiers::Alt) || + modifiers.Has(KeyModifiers::Ctrl)) { if (manager->forward_event_callback_) { manager->forward_event_callback_(event); } |