Skip to content

Commit

Permalink
fix windows impl
Browse files Browse the repository at this point in the history
  • Loading branch information
amrbashir committed Jul 7, 2023
1 parent c6c494e commit f4f5af0
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions src/platform_impl/windows/event_loop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1780,26 +1780,34 @@ unsafe fn public_window_callback_inner<T: 'static>(
let size_constraints = window_state.size_constraints;

if size_constraints.has_min() {
let min_size = size_constraints.min_size_physical(window_state.scale_factor);
let min_size = PhysicalSize::new(
size_constraints
.min_width
.unwrap_or_else(|| PixelUnit::Physical(GetSystemMetrics(SM_CXMINTRACK).into()))
.to_physical(window_state.scale_factor)
.value,
size_constraints
.min_height
.unwrap_or_else(|| PixelUnit::Physical(GetSystemMetrics(SM_CYMINTRACK).into()))
.to_physical(window_state.scale_factor)
.value,
);
let (width, height): (u32, u32) = util::adjust_size(window, min_size, is_decorated).into();
(*mmi).ptMinTrackSize = POINT {
x: width as i32,
y: height as i32,
};
}
if size_constraints.has_max() {
// we can't use WindowSizeConstraints::max_size_physical because
// for Windows, in order to remove the max constraints, we need to fall to PixelUnit::MIN (which is `0`)
// instead of PixelUnit::MAX (which is f64::MAX)
let max_size = PhysicalSize::new(
size_constraints
.max_width
.unwrap_or(PixelUnit::MIN)
.unwrap_or_else(|| PixelUnit::Physical(GetSystemMetrics(SM_CXMAXTRACK).into()))
.to_physical(window_state.scale_factor)
.value,
size_constraints
.max_height
.unwrap_or(PixelUnit::MIN)
.unwrap_or_else(|| PixelUnit::Physical(GetSystemMetrics(SM_CYMAXTRACK).into()))
.to_physical(window_state.scale_factor)
.value,
);
Expand Down

0 comments on commit f4f5af0

Please sign in to comment.