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

Add x11 window type settings to viewport builder (#4175)

Not sure about the api, currently I've mapped the whole XWindowType
enum, but maybe there's something more sensible to do?

* Closes <https://github.com/emilk/egui/issues/4150>

---------

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
This commit is contained in:
Seth Rider
2024-03-21 11:07:20 +00:00
committed by GitHub
parent 365d035b20
commit 2c9c5f0dea
2 changed files with 100 additions and 0 deletions

View File

@@ -1540,6 +1540,9 @@ pub fn create_winit_window_builder<T>(
// wayland:
app_id: _app_id,
// x11
window_type: _window_type,
mouse_passthrough: _, // handled in `apply_viewport_builder_to_window`
} = viewport_builder;
@@ -1612,6 +1615,30 @@ pub fn create_winit_window_builder<T>(
window_builder = window_builder.with_name(app_id, "");
}
#[cfg(all(feature = "x11", target_os = "linux"))]
{
if let Some(window_type) = _window_type {
use winit::platform::x11::WindowBuilderExtX11 as _;
use winit::platform::x11::XWindowType;
window_builder = window_builder.with_x11_window_type(vec![match window_type {
egui::X11WindowType::Normal => XWindowType::Normal,
egui::X11WindowType::Utility => XWindowType::Utility,
egui::X11WindowType::Dock => XWindowType::Dock,
egui::X11WindowType::Desktop => XWindowType::Desktop,
egui::X11WindowType::Toolbar => XWindowType::Toolbar,
egui::X11WindowType::Menu => XWindowType::Menu,
egui::X11WindowType::Splash => XWindowType::Splash,
egui::X11WindowType::Dialog => XWindowType::Dialog,
egui::X11WindowType::DropdownMenu => XWindowType::DropdownMenu,
egui::X11WindowType::PopupMenu => XWindowType::PopupMenu,
egui::X11WindowType::Tooltip => XWindowType::Tooltip,
egui::X11WindowType::Notification => XWindowType::Notification,
egui::X11WindowType::Combo => XWindowType::Combo,
egui::X11WindowType::Dnd => XWindowType::Dnd,
}]);
}
}
#[cfg(target_os = "windows")]
{
use winit::platform::windows::WindowBuilderExtWindows as _;