From 7a3bb36d69cdf505402a528f9af7a99747754e0a Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Sun, 28 Sep 2025 16:33:22 +0800 Subject: Let WM handle mouse grabbing. --- src/platform/gui/xcb/Window.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src') 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 *XcbWindow::KeyDownEvent() { IEvent *XcbWindow::KeyUpEvent() { return &key_up_event_; } -IInputMethodContext *XcbWindow::GetInputMethodContext() { NotImplemented(); } +IInputMethodContext *XcbWindow::GetInputMethodContext() { return nullptr; } std::optional XcbWindow::GetXcbWindow() { return xcb_window_; } -- cgit v1.2.3