Fix eww not working on wayland if X feature is enabled
This commit is contained in:
parent
4a9455b63f
commit
27830a8c6d
2 changed files with 8 additions and 1 deletions
|
@ -466,7 +466,7 @@ fn initialize_window<B: DisplayBackend>(
|
||||||
window.realize();
|
window.realize();
|
||||||
|
|
||||||
#[cfg(feature = "x11")]
|
#[cfg(feature = "x11")]
|
||||||
{
|
if B::IS_X11 {
|
||||||
if let Some(geometry) = window_def.geometry {
|
if let Some(geometry) = window_def.geometry {
|
||||||
let _ = apply_window_position(geometry, monitor_geometry, &window);
|
let _ = apply_window_position(geometry, monitor_geometry, &window);
|
||||||
if window_def.backend_options.x11.window_type != yuck::config::backend_window_options::X11WindowType::Normal {
|
if window_def.backend_options.x11.window_type != yuck::config::backend_window_options::X11WindowType::Normal {
|
||||||
|
|
|
@ -7,12 +7,15 @@ pub use platform_wayland::WaylandBackend;
|
||||||
pub use platform_x11::{set_xprops, X11Backend};
|
pub use platform_x11::{set_xprops, X11Backend};
|
||||||
|
|
||||||
pub trait DisplayBackend: Send + Sync + 'static {
|
pub trait DisplayBackend: Send + Sync + 'static {
|
||||||
|
const IS_X11: bool;
|
||||||
fn initialize_window(window_def: &WindowDefinition, monitor: gdk::Rectangle) -> Option<gtk::Window>;
|
fn initialize_window(window_def: &WindowDefinition, monitor: gdk::Rectangle) -> Option<gtk::Window>;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct NoBackend;
|
pub struct NoBackend;
|
||||||
|
|
||||||
impl DisplayBackend for NoBackend {
|
impl DisplayBackend for NoBackend {
|
||||||
|
const IS_X11: bool = false;
|
||||||
|
|
||||||
fn initialize_window(_window_def: &WindowDefinition, _monitor: gdk::Rectangle) -> Option<gtk::Window> {
|
fn initialize_window(_window_def: &WindowDefinition, _monitor: gdk::Rectangle) -> Option<gtk::Window> {
|
||||||
Some(gtk::Window::new(gtk::WindowType::Toplevel))
|
Some(gtk::Window::new(gtk::WindowType::Toplevel))
|
||||||
}
|
}
|
||||||
|
@ -31,6 +34,8 @@ mod platform_wayland {
|
||||||
pub struct WaylandBackend;
|
pub struct WaylandBackend;
|
||||||
|
|
||||||
impl DisplayBackend for WaylandBackend {
|
impl DisplayBackend for WaylandBackend {
|
||||||
|
const IS_X11: bool = false;
|
||||||
|
|
||||||
fn initialize_window(window_def: &WindowDefinition, monitor: gdk::Rectangle) -> Option<gtk::Window> {
|
fn initialize_window(window_def: &WindowDefinition, monitor: gdk::Rectangle) -> Option<gtk::Window> {
|
||||||
let window = gtk::Window::new(gtk::WindowType::Toplevel);
|
let window = gtk::Window::new(gtk::WindowType::Toplevel);
|
||||||
// Initialising a layer shell surface
|
// Initialising a layer shell surface
|
||||||
|
@ -127,6 +132,8 @@ mod platform_x11 {
|
||||||
|
|
||||||
pub struct X11Backend;
|
pub struct X11Backend;
|
||||||
impl DisplayBackend for X11Backend {
|
impl DisplayBackend for X11Backend {
|
||||||
|
const IS_X11: bool = true;
|
||||||
|
|
||||||
fn initialize_window(window_def: &WindowDefinition, _monitor: gdk::Rectangle) -> Option<gtk::Window> {
|
fn initialize_window(window_def: &WindowDefinition, _monitor: gdk::Rectangle) -> Option<gtk::Window> {
|
||||||
let window_type =
|
let window_type =
|
||||||
if window_def.backend_options.x11.wm_ignore { gtk::WindowType::Popup } else { gtk::WindowType::Toplevel };
|
if window_def.backend_options.x11.wm_ignore { gtk::WindowType::Popup } else { gtk::WindowType::Toplevel };
|
||||||
|
|
Loading…
Add table
Reference in a new issue