sw/inc/crsrsh.hxx | 2 - sw/qa/extras/uiwriter/uiwriter.cxx | 49 +++++++++++++++++++++++++++++++++++++ sw/source/core/crsr/crsrsh.cxx | 10 ++----- 3 files changed, 53 insertions(+), 8 deletions(-)
New commits: commit 28757ce2246f2598c8ace45f87225eaabbdaf8f0 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Wed Mar 3 17:10:40 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Thu Mar 18 09:54:20 2021 +0100 tdf#93441: Revert "Fix fdo#38884 Improve Up/Down movement in writer" This reverts commit d58bea0ffa2a2fe79103ab7aa743aea63e27a0fd it's really unclear to me what the original commit tries to fix. https://bugs.documentfoundation.org/show_bug.cgi?id=38884#c6 gives some information but the behaviour described there is the same with or without the commit applied. The discussion in https://gerrit.libreoffice.org/c/core/+/11500 doesn't give much information either. Change-Id: Iadd8cb6e869fd26654bb0301fbc30ea4f2d39fdf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111932 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112535 Reviewed-by: Jim Raykowski <rayk...@gmail.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx index 572afdfd4f51..daf77e04c760 100644 --- a/sw/inc/crsrsh.hxx +++ b/sw/inc/crsrsh.hxx @@ -341,7 +341,7 @@ public: // start parenthesing, hide SV-Cursor and selected areas void StartAction(); // end parenthesing, show SV-Cursor and selected areas - void EndAction( const bool bIdleEnd = false, const bool DoSetPosX = false ); + void EndAction( const bool bIdleEnd = false ); // basic cursor travelling tools::Long GetUpDownX() const { return m_nUpDownX; } diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index d7e7519acdda..702dc90636fd 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -213,6 +213,9 @@ public: void testCreatePortions(); void testBookmarkUndo(); void testFdo85876(); + void testCaretPositionMovingUp(); + void testTdf93441(); + void testTdf81226(); void testTdf79717(); void testTdf137532(); void testFdo87448(); @@ -445,6 +448,9 @@ public: CPPUNIT_TEST(testCreatePortions); CPPUNIT_TEST(testBookmarkUndo); CPPUNIT_TEST(testFdo85876); + CPPUNIT_TEST(testCaretPositionMovingUp); + CPPUNIT_TEST(testTdf93441); + CPPUNIT_TEST(testTdf81226); CPPUNIT_TEST(testTdf79717); CPPUNIT_TEST(testTdf137532); CPPUNIT_TEST(testFdo87448); @@ -2020,6 +2026,49 @@ void SwUiWriterTest::testFdo85876() } } +void SwUiWriterTest::testCaretPositionMovingUp() +{ + SwDoc* const pDoc = createDoc(); + SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell(); + pWrtShell->Insert("after"); + pWrtShell->InsertLineBreak(); + pWrtShell->Up(false); + pWrtShell->Insert("before"); + + CPPUNIT_ASSERT_EQUAL(OUString(u"beforeAfter" + OUStringChar(CH_TXTATR_NEWLINE)), getParagraph(1)->getString()); +} + +void SwUiWriterTest::testTdf93441() +{ + SwDoc* const pDoc = createDoc(); + SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell(); + pWrtShell->Insert("Hello"); + pWrtShell->InsertLineBreak(); + pWrtShell->Insert("Hello World"); + pWrtShell->Up(false); + pWrtShell->Insert(" World"); + + // Without the fix in place, this test would have failed with + // - Expected: Hello World\nHello World + // - Actual : WorldHello\nHello World + CPPUNIT_ASSERT_EQUAL(OUString(u"Hello World" + OUStringChar(CH_TXTATR_NEWLINE) + u"Hello World"), getParagraph(1)->getString()); +} + +void SwUiWriterTest::testTdf81226() +{ + SwDoc* const pDoc = createDoc(); + SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell(); + pWrtShell->Insert("before"); + pWrtShell->Left(CRSR_SKIP_CHARS, /*bSelect=*/false, 4, /*bBasicCall=*/false); + pWrtShell->Down(false); + pWrtShell->Insert("after"); + + // Without the fix in place, this test would have failed with + // - Expected: beforeafter + // - Actual : beafterfore + CPPUNIT_ASSERT_EQUAL(OUString("beforeafter"), getParagraph(1)->getString()); +} + void SwUiWriterTest::testTdf79717() { SwDoc* const pDoc = createDoc(); diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index 701e2f16a7e9..861c1f4ea714 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -236,16 +236,11 @@ void SwCursorShell::StartAction() SwViewShell::StartAction(); // to the SwViewShell } -void SwCursorShell::EndAction( const bool bIdleEnd, const bool DoSetPosX ) +void SwCursorShell::EndAction( const bool bIdleEnd ) { comphelper::FlagRestorationGuard g(mbSelectAll, StartsWithTable() && ExtendedSelectedAll()); bool bVis = m_bSVCursorVis; - sal_uInt16 eFlags = SwCursorShell::CHKRANGE; - if ( !DoSetPosX ) - eFlags |= SwCursorShell::UPDOWN; - - // Idle-formatting? if( bIdleEnd && Imp()->GetRegion() ) { @@ -273,6 +268,7 @@ void SwCursorShell::EndAction( const bool bIdleEnd, const bool DoSetPosX ) return; } + sal_uInt16 eFlags = SwCursorShell::CHKRANGE; if ( !bIdleEnd ) eFlags |= SwCursorShell::SCROLLWIN; @@ -312,7 +308,7 @@ void SwCursorShell::EndCursorMove( const bool bIdleEnd ) #ifdef DBG_UTIL OSL_ENSURE( m_nCursorMove, "EndCursorMove() without SttCursorMove()." ); #endif - EndAction( bIdleEnd, true ); + EndAction( bIdleEnd ); --m_nCursorMove; #ifdef DBG_UTIL if( !m_nCursorMove ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits