sw/inc/crsrsh.hxx | 4 ++-- sw/source/core/crsr/crsrsh.cxx | 14 +++++++++----- sw/source/core/crsr/crstrvl.cxx | 4 ++-- 3 files changed, 13 insertions(+), 9 deletions(-)
New commits: commit d58bea0ffa2a2fe79103ab7aa743aea63e27a0fd Author: Juergen Funk <juergen.funk...@cib.de> Date: Wed Sep 17 16:31:20 2014 +0200 Fix fdo#38884 Improve Up/Down movement in writer - It was provided, but the X-Position was reset after the cursor Up/Down - But in the Table is the X-Position not right -> other bug Change-Id: I2d70b7dc4ffa1e2612330d9b30ea5d916f5a9439 Reviewed-on: https://gerrit.libreoffice.org/11500 Reviewed-by: Samuel Mehrbrodt <s.mehrbr...@gmail.com> Tested-by: Samuel Mehrbrodt <s.mehrbr...@gmail.com> diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx index 9308300..2fd9841 100644 --- a/sw/inc/crsrsh.hxx +++ b/sw/inc/crsrsh.hxx @@ -352,7 +352,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 ); + void EndAction( const bool bIdleEnd = false, const bool DoSetPosX = false ); // basic cursor travelling long GetUpDownX() const { return m_nUpDownX; } @@ -453,7 +453,7 @@ public: #else void SttCrsrMove() { ++m_nCrsrMove; StartAction(); } void EndCrsrMove( const bool bIdleEnd = false ) - { EndAction( bIdleEnd ); --m_nCrsrMove; } + { EndAction( bIdleEnd, true ); --m_nCrsrMove; } #endif /* diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index 9a7fa97..608aff0 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -229,11 +229,16 @@ void SwCrsrShell::StartAction() SwViewShell::StartAction(); // to the SwViewShell } -void SwCrsrShell::EndAction( const bool bIdleEnd ) +void SwCrsrShell::EndAction( const bool bIdleEnd, const bool DoSetPosX ) { comphelper::FlagRestorationGuard g(mbSelectAll, StartsWithTable() && ExtendedSelectedAll(/*bFootnotes =*/ false)); bool bVis = m_bSVCrsrVis; + sal_uInt16 eFlags = SwCrsrShell::CHKRANGE; + if ( !DoSetPosX ) + eFlags |= SwCrsrShell::UPDOWN; + + // Idle-formatting? if( bIdleEnd && Imp()->GetRegion() ) { @@ -267,7 +272,7 @@ void SwCrsrShell::EndAction( const bool bIdleEnd ) // Within a Basic action, one needs to update the cursor, // to e.g. create the table cursor. This is being done in // UpdateCrsr. - UpdateCrsr( SwCrsrShell::CHKRANGE, bIdleEnd ); + UpdateCrsr( eFlags, bIdleEnd ); { // watch Crsr-Moves, call Link if needed, the DTOR is key here! @@ -284,11 +289,10 @@ void SwCrsrShell::EndAction( const bool bIdleEnd ) return; } - sal_uInt16 nParm = SwCrsrShell::CHKRANGE; if ( !bIdleEnd ) - nParm |= SwCrsrShell::SCROLLWIN; + eFlags |= SwCrsrShell::SCROLLWIN; - UpdateCrsr( nParm, bIdleEnd ); // Show Cursor changes + UpdateCrsr( eFlags, bIdleEnd ); // Show Cursor changes { SwCallLink aLk( *this ); // watch Crsr-Moves diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx index 1860842..c956ece 100644 --- a/sw/source/core/crsr/crstrvl.cxx +++ b/sw/source/core/crsr/crstrvl.cxx @@ -87,12 +87,12 @@ void SwCrsrShell::MoveCrsrToNum() if( pFrm->IsVertical() ) { aPt.setX(m_aCharRect.Center().getX()); - aPt.setY(pFrm->Frm().Top() + m_nUpDownX); + aPt.setY(pFrm->Frm().Top() + GetUpDownX()); } else { aPt.setY(m_aCharRect.Center().getY()); - aPt.setX(pFrm->Frm().Left() + m_nUpDownX); + aPt.setX(pFrm->Frm().Left() + GetUpDownX()); } pFrm->GetCrsrOfst( m_pCurCrsr->GetPoint(), aPt ); if ( !m_pCurCrsr->IsSelOvr( nsSwCursorSelOverFlags::SELOVER_TOGGLE | _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits