summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-11-01 12:59:01 +0000
committerXisco Fauli <xiscofauli@libreoffice.org>2021-11-02 11:39:53 +0100
commitb3be435a61d9367dcaef8347f77b92c9ea0a94d9 (patch)
tree31d499ba6958826e4f36089078b3bec605ea3639
parent4df823c52b02b7cb81e97c9b999a7e7a2296a602 (diff)
multiline calc inputbar not redrawing and adjusting scrollbar on delete of text
backspace is ok, but with delete when a line is deleted the scrolled up lines are visually duplicated at the bottom Change-Id: I22e91aa3c3213876d36c593cae7989e8913bffc3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124471 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r--sc/source/ui/app/inputwin.cxx9
-rw-r--r--sc/source/ui/inc/inputwin.hxx1
2 files changed, 10 insertions, 0 deletions
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 862d729edffd..5a9a59659b12 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -1556,6 +1556,7 @@ void ScTextWnd::InitEditEngine()
lcl_ModifyRTLVisArea( m_xEditView.get() );
m_xEditEngine->SetModifyHdl(LINK(this, ScTextWnd, ModifyHdl));
+ m_xEditEngine->SetStatusEventHdl(LINK(this, ScTextWnd, EditStatusHdl));
if (!maAccTextDatas.empty())
maAccTextDatas.back()->StartEdit();
@@ -1831,6 +1832,13 @@ IMPL_LINK_NOARG(ScTextWnd, ModifyHdl, LinkParamNone*, void)
}
}
+IMPL_LINK_NOARG(ScTextWnd, EditStatusHdl, EditStatus&, void)
+{
+ SetScrollBarRange();
+ DoScroll();
+ Invalidate();
+}
+
void ScTextWnd::StopEditEngine( bool bAll )
{
if (!m_xEditEngine)
@@ -1848,6 +1856,7 @@ void ScTextWnd::StopEditEngine( bool bAll )
aString = m_xEditEngine->GetText();
bIsInsertMode = m_xEditView->IsInsertMode();
bool bSelection = m_xEditView->HasSelection();
+ m_xEditEngine->SetStatusEventHdl(Link<EditStatus&, void>());
m_xEditEngine->SetModifyHdl(Link<LinkParamNone*,void>());
m_xEditView.reset();
m_xEditEngine.reset();
diff --git a/sc/source/ui/inc/inputwin.hxx b/sc/source/ui/inc/inputwin.hxx
index 86cc6594910c..6a746cf9fe83 100644
--- a/sc/source/ui/inc/inputwin.hxx
+++ b/sc/source/ui/inc/inputwin.hxx
@@ -111,6 +111,7 @@ public:
void DoScroll();
DECL_LINK(ModifyHdl, LinkParamNone*, void);
+ DECL_LINK(EditStatusHdl, EditStatus&, void);
protected:
virtual void Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect ) override;