diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-09-28 16:33:22 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-09-28 16:33:22 +0800 |
commit | 7a3bb36d69cdf505402a528f9af7a99747754e0a (patch) | |
tree | 10a27377fef5660ac5aab9efccee241569d28fe3 /src | |
parent | 9ccffe83f565374d72511651ab11f4c5bf17cdc8 (diff) | |
download | cru-7a3bb36d69cdf505402a528f9af7a99747754e0a.tar.gz cru-7a3bb36d69cdf505402a528f9af7a99747754e0a.tar.bz2 cru-7a3bb36d69cdf505402a528f9af7a99747754e0a.zip |
Let WM handle mouse grabbing.
Diffstat (limited to 'src')
-rw-r--r-- | src/platform/gui/xcb/Window.cpp | 18 |
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_; } |