sc/source/ui/app/inputwin.cxx |    9 +++++++++
 sc/source/ui/inc/inputwin.hxx |    1 +
 2 files changed, 10 insertions(+)

New commits:
commit 32ecb028dc7c803750eabaa27ffd1257e3f53eb2
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon Nov 1 12:59:01 2021 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon Nov 1 17:11:50 2021 +0100

    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 <caol...@redhat.com>

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();
diff --git a/sc/source/ui/inc/inputwin.hxx b/sc/source/ui/inc/inputwin.hxx
index aa90dc7c4f3e..0e056fa22c29 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;

Reply via email to