ignore X11 errors
This commit is contained in:
parent
253b0a518e
commit
c51ff3d81c
2 changed files with 7 additions and 4 deletions
|
|
@ -29,6 +29,7 @@ zbus = "2.0.0-beta.7"
|
||||||
zvariant = "2.10.0"
|
zvariant = "2.10.0"
|
||||||
zvariant_derive = "2.10.0"
|
zvariant_derive = "2.10.0"
|
||||||
futures-util = "0.3.19"
|
futures-util = "0.3.19"
|
||||||
|
gdk4-x11-sys = "0.3.1"
|
||||||
|
|
||||||
[dependencies.gtk4]
|
[dependencies.gtk4]
|
||||||
package = "gtk4"
|
package = "gtk4"
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,10 @@ use crate::TX;
|
||||||
use crate::X11_CONN;
|
use crate::X11_CONN;
|
||||||
use gdk4::Rectangle;
|
use gdk4::Rectangle;
|
||||||
use gdk4::Surface;
|
use gdk4::Surface;
|
||||||
|
use gdk4_x11::X11Display;
|
||||||
use gdk4_x11::X11Surface;
|
use gdk4_x11::X11Surface;
|
||||||
|
use gdk4_x11_sys::gdk_x11_display_error_trap_push;
|
||||||
|
use gdk4_x11_sys::GdkX11Display;
|
||||||
use gio::DesktopAppInfo;
|
use gio::DesktopAppInfo;
|
||||||
use glib::Type;
|
use glib::Type;
|
||||||
use gtk4 as gtk;
|
use gtk4 as gtk;
|
||||||
|
|
@ -19,7 +22,6 @@ use postage::prelude::Sink;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use x11rb::connection::Connection;
|
use x11rb::connection::Connection;
|
||||||
use x11rb::protocol::xproto::ConnectionExt;
|
use x11rb::protocol::xproto::ConnectionExt;
|
||||||
|
|
||||||
// use crate::application_row::ApplicationRow;
|
// use crate::application_row::ApplicationRow;
|
||||||
use glib::Object;
|
use glib::Object;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
|
|
@ -197,6 +199,9 @@ impl Window {
|
||||||
);
|
);
|
||||||
window.connect_realize(glib::clone!(@weak revealer, @weak cursor_event_controller => move |window| {
|
window.connect_realize(glib::clone!(@weak revealer, @weak cursor_event_controller => move |window| {
|
||||||
if let Some((display, surface)) = x::get_window_x11(window) {
|
if let Some((display, surface)) = x::get_window_x11(window) {
|
||||||
|
// ignore all x11 errors...
|
||||||
|
let xdisplay = display.clone().downcast::<X11Display>().expect("Failed to downgrade X11 Display.");
|
||||||
|
xdisplay.error_trap_push();
|
||||||
unsafe {
|
unsafe {
|
||||||
x::change_property(
|
x::change_property(
|
||||||
&display,
|
&display,
|
||||||
|
|
@ -243,7 +248,6 @@ impl Window {
|
||||||
)
|
)
|
||||||
.expect("failed to configure window...");
|
.expect("failed to configure window...");
|
||||||
conn.flush().expect("failed to flush");
|
conn.flush().expect("failed to flush");
|
||||||
s.request_layout();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
glib::source::idle_add_local_once(resize);
|
glib::source::idle_add_local_once(resize);
|
||||||
|
|
@ -284,7 +288,6 @@ impl Window {
|
||||||
)
|
)
|
||||||
.expect("failed to configure window...");
|
.expect("failed to configure window...");
|
||||||
conn.flush().expect("failed to flush");
|
conn.flush().expect("failed to flush");
|
||||||
s.request_layout();
|
|
||||||
} else {
|
} else {
|
||||||
println!("failed to get X11 window");
|
println!("failed to get X11 window");
|
||||||
}
|
}
|
||||||
|
|
@ -329,7 +332,6 @@ impl Window {
|
||||||
)
|
)
|
||||||
.expect("failed to configure window...");
|
.expect("failed to configure window...");
|
||||||
conn.flush().expect("failed to flush");
|
conn.flush().expect("failed to flush");
|
||||||
s.request_layout();
|
|
||||||
} else {
|
} else {
|
||||||
println!("failed to get X11 window");
|
println!("failed to get X11 window");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue