mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-24 06:11:30 +11:00
Merge pull request #120 from glennw/x11-visibility
Add support for with_visibility(), show(), hide() on X11.
This commit is contained in:
commit
4edb3df155
|
@ -1426,6 +1426,8 @@ extern "C" {
|
|||
index: libc::c_int) -> KeySym;
|
||||
pub fn XMoveWindow(display: *mut Display, w: Window, x: libc::c_int, y: libc::c_int);
|
||||
pub fn XMapWindow(display: *mut Display, w: Window);
|
||||
pub fn XMapRaised(display: *mut Display, w: Window);
|
||||
pub fn XUnmapWindow(display: *mut Display, w: Window);
|
||||
pub fn XNextEvent(display: *mut Display, event_return: *mut XEvent);
|
||||
pub fn XInitThreads() -> Status;
|
||||
pub fn XOpenDisplay(display_name: *const libc::c_char) -> *mut Display;
|
||||
|
|
|
@ -163,12 +163,19 @@ impl Window {
|
|||
win
|
||||
};
|
||||
|
||||
// set visibility
|
||||
if builder.visible {
|
||||
unsafe {
|
||||
ffi::XMapRaised(display, window);
|
||||
ffi::XFlush(display);
|
||||
}
|
||||
}
|
||||
|
||||
// creating window, step 2
|
||||
let wm_delete_window = unsafe {
|
||||
use std::c_str::ToCStr;
|
||||
|
||||
let delete_window = "WM_DELETE_WINDOW".to_c_str();
|
||||
ffi::XMapWindow(display, window);
|
||||
let mut wm_delete_window = ffi::XInternAtom(display, delete_window.as_ptr(), 0);
|
||||
ffi::XSetWMProtocols(display, window, &mut wm_delete_window, 1);
|
||||
let c_title = builder.title.to_c_str();
|
||||
|
@ -287,9 +294,17 @@ impl Window {
|
|||
}
|
||||
|
||||
pub fn show(&self) {
|
||||
unsafe {
|
||||
ffi::XMapRaised(self.display, self.window);
|
||||
ffi::XFlush(self.display);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn hide(&self) {
|
||||
unsafe {
|
||||
ffi::XUnmapWindow(self.display, self.window);
|
||||
ffi::XFlush(self.display);
|
||||
}
|
||||
}
|
||||
|
||||
fn get_geometry(&self) -> Option<(int, int, uint, uint)> {
|
||||
|
|
Loading…
Reference in a new issue