Fix sending of wxEVT_UPDATE_UI events when wxUSE_STATUSBAR==0
wxFrameBase code unintentionally excluded the function generating wxUpdateUIEvents for the menus from compilation when wxUSE_STATUSBAR was turned off. Move OnMenuOpen() out of #if wxUSE_STATUSBAR section to ensure that it's compiled whenever wxUSE_MENUS==1. Closes #17553.
This commit is contained in:
@@ -152,8 +152,8 @@ public:
|
|||||||
|
|
||||||
// event handlers
|
// event handlers
|
||||||
#if wxUSE_MENUS
|
#if wxUSE_MENUS
|
||||||
#if wxUSE_STATUSBAR
|
|
||||||
void OnMenuOpen(wxMenuEvent& event);
|
void OnMenuOpen(wxMenuEvent& event);
|
||||||
|
#if wxUSE_STATUSBAR
|
||||||
void OnMenuClose(wxMenuEvent& event);
|
void OnMenuClose(wxMenuEvent& event);
|
||||||
void OnMenuHighlight(wxMenuEvent& event);
|
void OnMenuHighlight(wxMenuEvent& event);
|
||||||
#endif // wxUSE_STATUSBAR
|
#endif // wxUSE_STATUSBAR
|
||||||
|
@@ -42,14 +42,14 @@ extern WXDLLEXPORT_DATA(const char) wxStatusLineNameStr[] = "status_line";
|
|||||||
|
|
||||||
#if wxUSE_MENUS
|
#if wxUSE_MENUS
|
||||||
|
|
||||||
#if wxUSE_STATUSBAR
|
|
||||||
wxBEGIN_EVENT_TABLE(wxFrameBase, wxTopLevelWindow)
|
wxBEGIN_EVENT_TABLE(wxFrameBase, wxTopLevelWindow)
|
||||||
EVT_MENU_OPEN(wxFrameBase::OnMenuOpen)
|
EVT_MENU_OPEN(wxFrameBase::OnMenuOpen)
|
||||||
|
#if wxUSE_STATUSBAR
|
||||||
EVT_MENU_CLOSE(wxFrameBase::OnMenuClose)
|
EVT_MENU_CLOSE(wxFrameBase::OnMenuClose)
|
||||||
|
|
||||||
EVT_MENU_HIGHLIGHT_ALL(wxFrameBase::OnMenuHighlight)
|
EVT_MENU_HIGHLIGHT_ALL(wxFrameBase::OnMenuHighlight)
|
||||||
wxEND_EVENT_TABLE()
|
|
||||||
#endif // wxUSE_STATUSBAR
|
#endif // wxUSE_STATUSBAR
|
||||||
|
wxEND_EVENT_TABLE()
|
||||||
|
|
||||||
/* static */
|
/* static */
|
||||||
bool wxFrameBase::ShouldUpdateMenuFromIdle()
|
bool wxFrameBase::ShouldUpdateMenuFromIdle()
|
||||||
@@ -324,16 +324,7 @@ void wxFrameBase::UpdateWindowUI(long flags)
|
|||||||
// event handlers for status bar updates from menus
|
// event handlers for status bar updates from menus
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#if wxUSE_MENUS && wxUSE_STATUSBAR
|
#if wxUSE_MENUS
|
||||||
|
|
||||||
void wxFrameBase::OnMenuHighlight(wxMenuEvent& event)
|
|
||||||
{
|
|
||||||
event.Skip();
|
|
||||||
|
|
||||||
#if wxUSE_STATUSBAR
|
|
||||||
(void)ShowMenuHelp(event.GetMenuId());
|
|
||||||
#endif // wxUSE_STATUSBAR
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxFrameBase::OnMenuOpen(wxMenuEvent& event)
|
void wxFrameBase::OnMenuOpen(wxMenuEvent& event)
|
||||||
{
|
{
|
||||||
@@ -346,6 +337,15 @@ void wxFrameBase::OnMenuOpen(wxMenuEvent& event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_STATUSBAR
|
||||||
|
|
||||||
|
void wxFrameBase::OnMenuHighlight(wxMenuEvent& event)
|
||||||
|
{
|
||||||
|
event.Skip();
|
||||||
|
|
||||||
|
(void)ShowMenuHelp(event.GetMenuId());
|
||||||
|
}
|
||||||
|
|
||||||
void wxFrameBase::OnMenuClose(wxMenuEvent& event)
|
void wxFrameBase::OnMenuClose(wxMenuEvent& event)
|
||||||
{
|
{
|
||||||
event.Skip();
|
event.Skip();
|
||||||
@@ -353,7 +353,9 @@ void wxFrameBase::OnMenuClose(wxMenuEvent& event)
|
|||||||
DoGiveHelp(wxEmptyString, false);
|
DoGiveHelp(wxEmptyString, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // wxUSE_MENUS && wxUSE_STATUSBAR
|
#endif // wxUSE_STATUSBAR
|
||||||
|
|
||||||
|
#endif // wxUSE_MENUS
|
||||||
|
|
||||||
// Implement internal behaviour (menu updating on some platforms)
|
// Implement internal behaviour (menu updating on some platforms)
|
||||||
void wxFrameBase::OnInternalIdle()
|
void wxFrameBase::OnInternalIdle()
|
||||||
|
Reference in New Issue
Block a user