diff options
author | fvogel <fvogelnew1@free.fr> | 2016-03-27 09:58:56 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2016-03-27 09:58:56 (GMT) |
commit | 4aeebad8692f6dbbaf89a6ec7e26a3df15f2c736 (patch) | |
tree | 0e5acf120d43a07e1d5a9718964212d7cc257500 /win | |
parent | 93ba9d627f178077f62164ce90441d1d32df218f (diff) | |
parent | 094a8766b4ff2390a2d24104e4fe7e1ab7efcd2b (diff) | |
download | tk-4aeebad8692f6dbbaf89a6ec7e26a3df15f2c736.zip tk-4aeebad8692f6dbbaf89a6ec7e26a3df15f2c736.tar.gz tk-4aeebad8692f6dbbaf89a6ec7e26a3df15f2c736.tar.bz2 |
Fixed bug [1192095] - Toplevel menus return incorrect active index
Diffstat (limited to 'win')
-rw-r--r-- | win/tkWinMenu.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/win/tkWinMenu.c b/win/tkWinMenu.c index 8eede75..8e14669 100644 --- a/win/tkWinMenu.c +++ b/win/tkWinMenu.c @@ -1288,7 +1288,17 @@ TkWinHandleMenuEvent( if (menuPtr != NULL) { long entryIndex = LOWORD(*pwParam); - mePtr = NULL; + if ((menuPtr->menuType == MENUBAR) && menuPtr->tearoff) { + /* + * Windows passes the entry index starting at 0 for + * the first menu entry. However this entry #0 is the + * tearoff entry for Tk (the menu has -tearoff 1), + * which is ignored for MENUBAR menues on Windows. + */ + + entryIndex++; + } + mePtr = NULL; if (flags != 0xFFFF) { if ((flags&MF_POPUP) && (entryIndex<menuPtr->numEntries)) { mePtr = menuPtr->entries[entryIndex]; |