From c0459b5cfa05f7c042fb859f5b77f35816d324b2 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 22 Mar 2007 03:04:09 +0000 Subject: [PATCH] correct the checked flag in the event generated by checkable menu items (fixes bug introduced in 1.143.2.1, patch 1685634) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@45014 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 2 ++ src/msw/menu.cpp | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index c5028ee352..c51622ee1f 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -95,6 +95,8 @@ wxMSW: - Corrected wxStaticBox label appearance when its foreground colour was set: it didn't respect font size nor background colour then (Juan Antonio Ortega) - Don't lose combobox text when it's opened and closed (Kolya Kosenko) +- Corrected GetChecked() for events from checkable menu items (smanders) + 2.8.3 ----- diff --git a/src/msw/menu.cpp b/src/msw/menu.cpp index 9a235b6071..46ec935638 100644 --- a/src/msw/menu.cpp +++ b/src/msw/menu.cpp @@ -798,10 +798,10 @@ bool wxMenu::MSWCommand(WXUINT WXUNUSED(param), WXWORD id) if ( item && item->IsCheckable() ) item->Toggle(); - // get the checked status of the menu item: note that menuState is the - // old state of the menu, so the test for MF_CHECKED must be inverted + // get the status of the menu item: note that it has been just changed + // by Toggle() above so here we already get the new state of the item UINT menuState = ::GetMenuState(GetHmenu(), id, MF_BYCOMMAND); - SendEvent(id, !(menuState & MF_CHECKED)); + SendEvent(id, menuState & MF_CHECKED); } return true;