From 0f7e53b6009d53fac900d13dd07ee57e5c9b84e2 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Tue, 13 Jan 2026 16:46:57 -0800 Subject: [PATCH] Update `smithay` to latest commit Includes an implementation for `VirtualKeyboardHandler`, which is now required. --- Cargo.lock | 41 ++++++++++++------------ Cargo.toml | 2 +- src/wayland/handlers/virtual_keyboard.rs | 31 +++++++++++++++++- 3 files changed, 52 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index acc4bf0f..f8d61c80 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1268,7 +1268,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -1578,7 +1578,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -2875,7 +2875,7 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d463f34ca3c400fde3a054da0e0b8c6ffa21e4590922f3e18281bb5eeef4cbdc" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -3499,7 +3499,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -4342,9 +4342,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.37.5" +version = "0.38.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" dependencies = [ "memchr", ] @@ -4685,7 +4685,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.11.0", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -4992,7 +4992,7 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "smithay" version = "0.7.0" -source = "git+https://github.com/smithay/smithay.git?rev=8148d67#8148d67ea3ee3959a84970e8f80f591e068e65ce" +source = "git+https://github.com/smithay/smithay.git?rev=14a2009#14a2009cda0ef4db81e28941a1dbf4375f07e7f2" dependencies = [ "aliasable", "appendlist", @@ -5028,6 +5028,7 @@ dependencies = [ "tempfile", "thiserror 2.0.17", "tracing", + "tracy-client", "udev", "wayland-client", "wayland-cursor", @@ -5331,7 +5332,7 @@ dependencies = [ "getrandom 0.3.4", "once_cell", "rustix 1.1.2", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -5638,9 +5639,9 @@ dependencies = [ [[package]] name = "tracy-client" -version = "0.18.2" +version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef54005d3d760186fd662dad4b7bb27ecd5531cdef54d1573ebd3f20a9205ed7" +checksum = "a4f6fc3baeac5d86ab90c772e9e30620fc653bf1864295029921a15ef478e6a5" dependencies = [ "loom", "once_cell", @@ -6033,9 +6034,9 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" +checksum = "fee64194ccd96bf648f42a65a7e589547096dfa702f7cadef84347b66ad164f9" dependencies = [ "cc", "downcast-rs", @@ -6158,9 +6159,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.7" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" +checksum = "5423e94b6a63e68e439803a3e153a9252d5ead12fd853334e2ad33997e3889e3" dependencies = [ "proc-macro2", "quick-xml", @@ -6169,9 +6170,9 @@ dependencies = [ [[package]] name = "wayland-server" -version = "0.31.10" +version = "0.31.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcbd4f3aba6c9fba70445ad2a484c0ef0356c1a9459b1e8e435bedc1971a6222" +checksum = "9297ab90f8d1f597711d36455c5b1b2290eca59b8134485e377a296b80b118c9" dependencies = [ "bitflags 2.9.4", "downcast-rs", @@ -6182,9 +6183,9 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.31.7" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" +checksum = "1e6dbfc3ac5ef974c92a2235805cc0114033018ae1290a72e474aa8b28cbbdfd" dependencies = [ "dlib", "log", @@ -6352,7 +6353,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index e5cca799..a7f6c9c8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -147,4 +147,4 @@ cosmic-protocols = { git = "https://github.com/pop-os//cosmic-protocols", branch cosmic-client-toolkit = { git = "https://github.com/pop-os//cosmic-protocols", branch = "main" } [patch.crates-io] -smithay = { git = "https://github.com/smithay/smithay.git", rev = "8148d67" } +smithay = { git = "https://github.com/smithay/smithay.git", rev = "14a2009" } diff --git a/src/wayland/handlers/virtual_keyboard.rs b/src/wayland/handlers/virtual_keyboard.rs index f39ff22a..26d9ec81 100644 --- a/src/wayland/handlers/virtual_keyboard.rs +++ b/src/wayland/handlers/virtual_keyboard.rs @@ -1,6 +1,35 @@ // SPDX-License-Identifier: GPL-3.0-only use crate::state::State; -use smithay::delegate_virtual_keyboard_manager; +use smithay::{ + backend::input::KeyState, + delegate_virtual_keyboard_manager, + input::keyboard::{FilterResult, KeyboardHandle, Keycode, xkb::ModMask}, + utils::SERIAL_COUNTER, + wayland::virtual_keyboard::VirtualKeyboardHandler, +}; + +impl VirtualKeyboardHandler for State { + fn on_keyboard_event( + &mut self, + keycode: Keycode, + state: KeyState, + time: u32, + keyboard: KeyboardHandle, + ) { + let serial = SERIAL_COUNTER.next_serial(); + keyboard.input(self, keycode, state, serial, time, |_, _, _| { + FilterResult::Forward:: + }); + } + fn on_keyboard_modifiers( + &mut self, + _depressed_mods: ModMask, + _latched_mods: ModMask, + _locked_mods: ModMask, + _keyboard: KeyboardHandle, + ) { + } +} delegate_virtual_keyboard_manager!(State);