From 9d704706cbe67238f806f507afcf2d85640312aa Mon Sep 17 00:00:00 2001 From: Paul Kulchenko Date: Sat, 14 Sep 2019 20:18:39 +0200 Subject: [PATCH] Respect AUI toolbar buttons sticky state in native MSW theme Indicate that the items are sticky by always drawing them in a hover-like state, as otherwise stickiness wasn't visible at all. Closes #18496. --- samples/aui/auidemo.cpp | 1 + src/aui/barartmsw.cpp | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/samples/aui/auidemo.cpp b/samples/aui/auidemo.cpp index 348693cf14..816a2c5d4e 100644 --- a/samples/aui/auidemo.cpp +++ b/samples/aui/auidemo.cpp @@ -846,6 +846,7 @@ MyFrame::MyFrame(wxWindow* parent, wxBitmap tb4_bmp1 = wxArtProvider::GetBitmap(wxART_NORMAL_FILE, wxART_OTHER, FromDIP(wxSize(16,16))); tb4->AddTool(ID_DropDownToolbarItem, "Item 1", tb4_bmp1); tb4->AddTool(ID_SampleItem+23, "Item 2", tb4_bmp1); + tb4->SetToolSticky(ID_SampleItem+23, true); tb4->AddTool(ID_SampleItem+24, "Item 3", tb4_bmp1); tb4->AddTool(ID_SampleItem+25, "Item 4", tb4_bmp1); tb4->AddSeparator(); diff --git a/src/aui/barartmsw.cpp b/src/aui/barartmsw.cpp index ee1b4b10e4..7958f810db 100644 --- a/src/aui/barartmsw.cpp +++ b/src/aui/barartmsw.cpp @@ -134,7 +134,7 @@ void wxAuiMSWToolBarArt::DrawButton( btnState = TS_HOTCHECKED; else if ( item.GetState() & wxAUI_BUTTON_STATE_CHECKED ) btnState = TS_CHECKED; - else if ( item.GetState() & wxAUI_BUTTON_STATE_HOVER ) + else if ( (item.GetState() & wxAUI_BUTTON_STATE_HOVER) || item.IsSticky() ) btnState = TS_HOT; else btnState = TS_NORMAL; @@ -259,7 +259,7 @@ void wxAuiMSWToolBarArt::DrawDropDownButton( btnState = TS_DISABLED; else if ( item.GetState() & wxAUI_BUTTON_STATE_PRESSED ) btnState = TS_PRESSED; - else if ( item.GetState() & wxAUI_BUTTON_STATE_HOVER ) + else if ( (item.GetState() & wxAUI_BUTTON_STATE_HOVER) || item.IsSticky() ) btnState = TS_HOT; else btnState = TS_NORMAL;