[Libreoffice-commits] core.git: editeng/source include/editeng sc/source
Dennis Francis (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jul 8 16:09:12 UTC 2020
editeng/source/editeng/editeng.cxx | 10 ++++++++++
editeng/source/editeng/impedit.hxx | 4 ++++
include/editeng/editeng.hxx | 3 +++
sc/source/ui/view/viewdata.cxx | 10 +++++-----
4 files changed, 22 insertions(+), 5 deletions(-)
New commits:
commit 6907817b83e37d40be491cc10b2e5b99cc0f48fc
Author: Dennis Francis <dennis.francis at collabora.com>
AuthorDate: Wed Jun 3 21:33:24 2020 +0530
Commit: Dennis Francis <dennis.francis at collabora.com>
CommitDate: Wed Jul 8 18:08:25 2020 +0200
scPrintTwipsMsgs: Use print-twips paper-size
Paper size for the EditEngine is calculated based on per-cell pixel
alignment. So lets use the exact print-twips version whenever we need it
to compute/adjust output-area and visible-area of EditView.
Change-Id: I7da6db9363d09965315ff5ca9d01f0fea141a533
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98130
Tested-by: Jenkins
Reviewed-by: Dennis Francis <dennis.francis at collabora.com>
diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx
index 73d85a07b7ce..99b6f1e04a99 100644
--- a/editeng/source/editeng/editeng.cxx
+++ b/editeng/source/editeng/editeng.cxx
@@ -2818,6 +2818,16 @@ void EditEngine::DisableAttributeExpanding() {
pImpEditEngine->GetEditDoc().DisableAttributeExpanding();
}
+void EditEngine::SetLOKSpecialPaperSize(const Size& rSize)
+{
+ pImpEditEngine->SetLOKSpecialPaperSize(rSize);
+}
+
+const Size& EditEngine::GetLOKSpecialPaperSize() const
+{
+ return pImpEditEngine->GetLOKSpecialPaperSize();
+}
+
EFieldInfo::EFieldInfo()
{
}
diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx
index 5f67ecd9b22a..0e2b6df1d790 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -562,6 +562,8 @@ private:
// If it is detected at one point that the StatusHdl has to be called, but
// this should not happen immediately (critical section):
Timer aStatusTimer;
+ Size aLOKSpecialPaperSize;
+
Link<EditStatus&,void> aStatusHdlLink;
Link<EENotify&,void> aNotifyHdl;
Link<HtmlImportInfo&,void> aHtmlImportHdl;
@@ -1109,6 +1111,8 @@ public:
bool IsNbspRunNext() const { return mbNbspRunNext; }
void Dispose();
+ void SetLOKSpecialPaperSize(const Size& rSize) { aLOKSpecialPaperSize = rSize; }
+ const Size& GetLOKSpecialPaperSize() const { return aLOKSpecialPaperSize; }
};
inline EPaM ImpEditEngine::CreateEPaM( const EditPaM& rPaM )
diff --git a/include/editeng/editeng.hxx b/include/editeng/editeng.hxx
index 292b620a9b95..e183cf81be5a 100644
--- a/include/editeng/editeng.hxx
+++ b/include/editeng/editeng.hxx
@@ -628,6 +628,9 @@ public:
// the same type expands the original instead of inserting another. But the
// spell check dialog doesn't want that behaviour
void DisableAttributeExpanding();
+
+ void SetLOKSpecialPaperSize(const Size& rSize);
+ const Size& GetLOKSpecialPaperSize() const;
};
#endif // INCLUDED_EDITENG_EDITENG_HXX
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index 3469399f40b4..58ee76e99a1f 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -1652,7 +1652,10 @@ void ScViewData::SetEditEngine( ScSplitPos eWhich,
aPaperSizePTwips.setWidth(OutputDevice::LogicToLogic(
aUtilRect.GetWidth(), MapUnit::Map100thMM, MapUnit::MapTwip));
}
+
pNewEngine->SetPaperSize( aPaperSize );
+ if (bLOKPrintTwips)
+ pNewEngine->SetLOKSpecialPaperSize(aPaperSizePTwips);
// sichtbarer Ausschnitt
Size aPaper = pNewEngine->GetPaperSize();
@@ -1781,12 +1784,10 @@ void ScViewData::EditGrowX()
SCCOL nLeft = GetPosX(eHWhich);
SCCOL nRight = nLeft + VisibleCellsX(eHWhich);
- MapUnit eWinUnit = GetLogicMode(eWhich).GetMapUnit();
Size aSize = pEngine->GetPaperSize();
Size aSizePTwips;
-
if (bLOKPrintTwips)
- aSizePTwips = OutputDevice::LogicToLogic(aSize, MapMode(eWinUnit), MapMode(MapUnit::MapTwip));
+ aSizePTwips = pEngine->GetLOKSpecialPaperSize();
tools::Rectangle aArea = pCurView->GetOutputArea();
tools::Rectangle aAreaPTwips;
@@ -2074,7 +2075,6 @@ void ScViewData::EditGrowY( bool bInitial )
EditEngine* pEngine = pCurView->GetEditEngine();
vcl::Window* pWin = pCurView->GetWindow();
- MapUnit eWinUnit = GetLogicMode(eWhich).GetMapUnit();
SCROW nBottom = GetPosY(eVWhich) + VisibleCellsY(eVWhich);
@@ -2085,7 +2085,7 @@ void ScViewData::EditGrowY( bool bInitial )
if (bLOKPrintTwips)
{
- aSizePTwips = OutputDevice::LogicToLogic(aSize, MapMode(eWinUnit), MapMode(MapUnit::MapTwip));
+ aSizePTwips = pEngine->GetLOKSpecialPaperSize();
aAreaPTwips = pCurView->GetLOKSpecialOutputArea();
}
More information about the Libreoffice-commits
mailing list