diff options
Diffstat (limited to 'vcl/source/app/help.cxx')
-rw-r--r-- | vcl/source/app/help.cxx | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/vcl/source/app/help.cxx b/vcl/source/app/help.cxx index b5a7cb4cc057..b54213ed1501 100644 --- a/vcl/source/app/help.cxx +++ b/vcl/source/app/help.cxx @@ -498,21 +498,10 @@ void ImplShowHelpWindow( vcl::Window* pParent, sal_uInt16 nHelpWinStyle, QuickHe { SAL_WARN_IF( pHelpWin == pParent, "vcl", "HelpInHelp ?!" ); - if ( ( rHelpText.isEmpty() - || ( pHelpWin->GetWinStyle() != nHelpWinStyle ) - ) - && aHelpData.mbRequestingHelp - ) - { - // remove help window if no HelpText or - // other help mode. but keep it if we are scrolling, ie not requesting help - bool bWasVisible = pHelpWin->IsVisible(); - if ( bWasVisible ) - bNoDelay = true; // display it quickly if we were already in quick help mode - pHelpWin = nullptr; - ImplDestroyHelpWindow( bWasVisible ); - } - else + bool bRemoveHelp = (rHelpText.isEmpty() || (pHelpWin->GetWinStyle() != nHelpWinStyle)) + && aHelpData.mbRequestingHelp; + + if (!bRemoveHelp && pHelpWin->GetParent() == pParent) { bool const bUpdate = (pHelpWin->GetHelpText() != rHelpText) || ((pHelpWin->GetHelpArea() != rHelpArea) && aHelpData.mbRequestingHelp); @@ -530,6 +519,16 @@ void ImplShowHelpWindow( vcl::Window* pParent, sal_uInt16 nHelpWinStyle, QuickHe pHelpWin->Invalidate(); } } + else + { + // remove help window if no HelpText or + // other help mode. but keep it if we are scrolling, ie not requesting help + bool bWasVisible = pHelpWin->IsVisible(); + if ( bWasVisible ) + bNoDelay = true; // display it quickly if we were already in quick help mode + pHelpWin = nullptr; + ImplDestroyHelpWindow( bWasVisible ); + } } if (pHelpWin || rHelpText.isEmpty()) |