diff --git a/packages/desktop/src/cfg.rs b/packages/desktop/src/cfg.rs index ba42ffa01..3b0409ae8 100644 --- a/packages/desktop/src/cfg.rs +++ b/packages/desktop/src/cfg.rs @@ -36,7 +36,7 @@ pub struct Config { pub(crate) root_name: String, pub(crate) background_color: Option<(u8, u8, u8, u8)>, pub(crate) last_window_close_behaviour: WindowCloseBehaviour, - pub(crate) disable_default_menu_bar: bool, + pub(crate) enable_default_menu_bar: bool, } type DropHandler = Box bool>; @@ -66,13 +66,15 @@ impl Config { root_name: "main".to_string(), background_color: None, last_window_close_behaviour: WindowCloseBehaviour::LastWindowExitsApp, - disable_default_menu_bar: false, + enable_default_menu_bar: true, } } - /// Set whether the default menu bar should be disabled. - pub fn with_disable_default_menu_bar(mut self, disable: bool) -> Self { - self.disable_default_menu_bar = disable; + /// Set whether the default menu bar should be enabled. + /// + /// > Note: `enable` is `true` by default. To disable the default menu bar pass `false`. + pub fn with_default_menu_bar(mut self, enable: bool) -> Self { + self.enable_default_menu_bar = enable; self } diff --git a/packages/desktop/src/webview.rs b/packages/desktop/src/webview.rs index 9beae702a..f03878242 100644 --- a/packages/desktop/src/webview.rs +++ b/packages/desktop/src/webview.rs @@ -19,8 +19,8 @@ pub fn build( let index_file = cfg.custom_index.clone(); let root_name = cfg.root_name.clone(); - if !cfg.disable_default_menu_bar { - builder = builder.with_menu(create_default_menu_bar()); + if cfg.enable_default_menu_bar { + builder = builder.with_menu(build_default_menu_bar()); } let window = builder.with_visible(false).build(event_loop).unwrap(); @@ -103,8 +103,12 @@ pub fn build( (webview.build().unwrap(), web_context) } -/// Creates a standard menu bar depending on the platform -fn create_default_menu_bar() -> MenuBar { +/// Builds a standard menu bar depending on the users platform. It may be used as a starting point +/// to further customize the menu bar and pass it to a [`WindowBuilder`](tao::window::WindowBuilder). +/// > Note: The default menu bar enables macOS shortcuts like cut/copy/paste. +/// > The menu bar differs per platform because of constraints introduced +/// > by [`MenuItem`](tao::menu::MenuItem). +pub fn build_default_menu_bar() -> MenuBar { let mut menu_bar = MenuBar::new(); // since it is uncommon on windows to have an "application menu"