diff --git a/crates/eww/src/app.rs b/crates/eww/src/app.rs index d65c6ca..a689b02 100644 --- a/crates/eww/src/app.rs +++ b/crates/eww/src/app.rs @@ -466,7 +466,7 @@ fn initialize_window( window.realize(); #[cfg(feature = "x11")] - { + if B::IS_X11 { if let Some(geometry) = window_def.geometry { let _ = apply_window_position(geometry, monitor_geometry, &window); if window_def.backend_options.x11.window_type != yuck::config::backend_window_options::X11WindowType::Normal { diff --git a/crates/eww/src/display_backend.rs b/crates/eww/src/display_backend.rs index 834be57..1f85826 100644 --- a/crates/eww/src/display_backend.rs +++ b/crates/eww/src/display_backend.rs @@ -7,12 +7,15 @@ pub use platform_wayland::WaylandBackend; pub use platform_x11::{set_xprops, X11Backend}; pub trait DisplayBackend: Send + Sync + 'static { + const IS_X11: bool; fn initialize_window(window_def: &WindowDefinition, monitor: gdk::Rectangle) -> Option; } pub struct NoBackend; impl DisplayBackend for NoBackend { + const IS_X11: bool = false; + fn initialize_window(_window_def: &WindowDefinition, _monitor: gdk::Rectangle) -> Option { Some(gtk::Window::new(gtk::WindowType::Toplevel)) } @@ -31,6 +34,8 @@ mod platform_wayland { pub struct WaylandBackend; impl DisplayBackend for WaylandBackend { + const IS_X11: bool = false; + fn initialize_window(window_def: &WindowDefinition, monitor: gdk::Rectangle) -> Option { let window = gtk::Window::new(gtk::WindowType::Toplevel); // Initialising a layer shell surface @@ -127,6 +132,8 @@ mod platform_x11 { pub struct X11Backend; impl DisplayBackend for X11Backend { + const IS_X11: bool = true; + fn initialize_window(window_def: &WindowDefinition, _monitor: gdk::Rectangle) -> Option { let window_type = if window_def.backend_options.x11.wm_ignore { gtk::WindowType::Popup } else { gtk::WindowType::Toplevel };