1
0
mirror of https://github.com/emilk/egui.git synced 2026-06-27 23:13:13 -04:00

Now if winit supports if the window cant be closed will not show the close button

This commit is contained in:
Konkitoman
2023-07-24 16:37:47 +03:00
parent f4a196cddc
commit 4143f58cc8
2 changed files with 16 additions and 2 deletions

View File

@@ -5,8 +5,9 @@ use std::time::Instant;
use egui::{epaint::ahash::HashMap, window::ViewportBuilder};
use raw_window_handle::{HasRawDisplayHandle as _, HasRawWindowHandle as _};
use winit::event_loop::{
ControlFlow, EventLoop, EventLoopBuilder, EventLoopProxy, EventLoopWindowTarget,
use winit::{
event_loop::{ControlFlow, EventLoop, EventLoopBuilder, EventLoopProxy, EventLoopWindowTarget},
window::WindowButtons,
};
#[cfg(feature = "accesskit")]
@@ -1943,6 +1944,15 @@ fn create_winit_window_builder(builder: &ViewportBuilder) -> winit::window::Wind
.fullscreen
.then(|| winit::window::Fullscreen::Borderless(None)),
)
.with_enabled_buttons(
WindowButtons::MAXIMIZE
| WindowButtons::MINIMIZE
| if builder.close_button {
WindowButtons::CLOSE
} else {
WindowButtons::empty()
},
)
.with_active(builder.active);
if let Some(inner_size) = builder.inner_size {
window_builder = window_builder

View File

@@ -26,6 +26,8 @@ pub struct ViewportBuilder {
pub min_inner_size: Option<(u32, u32)>,
pub max_inner_size: Option<(u32, u32)>,
pub drag_and_drop: bool,
pub close_button: bool,
}
impl Default for ViewportBuilder {
@@ -49,6 +51,7 @@ impl Default for ViewportBuilder {
min_inner_size: None,
max_inner_size: None,
drag_and_drop: true,
close_button: true,
}
}
}
@@ -468,6 +471,7 @@ impl<'open> Window<'open> {
window_builder =
window_builder.with_inner_size((size.x as u32 + 1, size.y as u32 + 1));
}
window_builder.close_button = open.is_some();
let area_id = area.id;