mirror of
https://github.com/emilk/egui.git
synced 2026-06-27 15:13:12 -04:00
Position persistence and sane clamping to still-available monitors for Windows (#2583)
* Attempt to fix monitor clamping on Windows so window positions can be restored between sessions. * Missed a change. * Renamed variables, reorganized some lines of code, and added some more comments. * Cargo fmt run * Updated CHANGELOG.md to briefly describe my change * Updated CHANGELOG.md to briefly describe my change * Applied suggested fixes from emilk Discovered an issue where putting the monitor off a non-primary monitor to the left causes the position to be off the monitor x and y range, clamping to the primary instead of the non-primary. * Fix for matching negative restored window positions. Should clamp if any part of the window had been visible on a remaining monitor. * Apparently compiler attributes on statements have been marked unstable. Rather than just wrap in blocks, I kind of prefer the more explicit if cfg! call for line 114. CHANGELOG.md - correct a missing paren I noticed * I was being silly, I don't need to clone inner_size_points on line 112 * Cargo fmt run * Update crates/egui-winit/CHANGELOG.md emilk suggested changelog formatting Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com> * Update window_settings.rs Satisfy CI Error * clippy --------- Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
This commit is contained in:
@@ -108,6 +108,8 @@ pub fn build_window<E>(
|
||||
let inner_size_points = if let Some(mut window_settings) = window_settings {
|
||||
// Restore pos/size from previous session
|
||||
window_settings.clamp_to_sane_values(largest_monitor_point_size(event_loop));
|
||||
#[cfg(windows)]
|
||||
window_settings.clamp_window_to_sane_position(&event_loop);
|
||||
window_builder = window_settings.initialize_window(window_builder);
|
||||
window_settings.inner_size_points()
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user