diff --git a/src/platform_impl/linux/x11/xdisplay.rs b/src/platform_impl/linux/x11/xdisplay.rs index c47f09fe30..06b0cbebef 100644 --- a/src/platform_impl/linux/x11/xdisplay.rs +++ b/src/platform_impl/linux/x11/xdisplay.rs @@ -91,6 +91,14 @@ impl XConnection { conn.map_err(|e| XNotSupported::XcbConversionError(Arc::new(WrapConnectError(e))))? }; + // Make sure Xlib knows XCB is handling events. + unsafe { + (xlib_xcb.XSetEventQueueOwner)( + display, + x11_dl::xlib_xcb::XEventQueueOwner::XCBOwnsEventQueue, + ); + } + // Get the default screen. let default_screen = unsafe { (xlib.XDefaultScreen)(display) } as usize;