Fix appearance of custom drawn wxToggleButton in wxMSW.

Ensure that the owner-drawn toggle buttons are drawn in the pressed state when
they are pressed, even if they are also selected or under mouse.

Closes #11665.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76794 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2014-06-30 01:00:27 +00:00
parent ffea8a9a6a
commit 900099d644

View File

@@ -832,7 +832,12 @@ wxAnyButton::State GetButtonState(wxAnyButton *btn, UINT state)
if ( state & ODS_DISABLED )
return wxAnyButton::State_Disabled;
if ( state & ODS_SELECTED )
// We need to check for the pressed state of the button itself before the
// other checks because even if it is selected or current, it it still
// pressed first and foremost.
const wxAnyButton::State btnState = btn->GetNormalState();
if ( btnState == wxAnyButton::State_Pressed || state & ODS_SELECTED )
return wxAnyButton::State_Pressed;
if ( btn->HasCapture() || btn->IsMouseInWindow() )
@@ -841,7 +846,7 @@ wxAnyButton::State GetButtonState(wxAnyButton *btn, UINT state)
if ( state & ODS_FOCUS )
return wxAnyButton::State_Focused;
return btn->GetNormalState();
return btnState;
}
void DrawButtonText(HDC hdc,