From f08f3e4e4b47c755544968b212cb401a149d4b42 Mon Sep 17 00:00:00 2001 From: Nova Date: Thu, 27 Jun 2024 16:51:33 -0400 Subject: [PATCH] fix: polish stuff a bit --- Cargo.lock | 149 +++++++++++++++-------------- src/main.rs | 2 +- src/nodes/drawable/lines.rs | 6 +- src/nodes/drawable/text.rs | 6 +- src/nodes/fields.rs | 2 +- src/objects/input/mouse_pointer.rs | 11 +-- src/objects/mod.rs | 4 +- src/session.rs | 2 +- src/wayland/seat.rs | 6 +- src/wayland/surface.rs | 8 +- src/wayland/xdg_shell.rs | 6 +- 11 files changed, 104 insertions(+), 98 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8eaabce..da6d425 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -250,7 +250,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -290,7 +290,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -307,7 +307,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -396,9 +396,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "block-buffer" @@ -424,9 +424,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.16.0" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" +checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" dependencies = [ "bytemuck_derive", ] @@ -439,7 +439,7 @@ checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -456,23 +456,22 @@ checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "calloop" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" +checksum = "c58a38167d6fba8c67cce63c4a91f2a73ca42cbdaf6fb9ba164f1e07b43ecc10" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "log", "polling", "rustix", "slab", - "thiserror", ] [[package]] name = "cc" -version = "1.0.99" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +checksum = "ac367972e516d45567c7eafc73d24e1c193dcf200a8d94e9db7b3d38b349572d" [[package]] name = "cesu8" @@ -539,7 +538,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -768,7 +767,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98888c4bbd601524c11a7ed63f814b8825f420514f78e96f752c437ae9cbb5d1" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "bytemuck", "drm-ffi", "drm-fourcc", @@ -803,9 +802,9 @@ dependencies = [ [[package]] name = "either" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "endi" @@ -831,7 +830,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -1132,6 +1131,12 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + [[package]] name = "hex" version = "0.4.3" @@ -1162,9 +1167,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.3" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0e7a4dd27b9476dc40cb050d3632d3bba3a70ddbff012285f7f8559a1e7e545" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" @@ -1323,9 +1328,9 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" @@ -1335,9 +1340,9 @@ checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libloading" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +checksum = "e310b3a6b5907f99202fcdb4960ff45b93735d7c7d96b760fcff8db2dc0e103d" dependencies = [ "cfg-if", "windows-targets 0.52.5", @@ -1349,7 +1354,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", ] @@ -1408,7 +1413,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -1428,9 +1433,9 @@ checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" @@ -1470,7 +1475,7 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -1487,9 +1492,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] @@ -1529,7 +1534,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "jni-sys", "log", "ndk-sys", @@ -1561,7 +1566,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "libc", "memoffset", @@ -1573,7 +1578,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "cfg_aliases 0.1.1", "libc", @@ -1586,7 +1591,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "cfg_aliases 0.2.1", "libc", @@ -1627,7 +1632,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", "libc", ] @@ -1670,7 +1675,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -1774,7 +1779,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.1", + "redox_syscall 0.5.2", "smallvec", "windows-targets 0.52.5", ] @@ -1802,7 +1807,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -1836,13 +1841,13 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polling" -version = "3.7.1" +version = "3.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6a007746f34ed64099e88783b0ae369eaa3da6392868ba262e2af9b8fbaea1" +checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi", + "hermit-abi 0.4.0", "pin-project-lite", "rustix", "tracing", @@ -1893,9 +1898,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -1916,7 +1921,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" dependencies = [ "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -1939,7 +1944,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -2031,11 +2036,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] @@ -2120,7 +2125,7 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys 0.4.14", @@ -2195,14 +2200,14 @@ checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "d947f6b3163d8857ea16c4fa0dd4840d52f3041039a85decd46867eb1abef2e4" dependencies = [ "itoa", "ryu", @@ -2217,7 +2222,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -2298,10 +2303,10 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smithay" version = "0.3.0" -source = "git+https://github.com/smithay/smithay.git#6169b213fb663d85d2e139d3bbe44dfae1ec9328" +source = "git+https://github.com/smithay/smithay.git#9ff96ea35fe5a524819e091c0d0e98f075159233" dependencies = [ "appendlist", - "bitflags 2.5.0", + "bitflags 2.6.0", "calloop", "cgmath", "cursor-icon", @@ -2350,7 +2355,7 @@ checksum = "2f2b15926089e5526bb2dd738a2eb0e59034356e06eb71e1cd912358c0e62c4d" [[package]] name = "stardust-xr" version = "0.45.0" -source = "git+https://github.com/StardustXR/core.git?branch=dev#3b6b77aafc2058e40462bf528703be317a8323d1" +source = "git+https://github.com/StardustXR/core.git?branch=dev#4aef2a192195397d360ce33c99a0e9e8dd90253b" dependencies = [ "cluFlock", "dirs", @@ -2370,7 +2375,7 @@ dependencies = [ [[package]] name = "stardust-xr-schemas" version = "1.5.3" -source = "git+https://github.com/StardustXR/core.git?branch=dev#3b6b77aafc2058e40462bf528703be317a8323d1" +source = "git+https://github.com/StardustXR/core.git?branch=dev#4aef2a192195397d360ce33c99a0e9e8dd90253b" dependencies = [ "flatbuffers", "flexbuffers", @@ -2448,7 +2453,7 @@ version = "0.1.0" source = "git+https://github.com/technobaboo/StereoKit-rust.git#6a2a3832b511c47f0dd986df606fa9fddfd04f65" dependencies = [ "android_logger", - "bitflags 2.5.0", + "bitflags 2.6.0", "cmake", "glam", "jni", @@ -2480,9 +2485,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.66" +version = "2.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" dependencies = [ "proc-macro2", "quote", @@ -2524,7 +2529,7 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -2575,7 +2580,7 @@ checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -2736,7 +2741,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] [[package]] @@ -2913,7 +2918,7 @@ version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83d0f1056570486e26a3773ec633885124d79ae03827de05ba6c85f79904026c" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "wayland-backend", "wayland-scanner", "wayland-server", @@ -2925,7 +2930,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e76311e1866c955afbbc46ae97e57542acda1dc9b0298358263a8550b5247331" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "wayland-backend", "wayland-protocols", "wayland-scanner", @@ -2938,7 +2943,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7dab47671043d9f5397035975fe1cac639e5bca5cc0b3c32d09f01612e34d24" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "wayland-backend", "wayland-protocols", "wayland-scanner", @@ -2962,7 +2967,7 @@ version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63e89118bd072ba6ce0f9c2c92fa41f72d1d78a138d2abc497a80a8264565559" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "downcast-rs", "io-lifetimes", "rustix", @@ -3345,7 +3350,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", "zvariant_utils", ] @@ -3382,7 +3387,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", "zvariant_utils", ] @@ -3394,5 +3399,5 @@ checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.68", ] diff --git a/src/main.rs b/src/main.rs index a0b1e21..1cb5bfc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -234,7 +234,7 @@ fn stereokit_loop( intentional_flatscreen, &sk, hmd, - World::has_bounds().then(move || play_space), + World::has_bounds().then_some(play_space), ); if World::has_bounds() && World::get_bounds_size().x != 0.0 && World::get_bounds_size().y != 0.0 { diff --git a/src/nodes/drawable/lines.rs b/src/nodes/drawable/lines.rs index 6219d0e..1266755 100644 --- a/src/nodes/drawable/lines.rs +++ b/src/nodes/drawable/lines.rs @@ -101,8 +101,10 @@ impl Drop for Lines { pub fn draw_all(token: &MainThreadToken) { for lines in LINES_REGISTRY.get_valid_contents() { - if lines.space.node().unwrap().enabled() { - lines.draw(token); + if let Some(node) = lines.space.node() { + if node.enabled() { + lines.draw(token); + } } } } diff --git a/src/nodes/drawable/text.rs b/src/nodes/drawable/text.rs index 299dd38..33a757f 100644 --- a/src/nodes/drawable/text.rs +++ b/src/nodes/drawable/text.rs @@ -163,8 +163,10 @@ impl Drop for Text { pub fn draw_all(token: &MainThreadToken) { for text in TEXT_REGISTRY.get_valid_contents() { - if text.space.node().unwrap().enabled() { - text.draw(token); + if let Some(node) = text.space.node() { + if node.enabled() { + text.draw(token); + } } } } diff --git a/src/nodes/fields.rs b/src/nodes/fields.rs index 4883d56..1612fae 100644 --- a/src/nodes/fields.rs +++ b/src/nodes/fields.rs @@ -160,7 +160,7 @@ impl FieldRefAspect for Field { ) -> Result { let reference_space = space.get_aspect::()?; let field = node.get_aspect::()?; - Ok(field.distance(&reference_space, point.into()).into()) + Ok(field.distance(&reference_space, point.into())) } async fn normal( diff --git a/src/objects/input/mouse_pointer.rs b/src/objects/input/mouse_pointer.rs index 12941ca..68f84a6 100644 --- a/src/objects/input/mouse_pointer.rs +++ b/src/objects/input/mouse_pointer.rs @@ -45,22 +45,13 @@ impl Default for MouseEvent { } #[derive(Debug, Clone, Deserialize, Serialize)] +#[derive(Default)] pub struct KeyboardEvent { pub keyboard: (), pub xkbv1: (), pub keymap_id: u64, pub keys: Vec, } -impl Default for KeyboardEvent { - fn default() -> Self { - Self { - keyboard: (), - xkbv1: (), - keymap_id: 0, - keys: Default::default(), - } - } -} #[allow(unused)] pub struct MousePointer { diff --git a/src/objects/mod.rs b/src/objects/mod.rs index 126507c..a590312 100644 --- a/src/objects/mod.rs +++ b/src/objects/mod.rs @@ -89,8 +89,8 @@ impl ServerObjects { mouse_pointer.update(); } if let Some((left_hand, right_hand)) = self.hands.as_mut() { - left_hand.update(&sk, token); - right_hand.update(&sk, token); + left_hand.update(sk, token); + right_hand.update(sk, token); } if let Some((left_controller, right_controller)) = self.controllers.as_mut() { left_controller.update(token); diff --git a/src/session.rs b/src/session.rs index 8d6ed08..29e52bb 100644 --- a/src/session.rs +++ b/src/session.rs @@ -55,7 +55,7 @@ pub fn restore_session(session_dir: &Path) -> Vec { .filter_map(Result::ok) .filter_map(|c| ClientStateParsed::from_file(&c.path())) .filter_map(ClientStateParsed::launch_command) - .filter_map(|startup_command| run_client(startup_command)) + .filter_map(run_client) .collect() } diff --git a/src/wayland/seat.rs b/src/wayland/seat.rs index 0664127..96dfea2 100644 --- a/src/wayland/seat.rs +++ b/src/wayland/seat.rs @@ -150,7 +150,7 @@ impl SeatWrapper { }; pointer.motion( &mut state, - Some((surface, (0, 0).into())), + Some((surface, (0.0, 0.0).into())), &MotionEvent { location: (position.x as f64, position.y as f64).into(), serial: SERIAL_COUNTER.next_serial(), @@ -261,7 +261,7 @@ impl SeatWrapper { }; touch.down( &mut state.lock(), - Some((surface, (0, 0).into())), + Some((surface, (0.0, 0.0).into())), &DownEvent { slot: Some(id).into(), location: (position.x as f64, position.y as f64).into(), @@ -283,7 +283,7 @@ impl SeatWrapper { }; touch.motion( &mut state.lock(), - Some((surface, (0, 0).into())), + Some((surface, (0.0, 0.0).into())), &touch::MotionEvent { slot: Some(id).into(), location: (position.x as f64, position.y as f64).into(), diff --git a/src/wayland/surface.rs b/src/wayland/surface.rs index 3b9058e..fd1c6f4 100644 --- a/src/wayland/surface.rs +++ b/src/wayland/surface.rs @@ -24,7 +24,7 @@ use smithay::{ reexports::wayland_server::{self, protocol::wl_surface::WlSurface, Resource}, wayland::compositor::{self, SurfaceData}, }; -use std::{cell::RefCell, ffi::c_void, sync::Arc, time::Duration}; +use std::{ffi::c_void, sync::Arc, time::Duration}; use stereokit_rust::{ material::{Material, Transparency}, shader::Shader, @@ -121,7 +121,7 @@ impl CoreSurface { let mapped = compositor::with_states(&wl_surface, |data| { data.data_map .get::() - .map(|surface_states| surface_states.borrow().buffer().is_some()) + .map(|surface_states| surface_states.lock().unwrap().buffer().is_some()) .unwrap_or(false) }); @@ -135,7 +135,9 @@ impl CoreSurface { let Some(renderer_surface_state) = data .data_map .get::() - .map(RefCell::borrow) + .map(std::sync::Mutex::lock) + .map(Result::ok) + .flatten() else { return; }; diff --git a/src/wayland/xdg_shell.rs b/src/wayland/xdg_shell.rs index e0ded36..f88d077 100644 --- a/src/wayland/xdg_shell.rs +++ b/src/wayland/xdg_shell.rs @@ -427,7 +427,11 @@ impl Backend for XdgBackend { .clone() }); let toplevel_cached_state = compositor::with_states(toplevel.wl_surface(), |states| { - *states.cached_state.current::() + states + .cached_state + .get::() + .current() + .clone() }); let toplevel_core_surface = CoreSurface::from_wl_surface(toplevel.wl_surface()).unwrap();