From 5aab763c09c663ab5e5b92e533ca025e811f1bcf Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 21 Feb 2003 20:27:56 +0000 Subject: [PATCH] Only send two EVT_BUTTON events when double clicking a button, not three git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/button.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/msw/button.cpp b/src/msw/button.cpp index 6f5cb6782d..81c588c5be 100644 --- a/src/msw/button.cpp +++ b/src/msw/button.cpp @@ -352,9 +352,18 @@ bool wxButton::MSWCommand(WXUINT param, WXWORD WXUNUSED(id)) bool processed = FALSE; switch ( param ) { + // NOTE: Apparently older versions (NT 4?) of the common controls send + // BN_DOUBLECLICKED but not a second BN_CLICKED for owner-drawn + // buttons, so in order to send two EVET_BUTTON events we should + // catch both types. Currently (Feb 2003) up-to-date versions of + // win98, win2k and winXP all send two BN_CLICKED messages for + // all button types, so we don't catch BN_DOUBLECLICKED anymore + // in order to not get 3 EVT_BUTTON events. If this is a problem + // then we need to figure out which version of the comctl32 changed + // this behaviour and test for it. + case 1: // message came from an accelerator case BN_CLICKED: // normal buttons send this - case BN_DOUBLECLICKED: // owner-drawn ones also send this processed = SendClickEvent(); break; }