aboutsummaryrefslogtreecommitdiff
path: root/src/utils.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-12-24 14:30:19 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-12-24 14:30:19 +0400
commit461ce5f3631c99e928280935d92f084f4b641b9e (patch)
tree3bd2e302b30956f4c4a96dfff8475922d993ddde /src/utils.rs
parent624c799ebf4470ca6dfc80592029132071730c57 (diff)
downloadniri-461ce5f3631c99e928280935d92f084f4b641b9e.tar.gz
niri-461ce5f3631c99e928280935d92f084f4b641b9e.tar.bz2
niri-461ce5f3631c99e928280935d92f084f4b641b9e.zip
Move output_size to utils
Diffstat (limited to 'src/utils.rs')
-rw-r--r--src/utils.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/utils.rs b/src/utils.rs
index bf25819b..07c737df 100644
--- a/src/utils.rs
+++ b/src/utils.rs
@@ -11,8 +11,9 @@ use std::time::Duration;
use anyhow::{ensure, Context};
use directories::UserDirs;
+use smithay::output::Output;
use smithay::reexports::rustix::time::{clock_gettime, ClockId};
-use smithay::utils::{Logical, Point, Rectangle};
+use smithay::utils::{Logical, Point, Rectangle, Size};
use crate::config::Config;
@@ -25,6 +26,16 @@ pub fn center(rect: Rectangle<i32, Logical>) -> Point<i32, Logical> {
rect.loc + rect.size.downscale(2).to_point()
}
+pub fn output_size(output: &Output) -> Size<i32, Logical> {
+ let output_scale = output.current_scale().integer_scale();
+ let output_transform = output.current_transform();
+ let output_mode = output.current_mode().unwrap();
+
+ output_transform
+ .transform_size(output_mode.size)
+ .to_logical(output_scale)
+}
+
pub fn make_screenshot_path(config: &Config) -> anyhow::Result<Option<PathBuf>> {
let Some(path) = &config.screenshot_path else {
return Ok(None);