aboutsummaryrefslogtreecommitdiff
path: root/src/platform/gui/xcb/Window.cpp
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-09-28 16:33:22 +0800
committerYuqian Yang <crupest@crupest.life>2025-09-28 16:33:22 +0800
commit7a3bb36d69cdf505402a528f9af7a99747754e0a (patch)
tree10a27377fef5660ac5aab9efccee241569d28fe3 /src/platform/gui/xcb/Window.cpp
parent9ccffe83f565374d72511651ab11f4c5bf17cdc8 (diff)
downloadcru-7a3bb36d69cdf505402a528f9af7a99747754e0a.tar.gz
cru-7a3bb36d69cdf505402a528f9af7a99747754e0a.tar.bz2
cru-7a3bb36d69cdf505402a528f9af7a99747754e0a.zip
Let WM handle mouse grabbing.
Diffstat (limited to 'src/platform/gui/xcb/Window.cpp')
-rw-r--r--src/platform/gui/xcb/Window.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/platform/gui/xcb/Window.cpp b/src/platform/gui/xcb/Window.cpp
index 4de7a6d3..e6e92fbc 100644
--- a/src/platform/gui/xcb/Window.cpp
+++ b/src/platform/gui/xcb/Window.cpp
@@ -262,17 +262,21 @@ Point XcbWindow::GetMousePosition() {
bool XcbWindow::CaptureMouse() {
if (!xcb_window_) return false;
- xcb_grab_pointer(application_->GetXcbConnection(), FALSE, *xcb_window_, 0,
- XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC, XCB_WINDOW_NONE,
- XCB_CURSOR_NONE, XCB_CURRENT_TIME);
- application_->XcbFlush();
+ // KDE handles grabbing automatically.
+ //
+ // xcb_grab_pointer(application_->GetXcbConnection(), TRUE, *xcb_window_, 0,
+ // XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC, XCB_WINDOW_NONE,
+ // XCB_CURSOR_NONE, XCB_CURRENT_TIME);
+ // application_->XcbFlush();
return true;
}
bool XcbWindow::ReleaseMouse() {
if (!xcb_window_) return false;
- xcb_ungrab_pointer(application_->xcb_connection_, XCB_CURRENT_TIME);
- application_->XcbFlush();
+ // KDE handles grabbing automatically.
+ //
+ // xcb_ungrab_pointer(application_->xcb_connection_, XCB_CURRENT_TIME);
+ // application_->XcbFlush();
return true;
}
@@ -347,7 +351,7 @@ IEvent<NativeKeyEventArgs> *XcbWindow::KeyDownEvent() {
IEvent<NativeKeyEventArgs> *XcbWindow::KeyUpEvent() { return &key_up_event_; }
-IInputMethodContext *XcbWindow::GetInputMethodContext() { NotImplemented(); }
+IInputMethodContext *XcbWindow::GetInputMethodContext() { return nullptr; }
std::optional<xcb_window_t> XcbWindow::GetXcbWindow() { return xcb_window_; }