Skip to content

Commit

Permalink
reis update; serial
Browse files Browse the repository at this point in the history
  • Loading branch information
ids1024 committed Sep 25, 2024
1 parent 370a84f commit 9421c1a
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 29 deletions.
3 changes: 1 addition & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

50 changes: 23 additions & 27 deletions src/wayland/handlers/atspi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use reis::{
use smithay::{
backend::input::{KeyState, Keycode},
input::keyboard::ModifiersState,
utils::{SealedFile, SerialCounter},
utils::SealedFile,
};
use std::{
collections::{HashMap, HashSet},
Expand All @@ -25,8 +25,6 @@ use crate::{
wayland::protocols::atspi::{delegate_atspi, AtspiHandler},
};

pub static EI_SERIAL_COUNTER: SerialCounter = SerialCounter::new();

#[derive(PartialEq, Debug)]
pub struct AtspiKeyGrab {
pub mods: u32,
Expand Down Expand Up @@ -67,23 +65,21 @@ impl AtspiClient {
);
},
);
device
.device()
.resumed(EI_SERIAL_COUNTER.next_serial().into());
device.resumed();

let keyboard = device.interface::<eis::Keyboard>().unwrap();

keyboard.modifiers(
EI_SERIAL_COUNTER.next_serial().into(),
modifiers.serialized.depressed,
modifiers.serialized.locked,
modifiers.serialized.latched,
modifiers.serialized.layout_effective,
);
connection.with_next_serial(|serial| {
keyboard.modifiers(
serial,
modifiers.serialized.depressed,
modifiers.serialized.locked,
modifiers.serialized.latched,
modifiers.serialized.layout_effective,
)
});

device
.device()
.start_emulating(EI_SERIAL_COUNTER.next_serial().into(), 0);
device.start_emulating(0);

self.keyboards.push((connection.clone(), device, keyboard));
}
Expand Down Expand Up @@ -112,23 +108,23 @@ impl AtspiEiState {
if &self.modifiers != modifiers {
self.modifiers = *modifiers;
for client in self.clients.values() {
for (_, _, keyboard) in &client.keyboards {
keyboard.modifiers(
EI_SERIAL_COUNTER.next_serial().into(),
modifiers.serialized.depressed,
modifiers.serialized.locked,
modifiers.serialized.latched,
modifiers.serialized.layout_effective,
);
for (connection, _, keyboard) in &client.keyboards {
connection.with_next_serial(|serial| {
keyboard.modifiers(
serial,
modifiers.serialized.depressed,
modifiers.serialized.locked,
modifiers.serialized.latched,
modifiers.serialized.layout_effective,
)
});
}
}
}
for client in self.clients.values() {
for (connection, device, keyboard) in &client.keyboards {
keyboard.key(keysym.raw_code().raw() - 8, state);
device
.device()
.frame(EI_SERIAL_COUNTER.next_serial().into(), time);
device.frame(time);
let _ = connection.flush();
}
}
Expand Down

0 comments on commit 9421c1a

Please sign in to comment.