Only call XSetInputFocus if the window is visible

This commit is contained in:
Pierre Krieger 2015-12-24 11:58:50 +01:00
parent 360d2bf452
commit 033d92aae5

View file

@ -615,18 +615,20 @@ impl Window {
input_handler: Mutex::new(XInputEventHandler::new(display, window, ic, window_attrs))
};
unsafe {
let ref x_window: &XWindow = window.x.borrow();
if window_attrs.visible {
unsafe {
let ref x_window: &XWindow = window.x.borrow();
// XSetInputFocus generates an error if the window is not visible,
// therefore we call XSync before to make sure it's the case
(display.xlib.XSync)(display.display, 0);
(display.xlib.XSetInputFocus)(
display.display,
x_window.window,
ffi::RevertToParent,
ffi::CurrentTime
);
// XSetInputFocus generates an error if the window is not visible,
// therefore we call XSync before to make sure it's the case
(display.xlib.XSync)(display.display, 0);
(display.xlib.XSetInputFocus)(
display.display,
x_window.window,
ffi::RevertToParent,
ffi::CurrentTime
);
}
}
// returning