aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/handlers/mod.rs2
-rw-r--r--src/layout/mod.rs11
-rw-r--r--src/niri.rs6
-rw-r--r--src/utils.rs13
4 files changed, 18 insertions, 14 deletions
diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs
index d3393ccd..16fd35b3 100644
--- a/src/handlers/mod.rs
+++ b/src/handlers/mod.rs
@@ -43,8 +43,8 @@ use smithay::{
delegate_text_input_manager, delegate_virtual_keyboard_manager,
};
-use crate::layout::output_size;
use crate::niri::State;
+use crate::utils::output_size;
impl SeatHandler for State {
type KeyboardFocus = WlSurface;
diff --git a/src/layout/mod.rs b/src/layout/mod.rs
index bf012311..8946ffd0 100644
--- a/src/layout/mod.rs
+++ b/src/layout/mod.rs
@@ -57,6 +57,7 @@ use smithay::wayland::shell::xdg::SurfaceCachedState;
use crate::animation::Animation;
use crate::config::{self, Color, Config, PresetWidth, SizeChange, Struts};
+use crate::utils::output_size;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct OutputId(String);
@@ -3264,16 +3265,6 @@ impl<W: LayoutElement> Column<W> {
}
}
-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)
-}
-
fn compute_working_area(output: &Output, struts: Struts) -> Rectangle<i32, Logical> {
// Start with the layer-shell non-exclusive zone.
let mut working_area = layer_map_for_output(output).non_exclusive_zone();
diff --git a/src/niri.rs b/src/niri.rs
index 0a3c34c9..f09be356 100644
--- a/src/niri.rs
+++ b/src/niri.rs
@@ -90,10 +90,12 @@ use crate::dbus::mutter_screen_cast::{self, ScreenCastToNiri};
use crate::frame_clock::FrameClock;
use crate::handlers::configure_lock_surface;
use crate::input::TabletData;
-use crate::layout::{output_size, Layout, MonitorRenderElement};
+use crate::layout::{Layout, MonitorRenderElement};
use crate::pw_utils::{Cast, PipeWire};
use crate::screenshot_ui::{ScreenshotUi, ScreenshotUiRenderElement};
-use crate::utils::{center, get_monotonic_time, make_screenshot_path, write_png_rgba8};
+use crate::utils::{
+ center, get_monotonic_time, make_screenshot_path, output_size, write_png_rgba8,
+};
const CLEAR_COLOR: [f32; 4] = [0.2, 0.2, 0.2, 1.];
const CLEAR_COLOR_LOCKED: [f32; 4] = [0.3, 0.1, 0.1, 1.];
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);