sc/source/ui/inc/gridwin.hxx  |    2 ++
 sc/source/ui/view/gridwin.cxx |    6 ++++++
 2 files changed, 8 insertions(+)

New commits:
commit d48805607da304df0e59a8f7d3f45bed4cf9cc3b
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Tue Dec 19 15:37:08 2023 +0000
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Wed Dec 20 11:36:00 2023 +0100

    split ScGridWindow::UpdateFormulas into two parts
    
    a) figures out what might need to redraw
    b) triggers redraws on that
    
    Change-Id: Ib6e1d8d0785cc629fd2cfb0cfdc4ad43897fd4f9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160994
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>

diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx
index 048d2d3d9359..8d5dcc08696f 100644
--- a/sc/source/ui/inc/gridwin.hxx
+++ b/sc/source/ui/inc/gridwin.hxx
@@ -320,6 +320,8 @@ class SAL_DLLPUBLIC_RTTI ScGridWindow : public 
vcl::DocWindow, public DropTarget
     void            SetupInitialPageBreaks(const ScDocument& rDoc, SCTAB nTab);
     DECL_DLLPRIVATE_LINK(InitiatePageBreaksTimer, Timer*, void);
 
+    void            UpdateFormulaRange(SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW 
nY2);
+
 protected:
     virtual void    PrePaint(vcl::RenderContext& rRenderContext) override;
     virtual void    Paint(vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect) override;
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 93e9033d97d6..4594e458815e 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -5021,6 +5021,7 @@ void ScGridWindow::UpdateFormulas(SCCOL nX1, SCROW nY1, 
SCCOL nX2, SCROW nY2)
     if ( comphelper::LibreOfficeKit::isActive() )
     {
         ScTabViewShell* pViewShell = mrViewData.GetViewShell();
+
         if (nX1 < 0)
             nX1 = pViewShell->GetLOKStartHeaderCol() + 1;
         if (nY1 < 0)
@@ -5040,6 +5041,11 @@ void ScGridWindow::UpdateFormulas(SCCOL nX1, SCROW nY1, 
SCCOL nX2, SCROW nY2)
         nY2 = nY1 + mrViewData.VisibleCellsY( eVWhich );
     }
 
+    UpdateFormulaRange(nX1, nY1, nX2, nY2);
+}
+
+void ScGridWindow::UpdateFormulaRange(SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW 
nY2)
+{
     if (nX2 < nX1) nX2 = nX1;
     if (nY2 < nY1) nY2 = nY1;
 

Reply via email to