Don't reuse tooltip window in different context
This causes interference to other views due to usage
of global references in Online.
Change-Id: Ib9346881d4e48ac1ce3456d386806582ade82255
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103994
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105593
Tested-by: Jenkins
diff --git a/vcl/source/app/help.cxx b/vcl/source/app/help.cxx
index 7f16b6a..4785b47 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);
@@ -525,6 +514,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())