Use IsA<Window>
This commit is contained in:
parent
cf63465320
commit
e26ae62532
2 changed files with 9 additions and 5 deletions
|
|
@ -58,7 +58,7 @@ impl WidgetImpl for PanelWindowInner {
|
||||||
fn show(&self, obj: &PanelWindow) {
|
fn show(&self, obj: &PanelWindow) {
|
||||||
self.parent_show(obj);
|
self.parent_show(obj);
|
||||||
|
|
||||||
if let Some((display, surface)) = x::get_window_x11(&obj.upcast_ref()) {
|
if let Some((display, surface)) = x::get_window_x11(obj) {
|
||||||
unsafe {
|
unsafe {
|
||||||
surface.set_skip_pager_hint(true);
|
surface.set_skip_pager_hint(true);
|
||||||
surface.set_skip_taskbar_hint(true);
|
surface.set_skip_taskbar_hint(true);
|
||||||
|
|
@ -127,7 +127,7 @@ impl PanelWindow {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Some((display, surface)) = x::get_window_x11(self.upcast_ref()) {
|
if let Some((display, surface)) = x::get_window_x11(self) {
|
||||||
let top_start_x = geometry.x as x::c_ulong;
|
let top_start_x = geometry.x as x::c_ulong;
|
||||||
let top_end_x = top_start_x + geometry.width as x::c_ulong - 1;
|
let top_end_x = top_start_x + geometry.width as x::c_ulong - 1;
|
||||||
|
|
||||||
|
|
|
||||||
10
src/x.rs
10
src/x.rs
|
|
@ -10,10 +10,14 @@ use std::{
|
||||||
|
|
||||||
pub use std::os::raw::{c_uchar, c_ulong, c_ushort};
|
pub use std::os::raw::{c_uchar, c_ulong, c_ushort};
|
||||||
|
|
||||||
pub fn get_window_x11(
|
pub fn get_window_x11<T: IsA<gtk4::Window>>(
|
||||||
window: >k4::Window,
|
window: &T,
|
||||||
) -> Option<(gdk4_x11::X11Display, gdk4_x11::X11Surface)> {
|
) -> Option<(gdk4_x11::X11Display, gdk4_x11::X11Surface)> {
|
||||||
let surface = window.surface()?.downcast::<gdk4_x11::X11Surface>().ok()?;
|
let surface = window
|
||||||
|
.upcast_ref()
|
||||||
|
.surface()?
|
||||||
|
.downcast::<gdk4_x11::X11Surface>()
|
||||||
|
.ok()?;
|
||||||
let display = surface.display()?.downcast::<gdk4_x11::X11Display>().ok()?;
|
let display = surface.display()?.downcast::<gdk4_x11::X11Display>().ok()?;
|
||||||
Some((display, surface))
|
Some((display, surface))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue