summaryrefslogtreecommitdiff
path: root/sc/source/ui
diff options
context:
space:
mode:
authorCaolán McNamara <caolan.mcnamara@collabora.com>2023-12-19 15:37:08 +0000
committerCaolán McNamara <caolan.mcnamara@collabora.com>2023-12-19 20:31:15 +0100
commit323ebf99dad30e334a7806491d8597b9a23d614a (patch)
tree1eda245f5d43a30148802818fccc93bece6caa61 /sc/source/ui
parent958a055be8d58137e1a32c5cd18f67d1aab3012d (diff)
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/+/161012 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Diffstat (limited to 'sc/source/ui')
-rw-r--r--sc/source/ui/inc/gridwin.hxx2
-rw-r--r--sc/source/ui/view/gridwin.cxx6
2 files changed, 8 insertions, 0 deletions
diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx
index 37c38fe069a0..a7c95e9fbb11 100644
--- a/sc/source/ui/inc/gridwin.hxx
+++ b/sc/source/ui/inc/gridwin.hxx
@@ -321,6 +321,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 3f4f6b219c67..aa90b2183415 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -5090,6 +5090,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)
@@ -5109,6 +5110,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;