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

Tor Lillqvist (via logerrit) logerrit at kemper.freedesktop.org
Wed Oct 28 09:00:32 UTC 2020


 vcl/source/window/paint.cxx |    2 ++
 1 file changed, 2 insertions(+)

New commits:
commit 3d58e90a061dc0c6388939708f2c3f9bf926499a
Author:     Tor Lillqvist <tml at collabora.com>
AuthorDate: Wed Oct 28 09:43:13 2020 +0200
Commit:     Tor Lillqvist <tml at collabora.com>
CommitDate: Wed Oct 28 09:59:57 2020 +0100

    Tentative fix for crash in the iOS app
    
    See https://github.com/CollaboraOnline/online/issues/403 .
    
    It seems that perhaps we can just bypass the whole ImplHandlePaintHdl
    handler function on iOS. Not sure whether this has any unintended
    side-effects. Testing will show. (Sure, if this is the right fix, it
    would make more sense to not create that idle paint thing at all. Feel
    free.)
    
    As discussed in the issue, there is a problem on Linux, too, that
    might have the same root cause, that can be reproduced in a simple
    "make run" scenario. It is possible that to fix that, the
    ImplHandlePaintHdl function should simply return right away if
    comphelper::LibreOfficeKit::isActive() is true. (And if that is done,
    the #ifndef added here can be dropped.) But I am even less convinced
    that such a change doesn't have any ill side-effects, and the symptom
    is perhaps less serious than on iOS, so I will leave that to others to
    investigate, for now.
    
    Change-Id: Ie4c1c70c65746961fa0730cae348ecc9bcdccf1d
    Signed-off-by: Tor Lillqvist <tml at collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104918

diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index 42a3139b47a9..218cdd3216ed 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -642,6 +642,7 @@ void Window::ImplCallOverlapPaint()
 
 IMPL_LINK_NOARG(Window, ImplHandlePaintHdl, Timer *, void)
 {
+#ifndef IOS
     comphelper::ProfileZone aZone("VCL idle re-paint");
 
     // save paint events until layout is done
@@ -664,6 +665,7 @@ IMPL_LINK_NOARG(Window, ImplHandlePaintHdl, Timer *, void)
             mpWindowImpl->mpFrameData->maPaintIdle.IsActive())
             mpWindowImpl->mpFrameData->maPaintIdle.Stop();
     }
+#endif
 }
 
 IMPL_LINK_NOARG(Window, ImplHandleResizeTimerHdl, Timer *, void)


More information about the Libreoffice-commits mailing list