From b5ebb52d9cd85a0a7082b2d4d9243dbc53c4211e Mon Sep 17 00:00:00 2001 From: drendog Date: Fri, 5 Dec 2025 05:18:47 +0100 Subject: [PATCH] fix: hardcoded surface name --- crates/adapters/src/wayland/config.rs | 3 +++ crates/adapters/src/wayland/outputs/output_manager.rs | 7 ++++++- crates/adapters/src/wayland/shell_adapter.rs | 2 +- crates/adapters/src/wayland/surfaces/app_state.rs | 3 ++- crates/composition/src/shell.rs | 2 ++ crates/composition/src/system.rs | 1 + 6 files changed, 15 insertions(+), 3 deletions(-) diff --git a/crates/adapters/src/wayland/config.rs b/crates/adapters/src/wayland/config.rs index d8ea95d..a557c37 100644 --- a/crates/adapters/src/wayland/config.rs +++ b/crates/adapters/src/wayland/config.rs @@ -23,6 +23,7 @@ pub(crate) struct LayerSurfaceConfig { #[derive(Clone)] pub struct WaylandSurfaceConfig { + pub surface_name: String, pub height: u32, pub width: u32, pub layer: zwlr_layer_shell_v1::Layer, @@ -40,11 +41,13 @@ pub struct WaylandSurfaceConfig { impl WaylandSurfaceConfig { #[must_use] pub fn from_domain_config( + surface_name: impl Into, component_definition: ComponentDefinition, compilation_result: Option>, domain_config: DomainSurfaceConfig, ) -> Self { Self { + surface_name: surface_name.into(), height: domain_config.dimensions.height(), width: domain_config.dimensions.width(), layer: convert_layer(domain_config.layer), diff --git a/crates/adapters/src/wayland/outputs/output_manager.rs b/crates/adapters/src/wayland/outputs/output_manager.rs index aeb8b02..5207ab3 100644 --- a/crates/adapters/src/wayland/outputs/output_manager.rs +++ b/crates/adapters/src/wayland/outputs/output_manager.rs @@ -144,7 +144,12 @@ impl OutputManager { let (window, main_surface_id) = self.create_window_for_output(&pending_output.proxy, output_id, queue_handle)?; - app_state.add_output(output_id, main_surface_id, window); + app_state.add_output( + output_id, + &self.config.surface_name, + main_surface_id, + window, + ); Ok(()) } diff --git a/crates/adapters/src/wayland/shell_adapter.rs b/crates/adapters/src/wayland/shell_adapter.rs index f537c8d..9753d92 100644 --- a/crates/adapters/src/wayland/shell_adapter.rs +++ b/crates/adapters/src/wayland/shell_adapter.rs @@ -198,7 +198,7 @@ impl WaylandWindowingSystem { main_surface_id, window, builder, - shell_surface_name: "default".to_string(), + shell_surface_name: config.surface_name.clone(), }); } diff --git a/crates/adapters/src/wayland/surfaces/app_state.rs b/crates/adapters/src/wayland/surfaces/app_state.rs index 80ca4ec..6aaa91c 100644 --- a/crates/adapters/src/wayland/surfaces/app_state.rs +++ b/crates/adapters/src/wayland/surfaces/app_state.rs @@ -99,10 +99,11 @@ impl AppState { pub fn add_output( &mut self, output_id: &ObjectId, + surface_name: &str, main_surface_id: ObjectId, surface_state: PerOutputWindow, ) { - self.add_shell_surface(output_id, "default", main_surface_id, surface_state); + self.add_shell_surface(output_id, surface_name, main_surface_id, surface_state); } pub fn remove_output(&mut self, handle: OutputHandle) -> Vec { diff --git a/crates/composition/src/shell.rs b/crates/composition/src/shell.rs index 247023e..7334c52 100644 --- a/crates/composition/src/shell.rs +++ b/crates/composition/src/shell.rs @@ -383,6 +383,7 @@ impl Shell { })?; let wayland_config = WaylandSurfaceConfig::from_domain_config( + &definition.component, component_definition, Some(Rc::clone(&compilation_result)), definition.config.clone(), @@ -430,6 +431,7 @@ impl Shell { })?; let wayland_config = WaylandSurfaceConfig::from_domain_config( + &def.component, component_definition, Some(Rc::clone(&compilation_result)), def.config.clone(), diff --git a/crates/composition/src/system.rs b/crates/composition/src/system.rs index ddc90ff..ecc6039 100644 --- a/crates/composition/src/system.rs +++ b/crates/composition/src/system.rs @@ -566,6 +566,7 @@ impl SingleWindowShell { config: SurfaceConfig, ) -> Result { let wayland_config = WaylandSurfaceConfig::from_domain_config( + "default", component_definition, compilation_result, config,