diff options
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); } |