Here's a snippet of the keybinder logging under debug and kbLOGGING, does it give any information or is it unrelated to anything. Tim S
01:59:08: wxMenuCmd::Update - Removing shortcuts [Continue Ctrl-F7] for [Continue]
01:59:08: wxMenuCmd::Update - Setting shortcuts for [Continue Ctrl-F7]
01:59:08: wxMenuCmd::Update - Removing shortcuts [Toggle breakpoint F5] for [Toggle breakpoint]
01:59:08: wxMenuCmd::Update - Setting shortcuts for [Toggle breakpoint F5]
01:59:08: CreateNew()UnMatched id:1413 name:Edit startup script
01:59:08: Debug: keybinder.cpp(602): assert "ret" failed.
01:59:18: wxMenuCmd::Update - Removing shortcuts [Goto file... Alt-G] for [Goto file...]
01:59:18: wxMenuCmd::Update - Setting shortcuts for [Goto file... Alt-G]
01:59:18: wxMenuCmd::Update - Removing shortcuts [Activate next project Alt-F6] for [Activate next project]
01:59:18: wxMenuCmd::Update - Setting shortcuts for [Activate next project Alt-F6]
01:59:18: wxMenuCmd::Update - Removing shortcuts [Activate prior project Alt-F5] for [Activate prior project]
These messages are correct. keybinder can have multiple profiles, so if the user switches to a secondary profile, the shortcuts must be removed and replaced with those of the secondary profile; else the old shortcuts will "leak" into the new chosen profile.
So the idea here is that when any profile is applied, remove the current shortcuts and replace them with those from the selected profile (previously recorded on disk in cbKeyBinder10.ini) . This applies to empty menuItems also. So if the user deleted a shortcut and saved it to disk, it gets replace with a "blank" shortcut when the profile is applied.
This of course, clobbers the icon in 2.6.2, but not 2.6.3 .
Re: The original problem with missing icons. Noone could change the text/label/shortcut of a menuitem without clobbering the icon. So the whole damn menuitem had to be rebuilt.
This also mean that anyone storing a pointer to the rebuilt menuitem is in deep doo. Because their pointer is now invalid.
You probably saw that in the code. I don't mean to insult your intelligence.