Compare commits

...

1 Commits

Author SHA1 Message Date
Charles Kerr
c1cdaf1d52 fix: handle actionable submenus in GenerateAcceleratorTable() 2024-01-23 10:31:10 -06:00

View File

@@ -74,21 +74,14 @@ bool StringToAccelerator(const std::string& shortcut,
void GenerateAcceleratorTable(AcceleratorTable* table, void GenerateAcceleratorTable(AcceleratorTable* table,
electron::ElectronMenuModel* model) { electron::ElectronMenuModel* model) {
size_t count = model->GetItemCount(); for (size_t i = 0, count = model->GetItemCount(); i < count; ++i) {
for (size_t i = 0; i < count; ++i) { if (auto* const submenu = model->GetSubmenuModelAt(i))
electron::ElectronMenuModel::ItemType type = model->GetTypeAt(i); GenerateAcceleratorTable(table, submenu);
if (type == electron::ElectronMenuModel::TYPE_SUBMENU) {
auto* submodel = model->GetSubmenuModelAt(i); if (ui::Accelerator accelerator;
GenerateAcceleratorTable(table, submodel); model->ShouldRegisterAcceleratorAt(i) &&
} else { model->GetAcceleratorAtWithParams(i, true, &accelerator))
ui::Accelerator accelerator; table->insert_or_assign(std::move(accelerator), MenuItem{i, model});
if (model->ShouldRegisterAcceleratorAt(i)) {
if (model->GetAcceleratorAtWithParams(i, true, &accelerator)) {
MenuItem item = {i, model};
(*table)[accelerator] = item;
}
}
}
} }
} }