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;