diff options
| -rw-r--r-- | Cargo.lock | 21 | ||||
| -rw-r--r-- | Cargo.toml | 2 | ||||
| -rw-r--r-- | src/protocol.rs | 1 | ||||
| -rw-r--r-- | src/state.rs | 12 |
4 files changed, 19 insertions, 17 deletions
@@ -442,9 +442,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "fa1fb82fc0c281dd9671101b66b771ebbe1eaf967b96ac8740dcba4b70005ca8" dependencies = [ "unicode-ident", ] @@ -683,9 +683,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "wayrs-client" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6df29eb1fab7b25c629f5e7c818e4509643102e1e909bdfcf4b342e0056ef552" +checksum = "8efff4d6e2a63569d0c26cc6213523d5cf633abc5f43298265efddc4f084692b" dependencies = [ "nix", "thiserror", @@ -694,18 +694,18 @@ dependencies = [ [[package]] name = "wayrs-protocols" -version = "0.10.4" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c520c3952cdd3b1455d7266754de5b8ea4634b09fd6ba5d5c40bdd0a6cb95bf" +checksum = "b9a43b66e8242067ed8b3f5aa8d546d1098697d16f578878b9e90c2022ddbba2" dependencies = [ "wayrs-client", ] [[package]] name = "wayrs-scanner" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d850152fda7745af06e54f942fba8f2e50d1c80d3ee2006f3b059beef330028" +checksum = "4a9a9c400010b242c478a119bffb9cacc02ddffac2e48e1232c2e16afab71691" dependencies = [ "convert_case", "proc-macro2", @@ -716,14 +716,15 @@ dependencies = [ [[package]] name = "wayrs-utils" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4f07b0947176066dd83cef1b0e855003d0ec5bc8914c358a8a5633e6cb34a9" +checksum = "50eff17f453e530f0fefd22355c6b3e97dc85b80425f556c63c541ac31928041" dependencies = [ "memmap2", "shmemfdrs", "thiserror", "wayrs-client", + "wayrs-protocols", "xcursor", ] @@ -19,7 +19,7 @@ signal-hook = { version = "0.3", default-features = false } nix = { version = "0.26", default-features = false, features = ["fs", "poll"] } wayrs-client = "0.10" -wayrs-utils = { version = "0.5.0", features = ["cursor", "shm_alloc", "seats"] } +wayrs-utils = { version = "0.6.0", features = ["cursor", "shm_alloc", "seats"] } wayrs-protocols = { version = "0.10", features = ["wlr-layer-shell-unstable-v1", "viewporter", "fractional-scale-v1"] } [profile.release] diff --git a/src/protocol.rs b/src/protocol.rs index 8e9a217..5b30463 100644 --- a/src/protocol.rs +++ b/src/protocol.rs @@ -1,4 +1,3 @@ -use wayrs_client; pub use wayrs_client::protocol::*; pub use wayrs_protocols::fractional_scale_v1::*; pub use wayrs_protocols::viewporter::*; diff --git a/src/state.rs b/src/state.rs index de99179..6a1f701 100644 --- a/src/state.rs +++ b/src/state.rs @@ -8,7 +8,7 @@ use std::os::fd::{AsRawFd, RawFd}; use wayrs_client::connection::Connection; use wayrs_client::global::{Global, GlobalExt, Globals, GlobalsExt}; use wayrs_client::proxy::Proxy; -use wayrs_utils::cursor::{CursorImage, CursorTheme, ThemedPointer}; +use wayrs_utils::cursor::{CursorImage, CursorShape, CursorTheme, ThemedPointer}; use wayrs_utils::seats::{SeatHandler, Seats}; use wayrs_utils::shm_alloc::ShmAlloc; @@ -31,6 +31,7 @@ pub struct State { pub shared_state: SharedState, + cursor_theme: CursorTheme, default_cursor: Option<CursorImage>, } @@ -61,9 +62,9 @@ impl State { conn.add_registry_cb(wl_registry_cb); - let cursor_theme = CursorTheme::new(None, None); + let cursor_theme = CursorTheme::new(conn, globals); let default_cursor = cursor_theme - .get_image("default") + .get_image(CursorShape::Default) .map_err(|e| error = Err(e.into())) .ok(); @@ -87,6 +88,7 @@ impl State { wm_info_provider: wm_info_provider::bind_wayland(conn, globals, wm_info_cb), }, + cursor_theme, default_cursor, }; @@ -219,7 +221,7 @@ impl SeatHandler for State { self.pointers.push(Pointer { seat, pointer, - themed_pointer: ThemedPointer::new(conn, pointer, self.wl_compositor), + themed_pointer: self.cursor_theme.get_themed_pointer(conn, pointer), current_surface: None, x: 0.0, y: 0.0, @@ -232,8 +234,8 @@ impl SeatHandler for State { fn pointer_removed(&mut self, conn: &mut Connection<Self>, seat: WlSeat) { let pointer_i = self.pointers.iter().position(|p| p.seat == seat).unwrap(); let pointer = self.pointers.swap_remove(pointer_i); - pointer.pointer.release(conn); pointer.themed_pointer.destroy(conn); + pointer.pointer.release(conn); } } |
