Properly refresh item after menu dismissing

This commit is contained in:
Kvaz1r
2021-06-28 10:16:57 +03:00
parent 2209ec29f7
commit ef90e73e5a

View File

@@ -2139,10 +2139,7 @@ void wxMenuBar::OnLeftDown(wxMouseEvent& event)
{ {
if ( HasCapture() ) if ( HasCapture() )
{ {
if ( IsShowingMenu() ) OnDismiss();
{
DismissMenu();
}
event.Skip(); event.Skip();
} }
else // we didn't have mouse capture, capture it now else // we didn't have mouse capture, capture it now
@@ -2154,6 +2151,8 @@ void wxMenuBar::OnLeftDown(wxMouseEvent& event)
{ {
DismissMenu(); // event outside menubar - dismiss DismissMenu(); // event outside menubar - dismiss
ReleaseMouseCapture(); // we could get capture back from popup window so release it ReleaseMouseCapture(); // we could get capture back from popup window so release it
RefreshItem((size_t)m_current);
m_current = -1;
} }
} }
else if ( item == m_current && IsShowingMenu() ) else if ( item == m_current && IsShowingMenu() )
@@ -2161,6 +2160,8 @@ void wxMenuBar::OnLeftDown(wxMouseEvent& event)
// double-click // double-click
DismissMenu(); DismissMenu();
ReleaseMouseCapture(); ReleaseMouseCapture();
RefreshItem((size_t)m_current);
m_current = -1;
} }
else // on item else // on item
{ {
@@ -2184,6 +2185,8 @@ void wxMenuBar::OnLeftUp(wxMouseEvent& event)
{ {
DismissMenu(); DismissMenu();
ReleaseMouseCapture(); ReleaseMouseCapture();
RefreshItem((size_t)m_current);
m_current = -1;
} }
} }