[Libreoffice-commits] core.git: sc/inc sc/source
Marco Cecchetti
marco.cecchetti at collabora.com
Thu Oct 6 16:46:33 UTC 2016
sc/inc/docuno.hxx | 3 +++
sc/source/ui/inc/viewdata.hxx | 6 ++++++
sc/source/ui/unoobj/docuno.cxx | 11 +++++++++++
sc/source/ui/view/viewdata.cxx | 11 +++++++++--
4 files changed, 29 insertions(+), 2 deletions(-)
New commits:
commit cd1d2b3e1b5802576414cf497a3d2b56e4b0eb70
Author: Marco Cecchetti <marco.cecchetti at collabora.com>
Date: Thu Oct 6 17:31:15 2016 +0200
LOK: Calc: page-up/down - cursor moves far more than a page
Change-Id: I1253044f26553dab08bc2a38c706f634e9377c86
Reviewed-on: https://gerrit.libreoffice.org/29578
Reviewed-by: Marco Cecchetti <mrcekets at gmail.com>
Tested-by: Marco Cecchetti <mrcekets at gmail.com>
diff --git a/sc/inc/docuno.hxx b/sc/inc/docuno.hxx
index 1487b0b..55957f3 100644
--- a/sc/inc/docuno.hxx
+++ b/sc/inc/docuno.hxx
@@ -423,6 +423,9 @@ public:
/// @see vcl::ITiledRenderable::getTrackedChanges().
OUString getTrackedChanges() override;
+
+ /// @see vcl::ITiledRenderable::setClientVisibleArea().
+ virtual void setClientVisibleArea(const Rectangle& rRectangle) override;
};
class ScDrawPagesObj : public cppu::WeakImplHelper<
diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx
index e007a4b..b0cd0a3 100644
--- a/sc/source/ui/inc/viewdata.hxx
+++ b/sc/source/ui/inc/viewdata.hxx
@@ -225,8 +225,11 @@ private:
bool bPagebreak:1; // Page break preview mode
bool bSelCtrlMouseClick:1; // special selection handling for ctrl-mouse-click
+ long m_nLOKPageUpDownOffset;
+
DECL_DLLPRIVATE_LINK( EditEngineHdl, EditStatus&, void );
+
SAL_DLLPRIVATE void CalcPPT();
SAL_DLLPRIVATE void CreateTabData( SCTAB nNewTab );
SAL_DLLPRIVATE void CreateTabData( std::vector< SCTAB >& rvTabs );
@@ -422,6 +425,9 @@ public:
bool IsOutlineMode () const { return pOptions->GetOption( VOPT_OUTLINER ); }
void SetOutlineMode ( bool bNewMode ) { pOptions->SetOption( VOPT_OUTLINER, bNewMode ); }
+ /// Force page size for PgUp/PgDown to overwrite the computation based on m_aVisArea.
+ void ForcePageUpDownOffset(long nTwips) { m_nLOKPageUpDownOffset = nTwips; }
+
void KillEditView();
void ResetEditView();
void SetEditEngine( ScSplitPos eWhich,
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 43151ab..3ccd145 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -966,6 +966,17 @@ OUString ScModelObj::getTrackedChanges()
return aRet;
}
+void ScModelObj::setClientVisibleArea(const Rectangle& rRectangle)
+{
+ ScViewData* pViewData = pDocShell->GetViewData();
+ if (!pViewData)
+ return;
+
+ // set the PgUp/PgDown offset
+ pViewData->ForcePageUpDownOffset(rRectangle.GetHeight());
+}
+
+
void ScModelObj::initializeForTiledRendering(const css::uno::Sequence<css::beans::PropertyValue>& /*rArguments*/)
{
SolarMutexGuard aGuard;
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index 34aa647..90d5cd6 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -356,7 +356,8 @@ ScViewData::ScViewData( ScDocShell* pDocSh, ScTabViewShell* pViewSh ) :
bIsRefMode ( false ),
bDelMarkValid( false ),
bPagebreak ( false ),
- bSelCtrlMouseClick( false )
+ bSelCtrlMouseClick( false ),
+ m_nLOKPageUpDownOffset( 0 )
{
mpMarkData->SelectOneTable(0); // Sync with nTabNo
@@ -444,7 +445,8 @@ ScViewData::ScViewData( const ScViewData& rViewData ) :
bIsRefMode ( false ),
bDelMarkValid( false ),
bPagebreak ( rViewData.bPagebreak ),
- bSelCtrlMouseClick( rViewData.bSelCtrlMouseClick )
+ bSelCtrlMouseClick( rViewData.bSelCtrlMouseClick ),
+ m_nLOKPageUpDownOffset( rViewData.m_nLOKPageUpDownOffset )
{
SetGridMode ( rViewData.IsGridMode() );
@@ -1731,6 +1733,11 @@ SCROW ScViewData::CellsAtY( SCsROW nPosY, SCsROW nDir, ScVSplitPos eWhichY, sal_
if (nScrSizeY == SC_SIZE_NONE) nScrSizeY = (sal_uInt16) aScrSize.Height();
+ if (comphelper::LibreOfficeKit::isActive() && m_nLOKPageUpDownOffset > 0)
+ {
+ nScrSizeY = ToPixel( m_nLOKPageUpDownOffset, nPPTY );
+ }
+
SCROW nY;
if (nDir==1)
More information about the Libreoffice-commits
mailing list