From e1fad994da9565b43c7fb139cb2fb7bf404cc320 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Tue, 2 Sep 2025 08:07:22 +0300 Subject: Implement maximize-to-edges (true Wayland maximize) --- niri-visual-tests/src/cases/layout.rs | 6 +++--- niri-visual-tests/src/cases/window.rs | 10 +++++----- niri-visual-tests/src/test_window.rs | 18 +++++++++--------- 3 files changed, 17 insertions(+), 17 deletions(-) (limited to 'niri-visual-tests/src') diff --git a/niri-visual-tests/src/cases/layout.rs b/niri-visual-tests/src/cases/layout.rs index 5fa522d8..3b864964 100644 --- a/niri-visual-tests/src/cases/layout.rs +++ b/niri-visual-tests/src/cases/layout.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use std::time::Duration; use niri::animation::Clock; -use niri::layout::{ActivateWindow, AddWindowTarget, LayoutElement as _, Options}; +use niri::layout::{ActivateWindow, AddWindowTarget, LayoutElement as _, Options, SizingMode}; use niri::render_helpers::RenderTarget; use niri_config::{Color, OutputName, PresetSize}; use smithay::backend::renderer::element::RenderElement; @@ -168,7 +168,7 @@ impl Layout { let max_size = window.max_size(); window.request_size( ws.new_window_size(width, None, false, window.rules(), (min_size, max_size)), - false, + SizingMode::Normal, false, None, ); @@ -197,7 +197,7 @@ impl Layout { let max_size = window.max_size(); window.request_size( ws.new_window_size(width, None, false, window.rules(), (min_size, max_size)), - false, + SizingMode::Normal, false, None, ); diff --git a/niri-visual-tests/src/cases/window.rs b/niri-visual-tests/src/cases/window.rs index 51d5c962..26244b3b 100644 --- a/niri-visual-tests/src/cases/window.rs +++ b/niri-visual-tests/src/cases/window.rs @@ -1,4 +1,4 @@ -use niri::layout::LayoutElement; +use niri::layout::{LayoutElement, SizingMode}; use niri::render_helpers::RenderTarget; use smithay::backend::renderer::element::RenderElement; use smithay::backend::renderer::gles::GlesRenderer; @@ -14,14 +14,14 @@ pub struct Window { impl Window { pub fn freeform(args: Args) -> Self { let mut window = TestWindow::freeform(0); - window.request_size(args.size, false, false, None); + window.request_size(args.size, SizingMode::Normal, false, None); window.communicate(); Self { window } } pub fn fixed_size(args: Args) -> Self { let mut window = TestWindow::fixed_size(0); - window.request_size(args.size, false, false, None); + window.request_size(args.size, SizingMode::Normal, false, None); window.communicate(); Self { window } } @@ -29,7 +29,7 @@ impl Window { pub fn fixed_size_with_csd_shadow(args: Args) -> Self { let mut window = TestWindow::fixed_size(0); window.set_csd_shadow_width(64); - window.request_size(args.size, false, false, None); + window.request_size(args.size, SizingMode::Normal, false, None); window.communicate(); Self { window } } @@ -38,7 +38,7 @@ impl Window { impl TestCase for Window { fn resize(&mut self, width: i32, height: i32) { self.window - .request_size(Size::from((width, height)), false, false, None); + .request_size(Size::from((width, height)), SizingMode::Normal, false, None); self.window.communicate(); } diff --git a/niri-visual-tests/src/test_window.rs b/niri-visual-tests/src/test_window.rs index 7fee44c6..fa96860a 100644 --- a/niri-visual-tests/src/test_window.rs +++ b/niri-visual-tests/src/test_window.rs @@ -4,7 +4,7 @@ use std::rc::Rc; use niri::layout::{ ConfigureIntent, InteractiveResizeData, LayoutElement, LayoutElementRenderElement, - LayoutElementRenderSnapshot, + LayoutElementRenderSnapshot, SizingMode, }; use niri::render_helpers::offscreen::OffscreenData; use niri::render_helpers::renderer::NiriRenderer; @@ -24,7 +24,7 @@ struct TestWindowInner { min_size: Size, max_size: Size, buffer: SolidColorBuffer, - pending_fullscreen: bool, + pending_sizing_mode: SizingMode, csd_shadow_width: i32, csd_shadow_buffer: SolidColorBuffer, } @@ -50,7 +50,7 @@ impl TestWindow { min_size, max_size, buffer, - pending_fullscreen: false, + pending_sizing_mode: SizingMode::Normal, csd_shadow_width: 0, csd_shadow_buffer: SolidColorBuffer::new((0., 0.), [0., 0., 0., 0.3]), })), @@ -182,12 +182,12 @@ impl LayoutElement for TestWindow { fn request_size( &mut self, size: Size, - is_fullscreen: bool, + mode: SizingMode, _animate: bool, _transaction: Option, ) { self.inner.borrow_mut().requested_size = Some(size); - self.inner.borrow_mut().pending_fullscreen = is_fullscreen; + self.inner.borrow_mut().pending_sizing_mode = mode; } fn min_size(&self) -> Size { @@ -232,12 +232,12 @@ impl LayoutElement for TestWindow { fn send_pending_configure(&mut self) {} - fn is_fullscreen(&self) -> bool { - false + fn pending_sizing_mode(&self) -> SizingMode { + self.inner.borrow().pending_sizing_mode } - fn is_pending_fullscreen(&self) -> bool { - self.inner.borrow().pending_fullscreen + fn sizing_mode(&self) -> SizingMode { + SizingMode::Normal } fn requested_size(&self) -> Option> { -- cgit