From bf511d579fb186e8f5ec7a0dc933a5c0df10902d Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 4 Jul 2007 21:20:32 +0000 Subject: [PATCH] fixed bug which resulted in generation of spurious EVT_RADIOBOX events when a radiobox button was focused but not selected (patch 1739140) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/radiobox.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/msw/radiobox.cpp b/src/msw/radiobox.cpp index 408c5d8b65..f73e2ba3c2 100644 --- a/src/msw/radiobox.cpp +++ b/src/msw/radiobox.cpp @@ -270,9 +270,14 @@ bool wxRadioBox::MSWCommand(WXUINT cmd, WXWORD id) const unsigned int count = GetCount(); for ( unsigned int i = 0; i < count; i++ ) { - if ( id == wxGetWindowId((*m_radioButtons)[i]) ) + const HWND hwndBtn = (*m_radioButtons)[i]; + if ( id == wxGetWindowId(hwndBtn) ) { - selectedButton = i; + // we can get BN_CLICKED for a button which just became focused + // but it may not be checked, in which case we shouldn't + // generate a radiobox selection changed event for it + if ( ::SendMessage(hwndBtn, BM_GETCHECK, 0, 0) == BST_CHECKED ) + selectedButton = i; break; }