diff options
author | Caolán McNamara <caolan.mcnamara@collabora.com> | 2023-12-19 15:37:08 +0000 |
---|---|---|
committer | Caolán McNamara <caolan.mcnamara@collabora.com> | 2023-12-19 20:31:15 +0100 |
commit | 323ebf99dad30e334a7806491d8597b9a23d614a (patch) | |
tree | 1eda245f5d43a30148802818fccc93bece6caa61 /sc/source | |
parent | 958a055be8d58137e1a32c5cd18f67d1aab3012d (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')
-rw-r--r-- | sc/source/ui/inc/gridwin.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/view/gridwin.cxx | 6 |
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; |