-
Notifications
You must be signed in to change notification settings - Fork 45
Open
Labels
bugSomething isn't workingSomething isn't working
Description
haccel() seems to behave differently depending on the order in which items are added. This can be illustrated in the following code. The only difference between the two code paths is when items are added to the root menu, and in the second case haccel() returns zero
use muda::Menu;
use muda::MenuItem;
use muda::Submenu;
use muda::accelerator::Accelerator;
use muda::accelerator::Code;
use muda::accelerator::Modifiers;
fn main() {
{
let menu = Menu::new();
let file_menu = Submenu::new("&File", true);
menu.append_items(&[&file_menu]).unwrap(); // Add "File" menu before adding the items
let accelerator = Some(Accelerator::new(Some(Modifiers::ALT), Code::KeyA));
let alpha_menu = MenuItem::new("Alpha", true, accelerator);
let accelerator = Some(Accelerator::new(Some(Modifiers::ALT), Code::KeyB));
let bravo_menu = MenuItem::new("Bravo", true, accelerator);
let accelerator = Some(Accelerator::new(Some(Modifiers::ALT), Code::KeyC));
let charlie_menu = MenuItem::new("Charlie", true, accelerator);
file_menu
.append_items(&[&alpha_menu, &bravo_menu, &charlie_menu])
.unwrap();
println!("haccel={:?}", menu.haccel()); // prints a non zero value
}
{
let menu = Menu::new();
let file_menu = Submenu::new("&File", true);
let accelerator = Some(Accelerator::new(Some(Modifiers::ALT), Code::KeyA));
let alpha_menu = MenuItem::new("Alpha", true, accelerator);
let accelerator = Some(Accelerator::new(Some(Modifiers::ALT), Code::KeyB));
let bravo_menu = MenuItem::new("Bravo", true, accelerator);
let accelerator = Some(Accelerator::new(Some(Modifiers::ALT), Code::KeyC));
let charlie_menu = MenuItem::new("Charlie", true, accelerator);
file_menu
.append_items(&[&alpha_menu, &bravo_menu, &charlie_menu])
.unwrap();
menu.append_items(&[&file_menu]).unwrap(); // Add "File" menu after adding the items
println!("haccel={:?}", menu.haccel()); // prints a zero value (bug??)
}
}Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working