vcl/source/control/ctrl.cxx |   15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

New commits:
commit 7ed760c4564834ec61ceb91f681dfc6daa1be4bd
Author:     Marco Cecchetti <marco.cecche...@collabora.com>
AuthorDate: Thu Mar 9 20:49:46 2023 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Thu Mar 9 22:20:46 2023 +0000

    lok: some tunneled dialog control was not invalidated correctly
    
    This patch fixes a regression for commit:
    "lok: form controls: rendering and mouse event forwarding"
    
    Change-Id: Iffb0757834a884a6c86206221660da2a24bdff17
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148564
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Andras Timar <andras.ti...@collabora.com>

diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx
index 689b02f80d79..943823e8f4f5 100644
--- a/vcl/source/control/ctrl.cxx
+++ b/vcl/source/control/ctrl.cxx
@@ -491,16 +491,17 @@ Control::GetUnzoomedControlPointFont() const
 
 void Control::LogicInvalidate(const tools::Rectangle* pRectangle)
 {
-    // avoid endless paint/invalidate loop in Impress
-    if (comphelper::LibreOfficeKit::isTiledPainting())
-        return;
-
     VclPtr<vcl::Window> pParent = GetParentWithLOKNotifier();
-    if (!pParent)
+    if (!pParent || !dynamic_cast<vcl::DocWindow*>(GetParent()))
+    {
+        // if control doesn't belong to a DocWindow, the overriden base class
+        // method has to be invoked
+        Window::LogicInvalidate(pRectangle);
         return;
+    }
 
-    // invalidate only controls that belong to a DocWindow
-    if (!dynamic_cast<vcl::DocWindow*>(GetParent()))
+    // avoid endless paint/invalidate loop in Impress
+    if (comphelper::LibreOfficeKit::isTiledPainting())
         return;
 
     tools::Rectangle aResultRectangle;

Reply via email to