Fix accel handling when removing item from submenu

wxMSW propagates accelerators to the top menu in wxMenu::UpdateAccel(),
but the reverse operation in wxMenu::DoRemove() didn't do it, resulting
in leaked leftover accelerator entries that could prevent the same
accelerator from working if an item using it was later added. Fix by
adding RemoveAccel() helper method that behaves analogously to
UpdateAccel().
This commit is contained in:
Václav Slavík
2016-12-05 17:59:03 +01:00
parent 4f0c6c9a3a
commit 60542745f6
2 changed files with 29 additions and 13 deletions

View File

@@ -76,6 +76,7 @@ public:
// called by wxMenuItem when its accels changes
void UpdateAccel(wxMenuItem *item);
void RemoveAccel(wxMenuItem *item);
// helper used by wxMenu itself (returns the index in m_accels)
int FindAccel(int id) const;