Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com ---
This works for all buttons so it has been separated from the patch that implements split buttons.
dlls/comctl32/button.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/dlls/comctl32/button.c b/dlls/comctl32/button.c index 0bd416d..38c7d4c 100644 --- a/dlls/comctl32/button.c +++ b/dlls/comctl32/button.c @@ -875,6 +875,17 @@ static LRESULT CALLBACK BUTTON_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, L } break;
+ case BCM_SETDROPDOWNSTATE: + new_state = wParam ? BST_DROPDOWNPUSHED : 0; + + if ((infoPtr->state ^ new_state) & BST_DROPDOWNPUSHED) + { + infoPtr->state &= ~BST_DROPDOWNPUSHED; + infoPtr->state |= new_state; + InvalidateRect(hWnd, NULL, FALSE); + } + break; + case BCM_SETTEXTMARGIN: { RECT *text_margin = (RECT *)lParam;