[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - vcl/source

Szymon KÅ‚os (via logerrit) logerrit at kemper.freedesktop.org
Tue Oct 6 11:33:08 UTC 2020


 vcl/source/app/help.cxx |   29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

New commits:
commit e1486b3d6658596e9dd27e712f5161553df08b1d
Author:     Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Mon Oct 5 16:38:15 2020 +0200
Commit:     Szymon Kłos <szymon.klos at collabora.com>
CommitDate: Tue Oct 6 13:32:33 2020 +0200

    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 at gmail.com>
    Reviewed-by: Szymon Kłos <szymon.klos at collabora.com>

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())


More information about the Libreoffice-commits mailing list