diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-29 13:32:11 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-06-10 18:08:00 +0300 |
| commit | e3406ac2556c7f68cd00f11b5856222dcce7f680 (patch) | |
| tree | 06926e2b098d98b780345569bdfbf56a92c3c392 /src/utils/mod.rs | |
| parent | 22a948cc759498923c1e9806580962cdd2d7b3e2 (diff) | |
| download | niri-e3406ac2556c7f68cd00f11b5856222dcce7f680.tar.gz niri-e3406ac2556c7f68cd00f11b5856222dcce7f680.tar.bz2 niri-e3406ac2556c7f68cd00f11b5856222dcce7f680.zip | |
Signal fractional scale to clients
Doesn't do anything yet because we don't bind the fractional scale
manager and don't allow fractional scales.
Diffstat (limited to 'src/utils/mod.rs')
| -rw-r--r-- | src/utils/mod.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/utils/mod.rs b/src/utils/mod.rs index f523d960..7d41b923 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -12,10 +12,13 @@ use directories::UserDirs; use git_version::git_version; use niri_config::Config; use smithay::input::pointer::CursorIcon; -use smithay::output::Output; +use smithay::output::{self, Output}; use smithay::reexports::rustix::time::{clock_gettime, ClockId}; use smithay::reexports::wayland_protocols::xdg::shell::server::xdg_toplevel; +use smithay::reexports::wayland_server::protocol::wl_surface::WlSurface; use smithay::utils::{Logical, Point, Rectangle, Size, Transform}; +use smithay::wayland::compositor::{send_surface_state, SurfaceData}; +use smithay::wayland::fractional_scale::with_fractional_scale; pub mod id; pub mod scale; @@ -133,6 +136,18 @@ pub fn ipc_transform_to_smithay(transform: niri_ipc::Transform) -> Transform { } } +pub fn send_scale_transform( + surface: &WlSurface, + data: &SurfaceData, + scale: output::Scale, + transform: Transform, +) { + send_surface_state(surface, data, scale.integer_scale(), transform); + with_fractional_scale(data, |fractional| { + fractional.set_preferred_scale(scale.fractional_scale()); + }); +} + pub fn expand_home(path: &Path) -> anyhow::Result<Option<PathBuf>> { if let Ok(rest) = path.strip_prefix("~") { let dirs = UserDirs::new().context("error retrieving home directory")?; |
