diff --git a/crates/ewwii/src/app.rs b/crates/ewwii/src/app.rs index 8700205..5509d19 100644 --- a/crates/ewwii/src/app.rs +++ b/crates/ewwii/src/app.rs @@ -336,12 +336,16 @@ impl App { let initiator = WindowInitiator::new(&window_def, window_args)?; // TODO replace this + // let root_widget = crate::widgets::build_widget::build_gtk_widget( + // &mut self.scope_graph.borrow_mut(), + // Rc::new(self.ewwii_config.get_widget_definitions().clone()), + // window_scope, + // window_def.widget, + // None, + // )?; + let root_widget = crate::widgets::build_widget::build_gtk_widget( - &mut self.scope_graph.borrow_mut(), - Rc::new(self.ewwii_config.get_widget_definitions().clone()), - window_scope, - window_def.widget, - None, + window_def.windows.into() )?; root_widget.style_context().add_class(window_name); diff --git a/crates/ewwii/src/window/backend_window_options.rs b/crates/ewwii/src/window/backend_window_options.rs index 929d430..af587a3 100644 --- a/crates/ewwii/src/window/backend_window_options.rs +++ b/crates/ewwii/src/window/backend_window_options.rs @@ -68,16 +68,16 @@ impl BackendWindowOptionsDef { let focusable = Self::get_optional(map, "focusable")?; let x11 = X11BackendWindowOptionsDef { - sticky: Self::get_optional(map, "sticky")?; + sticky: Self::get_optional(map, "sticky")?, struts, window_type, - wm_ignore: Self::get_optional(map, "wm-ignore")?; + wm_ignore: Self::get_optional(map, "wm-ignore")?, }; let wayland = WlBackendWindowOptionsDef { - exclusive: Self::get_optional(map, "exclusive")?; + exclusive: Self::get_optional(map, "exclusive")?, focusable, - namespace: Self::get_optional(map, "namespace")?; + namespace: Self::get_optional(map, "namespace")?, }; Ok(Self { wayland, x11 }) diff --git a/crates/ewwii/src/window/window_geometry.rs b/crates/ewwii/src/window/window_geometry.rs index 56eccdf..62d8173 100644 --- a/crates/ewwii/src/window/window_geometry.rs +++ b/crates/ewwii/src/window/window_geometry.rs @@ -66,6 +66,15 @@ impl Coords { } } +impl NumWithUnit { + pub fn to_pixels(&self, container_size: i32) -> i32 { + match self { + NumWithUnit::Pixels(px) => *px, + NumWithUnit::Percent(p) => (p * container_size as f64).round() as i32, + } + } +} + /// Alignment options for anchoring #[derive(Debug, Clone, Copy, Eq, PartialEq, SmartDefault, Serialize, Deserialize, Display)] pub enum AnchorAlignment {