http://bugs.winehq.org/show_bug.cgi?id=12540
--- Comment #6 from Igor Tarasov tarasov.igor@gmail.com 2008-05-08 10:23:44 --- Created an attachment (id=12823) --> (http://bugs.winehq.org/attachment.cgi?id=12823) WINEDEBUG=+menu on wine 0.9.61
I suppose that I've found where the problem is. I've made +menu debug run and found out that Favorites menu population happens this way:
trace:menu:InsertMenuW hMenu 0x3c0, pos -1, flags 00000400, id 80fc, str L"Ssb Zeal for Jehovah\2019s House" trace:menu:MENU_InsertItem inserting at 3 by pos 1024 trace:menu:do_debug_print_menuitem MENU_SetItemData from: { ID=0x0 } trace:menu:MENU_SetItemData flags=400 str=0xa73110 trace:menu:do_debug_print_menuitem MENU_SetItemData to : { ID=0x80fc, Text=L"Ssb Zeal for Jehovah\2019s House" } trace:menu:InsertMenuW hMenu 0x3c0, pos -1, flags 00000400, id 80fc, str L"Rbi8 Ephesians" trace:menu:MENU_InsertItem inserting at 4 by pos 1024 trace:menu:do_debug_print_menuitem MENU_SetItemData from: { ID=0x0 } trace:menu:MENU_SetItemData flags=400 str=0xa726e8
And so on. Notice the problem: all itmes have the same ID (0x80fc). So, when event happens it just fetches the very first item.
I suppose that user32.dll should somewhow avoid situation when new items being created with identical ID.