Merge pull request #168 from jonhoo/set_class_before_map

Set WM_CLASS and WM_NAME before mapping window
This commit is contained in:
tomaka 2017-05-05 07:40:41 +02:00 committed by GitHub
commit 689d0521f5

View file

@ -403,6 +403,19 @@ impl Window {
win
};
// Set ICCCM WM_CLASS property based on initial window title
// Must be done *before* mapping the window by ICCCM 4.1.2.5
unsafe {
with_c_str(&*window_attrs.title, |c_name| {
let hint = (display.xlib.XAllocClassHint)();
(*hint).res_name = c_name as *mut libc::c_char;
(*hint).res_class = c_name as *mut libc::c_char;
(display.xlib.XSetClassHint)(display.display, window, hint);
display.check_errors().expect("Failed to call XSetClassHint");
(display.xlib.XFree)(hint as *mut _);
});
}
// set visibility
if window_attrs.visible {
unsafe {
@ -466,18 +479,6 @@ impl Window {
}
}
// Set ICCCM WM_CLASS property based on initial window title
unsafe {
with_c_str(&*window_attrs.title, |c_name| {
let hint = (display.xlib.XAllocClassHint)();
(*hint).res_name = c_name as *mut libc::c_char;
(*hint).res_class = c_name as *mut libc::c_char;
(display.xlib.XSetClassHint)(display.display, window, hint);
display.check_errors().expect("Failed to call XSetClassHint");
(display.xlib.XFree)(hint as *mut _);
});
}
let is_fullscreen = window_attrs.monitor.is_some();
if is_fullscreen {