refactor: minor refactor on windowing builder

This commit is contained in:
drendog 2025-10-25 15:33:57 +02:00
parent e9f02a8533
commit 35f5b1321f
Signed by: dwenya
GPG key ID: 8DD77074645332D0
2 changed files with 18 additions and 12 deletions

View file

@ -6,7 +6,10 @@ use smithay_client_toolkit::reexports::protocols_wlr::layer_shell::v1::client::{
use crate::errors::{LayerShikaError, Result}; use crate::errors::{LayerShikaError, Result};
use super::{config::{Margins, WindowConfig}, WindowingSystem}; use super::{
config::{Margins, WindowConfig},
WindowingSystem,
};
pub struct WindowingSystemBuilder { pub struct WindowingSystemBuilder {
config: Option<WindowConfig>, config: Option<WindowConfig>,
@ -22,9 +25,7 @@ impl WindowingSystemBuilder {
#[inline] #[inline]
#[must_use] #[must_use]
pub const fn new() -> Self { pub const fn new() -> Self {
Self { Self { config: None }
config: None,
}
} }
#[must_use] #[must_use]
@ -46,7 +47,12 @@ impl WindowingSystemBuilder {
#[must_use] #[must_use]
pub const fn with_margin(mut self, top: i32, right: i32, bottom: i32, left: i32) -> Self { pub const fn with_margin(mut self, top: i32, right: i32, bottom: i32, left: i32) -> Self {
if let Some(ref mut config) = self.config { if let Some(ref mut config) = self.config {
config.margin = Margins { top, right, bottom, left }; config.margin = Margins {
top,
right,
bottom,
left,
};
} }
self self
} }
@ -102,9 +108,9 @@ impl WindowingSystemBuilder {
#[allow(clippy::missing_errors_doc)] #[allow(clippy::missing_errors_doc)]
pub fn build(self) -> Result<WindowingSystem> { pub fn build(self) -> Result<WindowingSystem> {
let config = self.config.as_ref().ok_or_else(|| { let config = self
LayerShikaError::InvalidInput("Slint component not set".into()) .config
})?; .ok_or_else(|| LayerShikaError::InvalidInput("Slint component not set".into()))?;
WindowingSystem::new(config) WindowingSystem::new(config)
} }
} }

View file

@ -64,7 +64,7 @@ pub struct WindowingSystem {
} }
impl WindowingSystem { impl WindowingSystem {
fn new(config: &WindowConfig) -> Result<Self> { fn new(config: WindowConfig) -> Result<Self> {
info!("Initializing WindowingSystem"); info!("Initializing WindowingSystem");
let connection = let connection =
Rc::new(Connection::connect_to_env().map_err(LayerShikaError::WaylandConnection)?); Rc::new(Connection::connect_to_env().map_err(LayerShikaError::WaylandConnection)?);
@ -81,15 +81,15 @@ impl WindowingSystem {
fractional_scale_manager.as_ref(), fractional_scale_manager.as_ref(),
viewporter.as_ref(), viewporter.as_ref(),
&event_queue.handle(), &event_queue.handle(),
config, &config,
); );
let pointer = Rc::new(seat.get_pointer(&event_queue.handle(), ())); let pointer = Rc::new(seat.get_pointer(&event_queue.handle(), ()));
let window = Self::initialize_renderer(&surface, &connection.display(), config) let window = Self::initialize_renderer(&surface, &connection.display(), &config)
.map_err(|e| LayerShikaError::EGLContextCreation(e.to_string()))?; .map_err(|e| LayerShikaError::EGLContextCreation(e.to_string()))?;
let mut builder = WindowStateBuilder::new() let mut builder = WindowStateBuilder::new()
.with_component_definition(config.component_definition.clone()) .with_component_definition(config.component_definition)
.with_surface(Rc::clone(&surface)) .with_surface(Rc::clone(&surface))
.with_layer_surface(Rc::clone(&layer_surface)) .with_layer_surface(Rc::clone(&layer_surface))
.with_pointer(Rc::clone(&pointer)) .with_pointer(Rc::clone(&pointer))