Skip to content

Commit

Permalink
Revert select_xkb_events to its previous impl
Browse files Browse the repository at this point in the history
The new implementation of select_xkb_events apparently misconfigures
the server. This commit does a temporary fix by just reverting it to its
previous implementation.

This is temporary until I can figure out what Xlib is doing behind the
scenes or until I read xkbproto.pdf.

Fixes: rust-windowing#3079
Signed-off-by: John Nunley <[email protected]>
  • Loading branch information
notgull authored and kchibisov committed Oct 17, 2023
1 parent b4a597c commit d2fa3f3
Showing 1 changed file with 10 additions and 26 deletions.
36 changes: 10 additions & 26 deletions src/platform_impl/linux/x11/util/input.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
use std::{slice, str};
use x11rb::errors::{ConnectionError, ReplyError};
use x11rb::protocol::{
xinput::{self, ConnectionExt as _},
xkb::{self, ConnectionExt as _},
xkb,
};

use super::*;
Expand Down Expand Up @@ -38,31 +37,16 @@ impl XConnection {
device_id: xkb::DeviceSpec,
mask: xkb::EventType,
) -> Result<bool, X11Error> {
let result = self
.xcb_connection()
.xkb_select_events(
device_id,
xkb::EventType::from(0u8),
mask,
xkb::MapPart::from(u16::from(mask)),
xkb::MapPart::EXPLICIT_COMPONENTS
| xkb::MapPart::KEY_ACTIONS
| xkb::MapPart::KEY_BEHAVIORS
| xkb::MapPart::VIRTUAL_MODS
| xkb::MapPart::MODIFIER_MAP
| xkb::MapPart::VIRTUAL_MOD_MAP,
&xkb::SelectEventsAux::new(),
)
.map_err(ReplyError::from)
.and_then(|x| x.check());
let mask = u16::from(mask) as _;
let status =
unsafe { (self.xlib.XkbSelectEvents)(self.display, device_id as _, mask, mask) };

match result {
Ok(()) => Ok(true),
Err(ReplyError::ConnectionError(ConnectionError::UnsupportedExtension)) => {
error!("Could not select XKB events: The XKB extension is not initialized!");
Ok(false)
}
Err(e) => Err(e.into()),
if status == ffi::True {
self.flush_requests()?;
Ok(true)
} else {
error!("Could not select XKB events: The XKB extension is not initialized!");
Ok(false)
}
}

Expand Down

0 comments on commit d2fa3f3

Please sign in to comment.