srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/crates/wayland/Cargo.toml
diff options
context:
space:
mode:
authorsrdusr <[email protected]>2024-12-24 20:44:00 +0200
committersrdusr <[email protected]>2024-12-24 20:44:00 +0200
commit3d73ed0f057a555ded67ad58dbe02b36cd4d2d1f (patch)
tree71e9bab462b9073444183e2a969ba512cb94559f /crates/wayland/Cargo.toml
parent331a1a1d3a0d8dfd4c285b755c2e13785c95ee2a (diff)
downloadsrdwm-3d73ed0f057a555ded67ad58dbe02b36cd4d2d1f.tar.gz
srdwm-3d73ed0f057a555ded67ad58dbe02b36cd4d2d1f.zip
Accumulate wayland-crate additions: capture rendering, focus/Space sync, VT resume, plumbing
Bundles the remaining wayland-crate changes built up here, touching both backends (udev and winit) and the shared input/rendering code: - udev/capture.rs: off-screen Pixman render of an arbitrary (not necessarily on-screen) workspace's window content to a PPM file -- what crates/core's capture-request queue drives, for a workspace switcher's thumbnail previews. wlr-screencopy structurally can't do this (it can only see what an output is presenting), which is why this exists as a separate render path rather than reusing it. - input::focus_window now also raises the window in smithay's own Space, not just core's stacking order - Space is what actually renders on top and what pointer hit-testing reads, so any focus path that skipped this (an IPC "focus" dispatch, concretely) left a window genuinely focused while still rendering, and receiving clicks, underneath whatever was already topmost. Both backends' poll loops now re-sync this after any IPC mutation. - udev/session.rs's VT-switch resume fix (drains a stale pending page flip before reasserting CRTCs) already has its own earlier, cleanly isolated commit - not duplicated here. - Assorted decoration/cursor/rounded-corners/output-management/ screencopy/XWayland changes and their cross-backend wiring. Coarser than the repo's usual one-purpose-per-commit convention, deliberately - see the core-crate sweep commit's own message for why.
Diffstat (limited to 'crates/wayland/Cargo.toml')
-rw-r--r--crates/wayland/Cargo.toml18
1 files changed, 18 insertions, 0 deletions
diff --git a/crates/wayland/Cargo.toml b/crates/wayland/Cargo.toml
index 5f06617..1ddddc6 100644
--- a/crates/wayland/Cargo.toml
+++ b/crates/wayland/Cargo.toml
@@ -11,10 +11,20 @@ srdwm-platform.workspace = true
log.workspace = true
thiserror.workspace = true
fontdue = "0.9"
+# `udev/capture.rs`: builds a `pixman::Image` off-screen render target
+# directly (`PixmanRenderer::create_buffer`/`Offscreen` hand one back, but
+# nothing constructs one standalone). Pinned to the same version smithay
+# itself depends on (see Cargo.lock), so both see one set of types.
+pixman = "0.2.1"
# smithay 0.7 ships no wlr-screencopy helper, so `src/screencopy.rs`
# implements that protocol directly against these server bindings. Pinned to
# the same version smithay itself depends on, so both see one set of types.
wayland-protocols-wlr = { version = "0.3.12", features = ["server"] }
+# `appmenu.rs`: `org_kde_kwin_appmenu` (global menu for Wayland-native
+# clients - the equivalent of `xwayland.rs`'s X11-property reading, for
+# windows that never go through XWayland at all). Same sibling-crate/no
+# smithay-helper situation as the wlr protocols above, pinned the same way.
+wayland-protocols-plasma = { version = "0.3.12", features = ["server"] }
# `ext-workspace-v1` (`src/workspace.rs`): staging-tree protocol, not
# wlr-specific - lives in the plain `wayland-protocols` crate instead, and
# (like the wlr protocol above) has no smithay helper to delegate to.
@@ -34,6 +44,14 @@ memmap2 = "0.9"
wayland-scanner = "0.31.10"
wayland-backend = { version = "0.3.15", features = ["server_system"] }
xcursor = "0.3.11"
+# `native_lock.rs`: converts a pressed key's `Keysym` (from `KeysymHandle::
+# modified_sym()`) into the printable character it represents, for the
+# lock screen's own password field - smithay has no helper for this
+# itself, only the raw `Keysym`. Pinned to the same version smithay itself
+# depends on (with the same `wayland` feature), same reasoning as every
+# other "pinned to smithay's own version" dependency above - both need to
+# see one identical `Keysym` type, not two incompatible ones.
+xkbcommon = { version = "0.8", features = ["wayland"] }
[dependencies.smithay]
version = "0.7"