1
0
mirror of https://github.com/emilk/egui.git synced 2026-08-31 22:00:03 -04:00

Remove Option<Option<X>> and simplify ViewportBuilder

This commit is contained in:
Emil Ernerfeldt
2023-11-15 18:22:30 +01:00
parent d21458d166
commit e36ef75f68
6 changed files with 64 additions and 63 deletions

View File

@@ -1035,10 +1035,14 @@ pub fn process_viewport_commands(
window.set_outer_position(LogicalPosition::new(pos.x, pos.y));
}
ViewportCommand::MinInnerSize(s) => {
window.set_min_inner_size(s.map(|s| LogicalSize::new(s.x, s.y)));
window.set_min_inner_size(
(s.is_finite() && s != Vec2::ZERO).then_some(LogicalSize::new(s.x, s.y)),
);
}
ViewportCommand::MaxInnerSize(s) => {
window.set_max_inner_size(s.map(|s| LogicalSize::new(s.x, s.y)));
window.set_max_inner_size(
(s.is_finite() && s != Vec2::INFINITY).then_some(LogicalSize::new(s.x, s.y)),
);
}
ViewportCommand::ResizeIncrements(s) => {
window.set_resize_increments(s.map(|s| LogicalSize::new(s.x, s.y)));
@@ -1168,31 +1172,31 @@ pub fn create_winit_window_builder(builder: &ViewportBuilder) -> winit::window::
})
.with_active(builder.active.unwrap_or(true));
if let Some(Some(inner_size)) = builder.inner_size {
if let Some(inner_size) = builder.inner_size {
window_builder = window_builder
.with_inner_size(winit::dpi::LogicalSize::new(inner_size.x, inner_size.y));
}
if let Some(Some(min_inner_size)) = builder.min_inner_size {
if let Some(min_inner_size) = builder.min_inner_size {
window_builder = window_builder.with_min_inner_size(winit::dpi::LogicalSize::new(
min_inner_size.x,
min_inner_size.y,
));
}
if let Some(Some(max_inner_size)) = builder.max_inner_size {
if let Some(max_inner_size) = builder.max_inner_size {
window_builder = window_builder.with_max_inner_size(winit::dpi::LogicalSize::new(
max_inner_size.x,
max_inner_size.y,
));
}
if let Some(Some(position)) = builder.position {
if let Some(position) = builder.position {
window_builder =
window_builder.with_position(winit::dpi::LogicalPosition::new(position.x, position.y));
}
if let Some(Some(icon)) = builder.icon.clone() {
if let Some(icon) = builder.icon.clone() {
window_builder = window_builder.with_window_icon(Some(
winit::window::Icon::from_rgba(
icon.as_raw().to_owned(),

View File

@@ -60,12 +60,12 @@ impl WindowSettings {
self.outer_position_pixels
};
if let Some(pos) = pos_px {
viewport_builder = viewport_builder.with_position(Some(pos));
viewport_builder = viewport_builder.with_position(pos);
}
if let Some(inner_size_points) = self.inner_size_points {
viewport_builder = viewport_builder
.with_inner_size(Some(inner_size_points))
.with_inner_size(inner_size_points)
.with_fullscreen(self.fullscreen);
}