From 19eed94499f7b736a5885e33dd94d91692e7f789 Mon Sep 17 00:00:00 2001 From: zu1k <42370281+zu1k@users.noreply.github.com> Date: Wed, 8 Sep 2021 03:42:14 +0800 Subject: [PATCH] feat: Set whether to show decorations (#672) Co-authored-by: Emil Ernerfeldt --- eframe/CHANGELOG.md | 1 + egui_glium/src/backend.rs | 10 +++++++++- egui_web/src/backend.rs | 1 + epi/src/lib.rs | 9 +++++++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/eframe/CHANGELOG.md b/eframe/CHANGELOG.md index ca701ca8..629b523a 100644 --- a/eframe/CHANGELOG.md +++ b/eframe/CHANGELOG.md @@ -3,6 +3,7 @@ All notable changes to the `eframe` crate. ## Unreleased +* `Frame` now provides `set_decorations` to set whether to show window decorations. * Remove "http" feature (use https://github.com/emilk/ehttp instead!). * Increase native scroll speed. diff --git a/egui_glium/src/backend.rs b/egui_glium/src/backend.rs index 952e6d66..000b6af0 100644 --- a/egui_glium/src/backend.rs +++ b/egui_glium/src/backend.rs @@ -337,7 +337,15 @@ pub fn run(mut app: Box, native_options: epi::NativeOptions) { } { - let epi::backend::AppOutput { quit, window_size } = app_output; + let epi::backend::AppOutput { + quit, + window_size, + decorated, + } = app_output; + + if let Some(decorated) = decorated { + display.gl_window().window().set_decorations(decorated); + } if let Some(window_size) = window_size { display.gl_window().window().set_inner_size( diff --git a/egui_web/src/backend.rs b/egui_web/src/backend.rs index 5bd3e447..69ab6a34 100644 --- a/egui_web/src/backend.rs +++ b/egui_web/src/backend.rs @@ -258,6 +258,7 @@ impl AppRunner { let epi::backend::AppOutput { quit: _, // Can't quit a web page window_size: _, // Can't resize a web page + decorated: _, // Can't show decorations } = app_output; } diff --git a/epi/src/lib.rs b/epi/src/lib.rs index 20271378..b1b5f0e6 100644 --- a/epi/src/lib.rs +++ b/epi/src/lib.rs @@ -251,6 +251,12 @@ impl<'a> Frame<'a> { self.0.output.window_size = Some(size); } + /// Set whether to show window decorations (i.e. a frame around you app). + /// If false it will be difficult to move and resize the app. + pub fn set_decorations(&mut self, decorated: bool) { + self.0.output.decorated = Some(decorated); + } + /// If you need to request a repaint from another thread, clone this and send it to that other thread. pub fn repaint_signal(&self) -> std::sync::Arc { self.0.repaint_signal.clone() @@ -405,5 +411,8 @@ pub mod backend { /// Set to some size to resize the outer window (e.g. glium window) to this size. pub window_size: Option, + + /// Set to some bool to change window decorations + pub decorated: Option, } }