diff --git a/controls/button.c b/controls/button.c index 44b1b00130238e5e05c47d6e163a03e8aff60a78..a9747964df01942640e389f4747ea63e12ea71fa 100644 --- a/controls/button.c +++ b/controls/button.c @@ -136,11 +136,20 @@ static inline LRESULT WINAPI ButtonWndProc_locked(WND* wndPtr, UINT uMsg, } break; - case WM_LBUTTONDOWN: case WM_LBUTTONDBLCLK: - SendMessageA( hWnd, BM_SETSTATE, TRUE, 0 ); + if(wndPtr->dwStyle & BS_NOTIFY || + style==BS_RADIOBUTTON || + style==BS_USERBUTTON || + style==BS_OWNERDRAW){ + SendMessageA( GetParent(hWnd), WM_COMMAND, + MAKEWPARAM( wndPtr->wIDmenu, BN_DOUBLECLICKED ), hWnd); + break; + } + /* fall through */ + case WM_LBUTTONDOWN: SetCapture( hWnd ); SetFocus( hWnd ); + SendMessageA( hWnd, BM_SETSTATE, TRUE, 0 ); break; case WM_LBUTTONUP: