summaryrefslogtreecommitdiff
path: root/sc/source/ui/app/inputwin.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-11-01 12:59:01 +0000
committerCaolán McNamara <caolanm@redhat.com>2021-11-01 17:11:50 +0100
commit32ecb028dc7c803750eabaa27ffd1257e3f53eb2 (patch)
treef6c3c4d5fb7126c414341126e14db3b26adc06f2 /sc/source/ui/app/inputwin.cxx
parent2bd6876f0f4596eb4ffad1109ca0c2896f9bda84 (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/+/124548 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc/source/ui/app/inputwin.cxx')
-rw-r--r--sc/source/ui/app/inputwin.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 32412c39b1be..b601fc4d5c34 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -1599,6 +1599,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();
@@ -1874,6 +1875,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)
@@ -1891,6 +1899,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();