From 9421c1a7c987d5fefc54bdf044d6798cf7487a11 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Wed, 25 Sep 2024 14:25:15 -0700 Subject: [PATCH] reis update; serial --- Cargo.lock | 3 +-- src/wayland/handlers/atspi.rs | 50 ++++++++++++++++------------------- 2 files changed, 24 insertions(+), 29 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bcc4f6d8f..8037c0adb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4272,10 +4272,9 @@ checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reis" version = "0.3.0" -source = "git+https://github.com/ids1024/reis#8228388c4373f4435e48956bb903ab138ba0b904" +source = "git+https://github.com/ids1024/reis#fd8cef77ccb02b0026f3b9d5d80125949f7ed887" dependencies = [ "calloop 0.14.1", - "once_cell", "rustix", ] diff --git a/src/wayland/handlers/atspi.rs b/src/wayland/handlers/atspi.rs index 5689048c5..0dda9857e 100644 --- a/src/wayland/handlers/atspi.rs +++ b/src/wayland/handlers/atspi.rs @@ -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}, @@ -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, @@ -67,23 +65,21 @@ impl AtspiClient { ); }, ); - device - .device() - .resumed(EI_SERIAL_COUNTER.next_serial().into()); + device.resumed(); let keyboard = device.interface::().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)); } @@ -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(); } }