Skip to content

Commit d3383a7

Browse files
committed
Fix menu item insertion on linux (where it crashed). Fixes #18.
1 parent 0c88705 commit d3383a7

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

src-tauri/src/main.rs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,21 @@ fn open_file(file_path: &PathBuf, window: &Window) -> Result<()> {
3333
Ok(())
3434
}
3535

36+
fn find_menu_idx(menu: &Menu, name: &str) -> Option<usize> {
37+
for (idx, item) in menu.items.iter().enumerate() {
38+
match item {
39+
MenuEntry::Submenu(submenu) => {
40+
if submenu.title == name {
41+
return Some(idx)
42+
}
43+
},
44+
_ => continue,
45+
}
46+
}
47+
48+
None
49+
}
50+
3651
fn main() {
3752
let mut menu = Menu::os_default("Git Diff Stepper");
3853
for item in menu.items.iter_mut() {
@@ -48,7 +63,9 @@ fn main() {
4863
_ => {}
4964
}
5065
}
51-
menu.items.insert(3,
66+
67+
let transition_item_idx = find_menu_idx(&menu, "Edit").or_else(|| find_menu_idx(&menu, "File")).unwrap_or(0) + 1;
68+
menu.items.insert(transition_item_idx,
5269
MenuEntry::Submenu(Submenu::new(
5370
"Transition".to_string(),
5471
Menu::new()

0 commit comments

Comments
 (0)