summaryrefslogtreecommitdiffstats
path: root/sw/source/core/edit
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2018-09-18 16:21:44 +0200
committerMichael Stahl <Michael.Stahl@cib.de>2018-09-19 10:08:55 +0200
commitf62ba688ca1c22fcdcf7efd811d702e982799882 (patch)
treeb0b58daa34da816da3376864d43fe5bd50a441b9 /sw/source/core/edit
parentsw_redlinehide_2: replace SW_REDLINEHIDE with ExperimentalMode config (diff)
downloadcore-private/mst/sw_redlinehide_2.tar.gz
core-private/mst/sw_redlinehide_2.zip
sw: rework annoying GetFrameOfModify/getLayoutFrame parameters private/mst/sw_redlinehide_2
The bCalcFrame is only evaluated if a pPoint is given; this is surprising and should be more visible in the interface, so people don't go on a goose chase to find places that may do formatting in inappropriate places. So put these parameters into a pair instead, which doesn't have particularly good ergonomics in C++, particularly since compilers warn about taking the address of a temporary object... Change-Id: I101c6eeb5bd6baf83c2bd9a6cb91ccaa04036cc3
Diffstat (limited to 'sw/source/core/edit')
-rw-r--r--sw/source/core/edit/editsh.cxx5
-rw-r--r--sw/source/core/edit/edlingu.cxx8
-rw-r--r--sw/source/core/edit/edsect.cxx3
3 files changed, 12 insertions, 4 deletions
diff --git a/sw/source/core/edit/editsh.cxx b/sw/source/core/edit/editsh.cxx
index 87efba3c8d18..52390c61f07b 100644
--- a/sw/source/core/edit/editsh.cxx
+++ b/sw/source/core/edit/editsh.cxx
@@ -137,10 +137,11 @@ void SwEditShell::Insert2(const OUString &rStr, const bool bForceExpandHints )
if ( ! pSI )
{
// seems to be an empty paragraph.
- Point aPt; // why ???
+ Point aPt;
+ std::pair<Point, bool> const tmp(aPt, false);
pFrame = static_cast<SwTextFrame*>(
static_cast<SwTextNode&>(rNode).getLayoutFrame(
- GetLayout(), &aPt, pTmpCursor->GetPoint(), false));
+ GetLayout(), pTmpCursor->GetPoint(), &tmp));
SwScriptInfo aScriptInfo;
aScriptInfo.InitScriptInfo(static_cast<SwTextNode&>(rNode),
diff --git a/sw/source/core/edit/edlingu.cxx b/sw/source/core/edit/edlingu.cxx
index c6a28d3162e2..2953fdb9d567 100644
--- a/sw/source/core/edit/edlingu.cxx
+++ b/sw/source/core/edit/edlingu.cxx
@@ -857,7 +857,13 @@ void SwEditShell::HandleCorrectionError(const OUString& aText, SwPosition aPos,
SwCursorMoveState aState;
aState.m_bRealWidth = true;
SwContentNode* pContentNode = pCursor->GetContentNode();
- SwContentFrame *pContentFrame = pContentNode->getLayoutFrame( GetLayout(), pPt, pCursor->GetPoint(), false);
+ std::pair<Point, bool> tmp;
+ if (pPt)
+ {
+ tmp.first = *pPt;
+ tmp.second = false;
+ }
+ SwContentFrame *const pContentFrame = pContentNode->getLayoutFrame(GetLayout(), pCursor->GetPoint(), pPt ? &tmp : nullptr);
pContentFrame->GetCharRect( aStartRect, *pCursor->GetPoint(), &aState );
rContent = nWordEnd - 1;
diff --git a/sw/source/core/edit/edsect.cxx b/sw/source/core/edit/edsect.cxx
index d816896dd7e4..8ec298bcba51 100644
--- a/sw/source/core/edit/edsect.cxx
+++ b/sw/source/core/edit/edsect.cxx
@@ -89,7 +89,8 @@ SwSection* SwEditShell::GetAnySection( bool bOutOfTab, const Point* pPt )
Point aPt( *pPt );
GetLayout()->GetCursorOfst( &aPos, aPt );
SwContentNode *pNd = aPos.nNode.GetNode().GetContentNode();
- pFrame = pNd->getLayoutFrame( GetLayout(), pPt );
+ std::pair<Point, bool> const tmp(*pPt, true);
+ pFrame = pNd->getLayoutFrame(GetLayout(), nullptr, &tmp);
}
else
pFrame = GetCurrFrame( false );