mirror of
https://github.com/emilk/egui.git
synced 2026-09-01 06:10:06 -04:00
Now if winit supports if the window cant be closed will not show the close button
This commit is contained in:
@@ -5,8 +5,9 @@ use std::time::Instant;
|
|||||||
|
|
||||||
use egui::{epaint::ahash::HashMap, window::ViewportBuilder};
|
use egui::{epaint::ahash::HashMap, window::ViewportBuilder};
|
||||||
use raw_window_handle::{HasRawDisplayHandle as _, HasRawWindowHandle as _};
|
use raw_window_handle::{HasRawDisplayHandle as _, HasRawWindowHandle as _};
|
||||||
use winit::event_loop::{
|
use winit::{
|
||||||
ControlFlow, EventLoop, EventLoopBuilder, EventLoopProxy, EventLoopWindowTarget,
|
event_loop::{ControlFlow, EventLoop, EventLoopBuilder, EventLoopProxy, EventLoopWindowTarget},
|
||||||
|
window::WindowButtons,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[cfg(feature = "accesskit")]
|
#[cfg(feature = "accesskit")]
|
||||||
@@ -1943,6 +1944,15 @@ fn create_winit_window_builder(builder: &ViewportBuilder) -> winit::window::Wind
|
|||||||
.fullscreen
|
.fullscreen
|
||||||
.then(|| winit::window::Fullscreen::Borderless(None)),
|
.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);
|
.with_active(builder.active);
|
||||||
if let Some(inner_size) = builder.inner_size {
|
if let Some(inner_size) = builder.inner_size {
|
||||||
window_builder = window_builder
|
window_builder = window_builder
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ pub struct ViewportBuilder {
|
|||||||
pub min_inner_size: Option<(u32, u32)>,
|
pub min_inner_size: Option<(u32, u32)>,
|
||||||
pub max_inner_size: Option<(u32, u32)>,
|
pub max_inner_size: Option<(u32, u32)>,
|
||||||
pub drag_and_drop: bool,
|
pub drag_and_drop: bool,
|
||||||
|
|
||||||
|
pub close_button: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for ViewportBuilder {
|
impl Default for ViewportBuilder {
|
||||||
@@ -49,6 +51,7 @@ impl Default for ViewportBuilder {
|
|||||||
min_inner_size: None,
|
min_inner_size: None,
|
||||||
max_inner_size: None,
|
max_inner_size: None,
|
||||||
drag_and_drop: true,
|
drag_and_drop: true,
|
||||||
|
close_button: true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -468,6 +471,7 @@ impl<'open> Window<'open> {
|
|||||||
window_builder =
|
window_builder =
|
||||||
window_builder.with_inner_size((size.x as u32 + 1, size.y as u32 + 1));
|
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;
|
let area_id = area.id;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user