Add window position check to fix off screen issue

macos-click-through
Keith Simmons 3 years ago
parent 557e988c09
commit 8542333c94

@ -332,6 +332,28 @@ pub fn create_window() {
let window = windowed_context.window(); let window = windowed_context.window();
// Check that window is visible in some monitor, and reposition it if not.
if let Some(current_monitor) = window.current_monitor() {
let monitor_position = current_monitor.position();
let monitor_size = current_monitor.size();
let monitor_width = monitor_size.width as i32;
let monitor_height = monitor_size.height as i32;
let window_position = window.outer_position().expect("Could not get window position");
let window_size = window.outer_size();
let window_width = window_size.width as i32;
let window_height = window_size.height as i32;
if window_position.x + window_width < monitor_position.x ||
window_position.y + window_height < monitor_position.y ||
window_position.x > monitor_position.x + monitor_width ||
window_position.y > monitor_position.y + monitor_height
{
window.set_outer_position(monitor_position);
}
}
let scale_factor = windowed_context.window().scale_factor(); let scale_factor = windowed_context.window().scale_factor();
let renderer = Renderer::new(scale_factor); let renderer = Renderer::new(scale_factor);
let saved_inner_size = window.inner_size(); let saved_inner_size = window.inner_size();

Loading…
Cancel
Save