aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/base/log/Logger.cpp1
-rw-r--r--src/platform/gui/xcb/InputMethod.cpp6
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);
}