restore the old status bar text when DoGiveHelp(false) is called (should fix bug 1340887)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -419,27 +419,35 @@ void wxFrameBase::DoGiveHelp(const wxString& text, bool show)
|
|||||||
|
|
||||||
wxString help;
|
wxString help;
|
||||||
if ( show )
|
if ( show )
|
||||||
|
{
|
||||||
help = text;
|
help = text;
|
||||||
|
|
||||||
// remember the old status bar text if this is the first time we're called
|
// remember the old status bar text if this is the first time we're
|
||||||
// since the menu has been opened as we're going to overwrite it in our
|
// called since the menu has been opened as we're going to overwrite it
|
||||||
// DoGiveHelp() and we want to restore it when the menu is closed
|
// in our DoGiveHelp() and we want to restore it when the menu is
|
||||||
//
|
// closed
|
||||||
// note that it would be logical to do this in OnMenuOpen() but under MSW
|
//
|
||||||
// we get an EVT_MENU_HIGHLIGHT before EVT_MENU_OPEN, strangely enough, and
|
// note that it would be logical to do this in OnMenuOpen() but under
|
||||||
// so this doesn't work and instead we use the ugly trick with using
|
// MSW we get an EVT_MENU_HIGHLIGHT before EVT_MENU_OPEN, strangely
|
||||||
// special m_oldStatusText value as "menu opened" (but it is arguably
|
// enough, and so this doesn't work and instead we use the ugly trick
|
||||||
// better than adding yet another member variable to wxFrame on all
|
// with using special m_oldStatusText value as "menu opened" (but it is
|
||||||
// platforms)
|
// arguably better than adding yet another member variable to wxFrame
|
||||||
if ( m_oldStatusText.empty() )
|
// on all platforms)
|
||||||
{
|
|
||||||
m_oldStatusText = statbar->GetStatusText(m_statusBarPane);
|
|
||||||
if ( m_oldStatusText.empty() )
|
if ( m_oldStatusText.empty() )
|
||||||
{
|
{
|
||||||
// use special value to prevent us from doing this the next time
|
m_oldStatusText = statbar->GetStatusText(m_statusBarPane);
|
||||||
m_oldStatusText += _T('\0');
|
if ( m_oldStatusText.empty() )
|
||||||
|
{
|
||||||
|
// use special value to prevent us from doing this the next time
|
||||||
|
m_oldStatusText += _T('\0');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else // hide the status bar text
|
||||||
|
{
|
||||||
|
// i.e. restore the old one
|
||||||
|
help = m_oldStatusText;
|
||||||
|
}
|
||||||
|
|
||||||
statbar->SetStatusText(help, m_statusBarPane);
|
statbar->SetStatusText(help, m_statusBarPane);
|
||||||
#else
|
#else
|
||||||
|
Reference in New Issue
Block a user