From a8b83f7b483a516fb92e2e22b3f364d51b7eb273 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Thu, 16 Oct 2025 21:16:43 +0800 Subject: Resort input method demo. --- src/base/log/Logger.cpp | 1 + src/platform/gui/xcb/InputMethod.cpp | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src') 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); } -- cgit v1.2.3