summaryrefslogtreecommitdiffstats
path: root/winit/src/conversion.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-07-13 21:11:13 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-07-13 21:11:13 +0200
commit4abaee8b2354a666a75e4eb5ec9cc9a744936813 (patch)
treefb722ab139812163aa55ed925e176b61da6f5c58 /winit/src/conversion.rs
parent6221adf2b1b1e8150931d4175e1e36870d45f6e5 (diff)
downloadiced-4abaee8b2354a666a75e4eb5ec9cc9a744936813.tar.gz
iced-4abaee8b2354a666a75e4eb5ec9cc9a744936813.tar.bz2
iced-4abaee8b2354a666a75e4eb5ec9cc9a744936813.zip
Use `Menu::default` for root level menu in `conversion::menu`
Diffstat (limited to '')
-rw-r--r--winit/src/conversion.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs
index 51db615b..75419006 100644
--- a/winit/src/conversion.rs
+++ b/winit/src/conversion.rs
@@ -179,11 +179,11 @@ fn hotkey(hotkey: keyboard::Hotkey) -> winit::window::Hotkey {
/// [`iced_native`]: https://github.com/hecrj/iced/tree/master/native
pub fn menu<Message>(menu: &Menu<Message>) -> winit::window::Menu {
fn menu_i<Message>(
+ converted: &mut winit::window::Menu,
starting_id: usize,
menu: &Menu<Message>,
- ) -> (winit::window::Menu, usize) {
+ ) -> usize {
let mut id = starting_id;
- let mut converted = winit::window::Menu::new();
for item in menu.iter() {
match item {
@@ -195,9 +195,11 @@ pub fn menu<Message>(menu: &Menu<Message>) -> winit::window::Menu {
id += 1;
}
menu::Entry::Dropdown { content, submenu } => {
- let (submenu, n_children) = menu_i(id, submenu);
+ let mut converted_submenu = winit::window::Menu::new();
+ let n_children =
+ menu_i(&mut converted_submenu, id, submenu);
- converted.add_dropdown(content, submenu);
+ converted.add_dropdown(content, converted_submenu);
id += n_children;
}
@@ -207,10 +209,11 @@ pub fn menu<Message>(menu: &Menu<Message>) -> winit::window::Menu {
}
}
- (converted, id - starting_id)
+ id - starting_id
}
- let (converted, _) = menu_i(0, menu);
+ let mut converted = winit::window::Menu::default();
+ let _ = menu_i(&mut converted, 0, menu);
converted
}