aboutsummaryrefslogtreecommitdiff
path: root/src/layout
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-09-20 12:57:40 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-10-02 09:33:08 +0300
commit2781d3a74338806f631acda99e9f702b1b59a3e6 (patch)
treeb7066f8476fe2ba0b18b961c0360001070ec54cb /src/layout
parente739ce8171705dd0b87c317cc0f4509b7f16f6df (diff)
downloadniri-2781d3a74338806f631acda99e9f702b1b59a3e6.tar.gz
niri-2781d3a74338806f631acda99e9f702b1b59a3e6.tar.bz2
niri-2781d3a74338806f631acda99e9f702b1b59a3e6.zip
config: Replace resolve_against with MergeWith
Diffstat (limited to 'src/layout')
-rw-r--r--src/layout/floating.rs7
-rw-r--r--src/layout/mod.rs3
-rw-r--r--src/layout/scrolling.rs7
-rw-r--r--src/layout/tile.rs29
4 files changed, 23 insertions, 23 deletions
diff --git a/src/layout/floating.rs b/src/layout/floating.rs
index 4a5251ca..8854ca17 100644
--- a/src/layout/floating.rs
+++ b/src/layout/floating.rs
@@ -2,6 +2,7 @@ use std::cmp::max;
use std::iter::zip;
use std::rc::Rc;
+use niri_config::utils::MergeWith as _;
use niri_config::{PresetSize, RelativeTo};
use niri_ipc::{PositionChange, SizeChange, WindowLayout};
use smithay::backend::renderer::gles::GlesRenderer;
@@ -339,7 +340,7 @@ impl<W: LayoutElement> FloatingSpace<W> {
}
pub fn new_window_toplevel_bounds(&self, rules: &ResolvedWindowRules) -> Size<i32, Logical> {
- let border_config = rules.border.resolve_against(self.options.border);
+ let border_config = self.options.border.merged_with(&rules.border);
compute_toplevel_bounds(border_config, self.working_area.size)
}
@@ -1155,7 +1156,7 @@ impl<W: LayoutElement> FloatingSpace<W> {
.map(|resize| resize.data);
win.set_interactive_resize(resize_data);
- let border_config = win.rules().border.resolve_against(self.options.border);
+ let border_config = self.options.border.merged_with(&win.rules().border);
let bounds = compute_toplevel_bounds(border_config, self.working_area.size);
win.set_bounds(bounds);
@@ -1219,7 +1220,7 @@ impl<W: LayoutElement> FloatingSpace<W> {
height: Option<PresetSize>,
rules: &ResolvedWindowRules,
) -> Size<i32, Logical> {
- let border = rules.border.resolve_against(self.options.border);
+ let border = self.options.border.merged_with(&rules.border);
let resolve = |size: Option<PresetSize>, working_area_size: f64| {
if let Some(size) = size {
diff --git a/src/layout/mod.rs b/src/layout/mod.rs
index 370640b9..c7d8a6fd 100644
--- a/src/layout/mod.rs
+++ b/src/layout/mod.rs
@@ -38,6 +38,7 @@ use std::rc::Rc;
use std::time::Duration;
use monitor::{InsertHint, InsertPosition, InsertWorkspace, MonitorAddWindowTarget};
+use niri_config::utils::MergeWith as _;
use niri_config::{
CenterFocusedColumn, Config, CornerRadius, FloatOrInt, PresetSize, Struts,
Workspace as WorkspaceConfig, WorkspaceReference,
@@ -5249,7 +5250,7 @@ impl<W: LayoutElement> Layout<W> {
// Add border width since ColumnWidth includes borders.
let rules = window.rules();
- let border = rules.border.resolve_against(self.options.border);
+ let border = self.options.border.merged_with(&rules.border);
if !border.off {
fixed += border.width.0 * 2.;
}
diff --git a/src/layout/scrolling.rs b/src/layout/scrolling.rs
index 2030bb36..5f53ccee 100644
--- a/src/layout/scrolling.rs
+++ b/src/layout/scrolling.rs
@@ -3,6 +3,7 @@ use std::iter::{self, zip};
use std::rc::Rc;
use std::time::Duration;
+use niri_config::utils::MergeWith as _;
use niri_config::{CenterFocusedColumn, PresetSize, Struts};
use niri_ipc::{ColumnDisplay, SizeChange, WindowLayout};
use ordered_float::NotNan;
@@ -443,7 +444,7 @@ impl<W: LayoutElement> ScrollingSpace<W> {
}
pub fn new_window_toplevel_bounds(&self, rules: &ResolvedWindowRules) -> Size<i32, Logical> {
- let border_config = rules.border.resolve_against(self.options.border);
+ let border_config = self.options.border.merged_with(&rules.border);
let display_mode = rules
.default_column_display
@@ -469,7 +470,7 @@ impl<W: LayoutElement> ScrollingSpace<W> {
height: Option<PresetSize>,
rules: &ResolvedWindowRules,
) -> Size<i32, Logical> {
- let border = rules.border.resolve_against(self.options.border);
+ let border = self.options.border.merged_with(&rules.border);
let display_mode = rules
.default_column_display
@@ -3547,7 +3548,7 @@ impl<W: LayoutElement> ScrollingSpace<W> {
win.set_interactive_resize(col_resize_data);
- let border_config = win.rules().border.resolve_against(self.options.border);
+ let border_config = self.options.border.merged_with(&win.rules().border);
let bounds = compute_toplevel_bounds(
border_config,
self.working_area.size,
diff --git a/src/layout/tile.rs b/src/layout/tile.rs
index 89c9f93d..a560bd55 100644
--- a/src/layout/tile.rs
+++ b/src/layout/tile.rs
@@ -1,6 +1,7 @@
use core::f64;
use std::rc::Rc;
+use niri_config::utils::MergeWith as _;
use niri_config::{Color, CornerRadius, GradientInterpolation};
use niri_ipc::WindowLayout;
use smithay::backend::renderer::element::{Element, Kind};
@@ -174,15 +175,15 @@ impl<W: LayoutElement> Tile<W> {
options: Rc<Options>,
) -> Self {
let rules = window.rules();
- let border_config = rules.border.resolve_against(options.border);
- let focus_ring_config = rules.focus_ring.resolve_against(options.focus_ring.into());
- let shadow_config = rules.shadow.resolve_against(options.shadow);
+ let border_config = options.border.merged_with(&rules.border);
+ let focus_ring_config = options.focus_ring.merged_with(&rules.focus_ring);
+ let shadow_config = options.shadow.merged_with(&rules.shadow);
let is_fullscreen = window.is_fullscreen();
Self {
window,
border: FocusRing::new(border_config.into()),
- focus_ring: FocusRing::new(focus_ring_config.into()),
+ focus_ring: FocusRing::new(focus_ring_config),
shadow: Shadow::new(shadow_config),
is_fullscreen,
fullscreen_backdrop: SolidColorBuffer::new((0., 0.), [0., 0., 0., 1.]),
@@ -226,15 +227,13 @@ impl<W: LayoutElement> Tile<W> {
let rules = self.window.rules();
- let border_config = rules.border.resolve_against(self.options.border);
+ let border_config = self.options.border.merged_with(&rules.border);
self.border.update_config(border_config.into());
- let focus_ring_config = rules
- .focus_ring
- .resolve_against(self.options.focus_ring.into());
- self.focus_ring.update_config(focus_ring_config.into());
+ let focus_ring_config = self.options.focus_ring.merged_with(&rules.focus_ring);
+ self.focus_ring.update_config(focus_ring_config);
- let shadow_config = rules.shadow.resolve_against(self.options.shadow);
+ let shadow_config = self.options.shadow.merged_with(&rules.shadow);
self.shadow.update_config(shadow_config);
}
@@ -333,14 +332,12 @@ impl<W: LayoutElement> Tile<W> {
}
let rules = self.window.rules();
- let border_config = rules.border.resolve_against(self.options.border);
+ let border_config = self.options.border.merged_with(&rules.border);
self.border.update_config(border_config.into());
- let focus_ring_config = rules
- .focus_ring
- .resolve_against(self.options.focus_ring.into());
- self.focus_ring.update_config(focus_ring_config.into());
+ let focus_ring_config = self.options.focus_ring.merged_with(&rules.focus_ring);
+ self.focus_ring.update_config(focus_ring_config);
- let shadow_config = rules.shadow.resolve_against(self.options.shadow);
+ let shadow_config = self.options.shadow.merged_with(&rules.shadow);
self.shadow.update_config(shadow_config);
let window_size = self.window_size();