sw/source/core/crsr/crsrsh.cxx | 4 - sw/source/core/crsr/viscrs.cxx | 2 sw/source/core/doc/notxtfrm.cxx | 2 sw/source/core/draw/dpage.cxx | 2 sw/source/core/frmedt/fews.cxx | 2 sw/source/core/inc/frmtool.hxx | 2 sw/source/core/inc/layact.hxx | 6 - sw/source/core/inc/pagefrm.hxx | 4 - sw/source/core/inc/viewimp.hxx | 20 ----- sw/source/core/layout/anchoreddrawobject.cxx | 4 - sw/source/core/layout/layact.cxx | 39 +++++------ sw/source/core/layout/pagechg.cxx | 4 - sw/source/core/layout/paintfrm.cxx | 93 +++++++++++++-------------- sw/source/core/text/frmform.cxx | 12 +-- sw/source/core/text/inftxt.cxx | 64 ++++++++++++++++-- sw/source/core/text/inftxt.hxx | 49 ++------------ sw/source/core/text/txtfly.cxx | 2 sw/source/core/text/txtfrm.cxx | 8 +- sw/source/core/text/txtftn.cxx | 2 sw/source/core/text/txthyph.cxx | 3 sw/source/core/unocore/unoflatpara.cxx | 2 sw/source/core/view/pagepreviewlayout.cxx | 8 +- sw/source/core/view/viewimp.cxx | 22 +++++- sw/source/core/view/viewsh.cxx | 18 ++--- sw/source/core/view/vprint.cxx | 2 sw/source/uibase/docvw/PageBreakWin.cxx | 2 26 files changed, 198 insertions(+), 180 deletions(-)
New commits: commit 783361da4efa20422769dcda64c59b615c31c6d6 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 17:38:24 2015 +0200 SwTextFormatInfo::SwTextFormatInfo: use vcl::RenderContext (cherry picked from commit 54106fae68149c0b1dbb4f6ece133fefacacc322) Conflicts: sw/source/core/text/frmform.cxx Change-Id: I8ff1647bdf8c46d395c398c97b97066d7b128cdb diff --git a/sw/source/core/text/frmform.cxx b/sw/source/core/text/frmform.cxx index 1434a49..3f91ead 100644 --- a/sw/source/core/text/frmform.cxx +++ b/sw/source/core/text/frmform.cxx @@ -504,7 +504,7 @@ com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop > SwTextFrm::Get com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop > tabs(1); ::com::sun::star::style::TabStop ts; - SwTextFormatInfo aInf( this ); + SwTextFormatInfo aInf( getRootFrm()->GetCurrShell()->GetOut(), this ); SwTextFormatter aLine( this, &aInf ); SwTextCursor TextCursor( this, &aInf ); const Point aCharPos( TextCursor.GetTopLeft() ); @@ -868,8 +868,8 @@ bool SwTextFrm::CalcPreps() SWAP_IF_NOT_SWAPPED( this ) - SwTextFormatInfo aInf( this ); - SwTextFormatter aLine( this, &aInf ); + SwTextFormatInfo aInf( getRootFrm()->GetCurrShell()->GetOut(), this ); + SwTextFormatter aLine( this, &aInf ); WidowsAndOrphans aFrmBreak( this ); // Whatever the attributes say: we split the paragraph in @@ -1665,7 +1665,7 @@ void SwTextFrm::_Format( SwParaPortion *pPara ) if ( IsVertical() ) SwapWidthAndHeight(); - SwTextFormatInfo aInf( this ); + SwTextFormatInfo aInf( getRootFrm()->GetCurrShell()->GetOut(), this ); SwTextFormatter aLine( this, &aInf ); HideAndShowObjects(); @@ -1892,7 +1892,7 @@ bool SwTextFrm::FormatQuick( bool bForceQuickFormat ) SwFrmSwapper aSwapper( this, true ); TextFrmLockGuard aLock(this); - SwTextFormatInfo aInf( this, false, true ); + SwTextFormatInfo aInf( getRootFrm()->GetCurrShell()->GetOut(), this, false, true ); if( 0 != aInf.MaxHyph() ) // Respect MaxHyphen! return false; diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx index 741bef7..ae679c3 100644 --- a/sw/source/core/text/inftxt.cxx +++ b/sw/source/core/text/inftxt.cxx @@ -1467,10 +1467,10 @@ void SwTextFormatInfo::Init() SetPaintOfst(0); } -SwTextFormatInfo::SwTextFormatInfo(SwTextFrm *pFrame, const bool bInterHyphL, +SwTextFormatInfo::SwTextFormatInfo(OutputDevice* pRenderContext, SwTextFrm *pFrame, const bool bInterHyphL, const bool bQuickL, const bool bTst) { - CtorInitTextFormatInfo(pFrame->getRootFrm()->GetCurrShell()->GetOut(), pFrame, bInterHyphL, bQuickL, bTst); + CtorInitTextFormatInfo(pRenderContext, pFrame, bInterHyphL, bQuickL, bTst); } /** diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx index fc28a0a..9c09bfc 100644 --- a/sw/source/core/text/inftxt.hxx +++ b/sw/source/core/text/inftxt.hxx @@ -563,7 +563,7 @@ class SwTextFormatInfo : public SwTextPaintInfo public: void CtorInitTextFormatInfo( OutputDevice* pRenderContext, SwTextFrm *pFrm, const bool bInterHyph = false, const bool bQuick = false, const bool bTst = false ); - SwTextFormatInfo(SwTextFrm *pFrame, const bool bInterHyphL = false, + SwTextFormatInfo(OutputDevice* pRenderContext, SwTextFrm *pFrame, const bool bInterHyphL = false, const bool bQuickL = false, const bool bTst = false); // For the formatting inside a double line in a line (multi-line portion) diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx index bc3e656..d51b613 100644 --- a/sw/source/core/text/txtfrm.cxx +++ b/sw/source/core/text/txtfrm.cxx @@ -758,7 +758,7 @@ void SwTextFrm::CalcLineSpace() Size aNewSize( Prt().SSize() ); - SwTextFormatInfo aInf( this ); + SwTextFormatInfo aInf( getRootFrm()->GetCurrShell()->GetOut(), this ); SwTextFormatter aLine( this, &aInf ); if( aLine.GetDropLines() ) { @@ -1882,7 +1882,7 @@ SwTestFormat::SwTestFormat( SwTextFrm* pTextFrm, const SwFrm* pPre, SwTwips nMax if ( pFrm->IsVertical() ) pFrm->SwapWidthAndHeight(); - SwTextFormatInfo aInf( pFrm, false, true, true ); + SwTextFormatInfo aInf( pFrm->getRootFrm()->GetCurrShell()->GetOut(), pFrm, false, true, true ); SwTextFormatter aLine( pFrm, &aInf ); pFrm->_Format( aLine, aInf ); @@ -2120,7 +2120,7 @@ SwTwips SwTextFrm::CalcFitToContent() // #i31490# TextFrmLockGuard aLock( this ); - SwTextFormatInfo aInf( this, false, true, true ); + SwTextFormatInfo aInf( getRootFrm()->GetCurrShell()->GetOut(), this, false, true, true ); aInf.SetIgnoreFly( true ); SwTextFormatter aLine( this, &aInf ); SwHookOut aHook( aInf ); @@ -2180,7 +2180,7 @@ void SwTextFrm::CalcAdditionalFirstLineOffset() TextFrmLockGuard aLock( this ); // simulate text formatting - SwTextFormatInfo aInf( this, false, true, true ); + SwTextFormatInfo aInf( getRootFrm()->GetCurrShell()->GetOut(), this, false, true, true ); aInf.SetIgnoreFly( true ); SwTextFormatter aLine( this, &aInf ); SwHookOut aHook( aInf ); diff --git a/sw/source/core/text/txtftn.cxx b/sw/source/core/text/txtftn.cxx index 07ba9d6..7a69dc2 100644 --- a/sw/source/core/text/txtftn.cxx +++ b/sw/source/core/text/txtftn.cxx @@ -144,7 +144,7 @@ bool SwTextFrm::CalcPrepFootnoteAdjust() bReArrange = false; if( !pCont || !pFootnote || bReArrange != (pFootnote->FindFootnoteBossFrm() == pBoss) ) { - SwTextFormatInfo aInf( this ); + SwTextFormatInfo aInf( getRootFrm()->GetCurrShell()->GetOut(), this ); SwTextFormatter aLine( this, &aInf ); aLine.TruncLines(); SetPara( 0 ); // May be deleted! diff --git a/sw/source/core/text/txthyph.cxx b/sw/source/core/text/txthyph.cxx index 9ced752..9ae675f 100644 --- a/sw/source/core/text/txthyph.cxx +++ b/sw/source/core/text/txthyph.cxx @@ -28,6 +28,7 @@ #include <itrform2.hxx> #include <guess.hxx> #include <splargs.hxx> +#include <rootfrm.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -78,7 +79,7 @@ bool SwTextFrm::Hyphenate( SwInterHyphInfo &rHyphInf ) if ( IsVertical() ) SwapWidthAndHeight(); - SwTextFormatInfo aInf( this, true ); // true for interactive hyph! + SwTextFormatInfo aInf( getRootFrm()->GetCurrShell()->GetOut(), this, true ); // true for interactive hyph! SwTextFormatter aLine( this, &aInf ); aLine.CharToLine( rHyphInf.nStart ); commit 8155ba78bab5dfe600170d42c0b1ae47da602657 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 17:12:55 2015 +0200 SwTextFormatInfo::CtorInitTextFormatInfo: use vcl::RenderContext Change-Id: I0f775bdfaf6a098be25d053f87b1bcf86d533297 (cherry picked from commit a5fe6ea091ae7e897b11b62b9b749b6194d34585) diff --git a/sw/source/core/text/frmform.cxx b/sw/source/core/text/frmform.cxx index cb70ff2..1434a49 100644 --- a/sw/source/core/text/frmform.cxx +++ b/sw/source/core/text/frmform.cxx @@ -1624,7 +1624,7 @@ void SwTextFrm::FormatOnceMore( SwTextFormatter &rLine, SwTextFormatInfo &rInf ) // If something went wrong, we need to reformat again if( !bGoOn ) { - rInf.CtorInitTextFormatInfo( this ); + rInf.CtorInitTextFormatInfo( getRootFrm()->GetCurrShell()->GetOut(), this ); rLine.CtorInitTextFormatter( this, &rInf ); rLine.SetDropLines( 1 ); rLine.CalcDropHeight( 1 ); diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx index bac9704..741bef7 100644 --- a/sw/source/core/text/inftxt.cxx +++ b/sw/source/core/text/inftxt.cxx @@ -1351,10 +1351,10 @@ bool SwTextFormatInfo::InitHyph( const bool bAutoHyphen ) return bAuto; } -void SwTextFormatInfo::CtorInitTextFormatInfo( SwTextFrm *pNewFrm, const bool bNewInterHyph, +void SwTextFormatInfo::CtorInitTextFormatInfo( OutputDevice* pRenderContext, SwTextFrm *pNewFrm, const bool bNewInterHyph, const bool bNewQuick, const bool bTst ) { - CtorInitTextPaintInfo( pNewFrm->getRootFrm()->GetCurrShell()->GetOut(), pNewFrm, SwRect() ); + CtorInitTextPaintInfo( pRenderContext, pNewFrm, SwRect() ); bQuick = bNewQuick; bInterHyph = bNewInterHyph; @@ -1470,7 +1470,7 @@ void SwTextFormatInfo::Init() SwTextFormatInfo::SwTextFormatInfo(SwTextFrm *pFrame, const bool bInterHyphL, const bool bQuickL, const bool bTst) { - CtorInitTextFormatInfo(pFrame, bInterHyphL, bQuickL, bTst); + CtorInitTextFormatInfo(pFrame->getRootFrm()->GetCurrShell()->GetOut(), pFrame, bInterHyphL, bQuickL, bTst); } /** diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx index cbcabef..fc28a0a 100644 --- a/sw/source/core/text/inftxt.hxx +++ b/sw/source/core/text/inftxt.hxx @@ -561,7 +561,7 @@ class SwTextFormatInfo : public SwTextPaintInfo bool _CheckFootnotePortion( SwLineLayout* pCurr ); public: - void CtorInitTextFormatInfo( SwTextFrm *pFrm, const bool bInterHyph = false, + void CtorInitTextFormatInfo( OutputDevice* pRenderContext, SwTextFrm *pFrm, const bool bInterHyph = false, const bool bQuick = false, const bool bTst = false ); SwTextFormatInfo(SwTextFrm *pFrame, const bool bInterHyphL = false, const bool bQuickL = false, const bool bTst = false); commit dddbb8dc6e6caefc15134fe48fd769e332d916f4 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 17:06:30 2015 +0200 sw: outline SwTextFormatInfo ctor Change-Id: I07b3a7768def547a34cbcdd8966157065605d5fb (cherry picked from commit d3456256eafa376abaad50dc980ab94032185af6) diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx index 06bdcc0..bac9704 100644 --- a/sw/source/core/text/inftxt.cxx +++ b/sw/source/core/text/inftxt.cxx @@ -1467,6 +1467,12 @@ void SwTextFormatInfo::Init() SetPaintOfst(0); } +SwTextFormatInfo::SwTextFormatInfo(SwTextFrm *pFrame, const bool bInterHyphL, + const bool bQuickL, const bool bTst) +{ + CtorInitTextFormatInfo(pFrame, bInterHyphL, bQuickL, bTst); +} + /** * There are a few differences between a copy constructor * and the following constructor for multi-line formatting. diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx index 0f9ea3e..cbcabef 100644 --- a/sw/source/core/text/inftxt.hxx +++ b/sw/source/core/text/inftxt.hxx @@ -563,9 +563,8 @@ class SwTextFormatInfo : public SwTextPaintInfo public: void CtorInitTextFormatInfo( SwTextFrm *pFrm, const bool bInterHyph = false, const bool bQuick = false, const bool bTst = false ); - inline SwTextFormatInfo(SwTextFrm *pFrame, const bool bInterHyphL = false, - const bool bQuickL = false, const bool bTst = false) - { CtorInitTextFormatInfo( pFrame, bInterHyphL, bQuickL, bTst ); } + SwTextFormatInfo(SwTextFrm *pFrame, const bool bInterHyphL = false, + const bool bQuickL = false, const bool bTst = false); // For the formatting inside a double line in a line (multi-line portion) // we need a modified text-format-info: commit 3110255ffd54da6f06b425cfcb4a629959a1cdfd Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 16:44:55 2015 +0200 SwTextPaintInfo::CtorInitTextPaintInfo: use vcl::RenderContext Change-Id: I1931ec139798d2f2eb956fd0590ab98ce1a65c3c (cherry picked from commit 0c33e10b594aa07c4e9adadae59e5c03a4fdc29c) diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx index 2ff3518..06bdcc0 100644 --- a/sw/source/core/text/inftxt.cxx +++ b/sw/source/core/text/inftxt.cxx @@ -487,9 +487,9 @@ bool SwTextSizeInfo::_HasHint( const SwTextNode* pTextNode, sal_Int32 nPos ) return pTextNode->GetTextAttrForCharAt(nPos); } -void SwTextPaintInfo::CtorInitTextPaintInfo( SwTextFrm *pFrame, const SwRect &rPaint ) +void SwTextPaintInfo::CtorInitTextPaintInfo( OutputDevice* pRenderContext, SwTextFrm *pFrame, const SwRect &rPaint ) { - CtorInitTextSizeInfo( pFrame->getRootFrm()->GetCurrShell()->GetOut(), pFrame ); + CtorInitTextSizeInfo( pRenderContext, pFrame ); aTextFly.CtorInitTextFly( pFrame ), aPaintRect = rPaint; nSpaceIdx = 0; @@ -533,7 +533,7 @@ SwTextPaintInfo::SwTextPaintInfo( const SwTextPaintInfo &rInf ) SwTextPaintInfo::SwTextPaintInfo( SwTextFrm *pFrame, const SwRect &rPaint ) { - CtorInitTextPaintInfo( pFrame, rPaint ); + CtorInitTextPaintInfo( pFrame->getRootFrm()->GetCurrShell()->GetOut(), pFrame, rPaint ); } extern Color aGlobalRetoucheColor; @@ -1354,7 +1354,7 @@ bool SwTextFormatInfo::InitHyph( const bool bAutoHyphen ) void SwTextFormatInfo::CtorInitTextFormatInfo( SwTextFrm *pNewFrm, const bool bNewInterHyph, const bool bNewQuick, const bool bTst ) { - CtorInitTextPaintInfo( pNewFrm, SwRect() ); + CtorInitTextPaintInfo( pNewFrm->getRootFrm()->GetCurrShell()->GetOut(), pNewFrm, SwRect() ); bQuick = bNewQuick; bInterHyph = bNewInterHyph; diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx index 17ff859..0f9ea3e 100644 --- a/sw/source/core/text/inftxt.hxx +++ b/sw/source/core/text/inftxt.hxx @@ -403,7 +403,7 @@ public: SwTextPaintInfo( const SwTextPaintInfo &rInf ); SwTextPaintInfo( const SwTextPaintInfo &rInf, const OUString* pText ); - void CtorInitTextPaintInfo( SwTextFrm *pFrame, const SwRect &rPaint ); + void CtorInitTextPaintInfo( OutputDevice* pRenderContext, SwTextFrm *pFrame, const SwRect &rPaint ); void SetBack( const SvxBrushItem *pItem, const SwRect &rRect ) { pBrushItem = pItem; aItemRect = rRect;} commit 4283aa9cf0090ec5b21073605d3fe98223c649e0 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 16:33:37 2015 +0200 sw: outline SwTextPaintInfo ctor Change-Id: Ie57e1f5abc91286662804e7528afd062d1427fee (cherry picked from commit 9829d6ab01e15be7e81f971eac6ba5e402ca5189) diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx index 3e41ec5..2ff3518 100644 --- a/sw/source/core/text/inftxt.cxx +++ b/sw/source/core/text/inftxt.cxx @@ -531,6 +531,11 @@ SwTextPaintInfo::SwTextPaintInfo( const SwTextPaintInfo &rInf ) nSpaceIdx( rInf.GetSpaceIdx() ) { } +SwTextPaintInfo::SwTextPaintInfo( SwTextFrm *pFrame, const SwRect &rPaint ) +{ + CtorInitTextPaintInfo( pFrame, rPaint ); +} + extern Color aGlobalRetoucheColor; /// Returns if the current background color is dark. diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx index e8f88c5..17ff859 100644 --- a/sw/source/core/text/inftxt.hxx +++ b/sw/source/core/text/inftxt.hxx @@ -410,8 +410,7 @@ public: const SvxBrushItem *GetBrushItem() const { return pBrushItem; } const SwRect &GetBrushRect() const { return aItemRect; } - inline SwTextPaintInfo( SwTextFrm *pFrame, const SwRect &rPaint ) - { CtorInitTextPaintInfo( pFrame, rPaint ); } + SwTextPaintInfo( SwTextFrm *pFrame, const SwRect &rPaint ); inline SwTwips X() const { return aPos.X(); } inline void X( const long nNew ) { aPos.X() = nNew; } commit 33e33bcce7797ae82e5d79a43df2a04b4938a00b Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 16:23:25 2015 +0200 SwTextSizeInfo::CtorInitTextSizeInfo: use vcl::RenderContext Change-Id: I6dfceb02b57d886dd8025520e5ed21a2ad46a5b1 (cherry picked from commit 8af3974013dbae4aa83b13c6fd6c6e8fd04ac072) diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx index 3dae3d3..3e41ec5 100644 --- a/sw/source/core/text/inftxt.cxx +++ b/sw/source/core/text/inftxt.cxx @@ -251,7 +251,7 @@ SwTextSizeInfo::SwTextSizeInfo( const SwTextSizeInfo &rNew ) #endif } -void SwTextSizeInfo::CtorInitTextSizeInfo( SwTextFrm *pFrame, SwFont *pNewFnt, +void SwTextSizeInfo::CtorInitTextSizeInfo( OutputDevice* pRenderContext, SwTextFrm *pFrame, SwFont *pNewFnt, const sal_Int32 nNewIdx, const sal_Int32 nNewLen ) { m_pKanaComp = NULL; @@ -264,9 +264,9 @@ void SwTextSizeInfo::CtorInitTextSizeInfo( SwTextFrm *pFrame, SwFont *pNewFnt, // Get the output and reference device if ( m_pVsh ) { - m_pOut = m_pVsh->GetOut(); + m_pOut = pRenderContext; m_pRef = &m_pVsh->GetRefDev(); - m_bOnWin = m_pVsh->GetWin() || OUTDEV_WINDOW == m_pOut->GetOutDevType(); + m_bOnWin = m_pVsh->GetWin() || OUTDEV_WINDOW == m_pOut->GetOutDevType() || m_pVsh->isOutputToWindow(); } else { @@ -368,7 +368,7 @@ SwTextSizeInfo::SwTextSizeInfo( SwTextFrm *pTextFrm, SwFont *pTextFnt, const sal_Int32 nLength ) : m_bOnWin(false) { - CtorInitTextSizeInfo( pTextFrm, pTextFnt, nIndex, nLength ); + CtorInitTextSizeInfo( pTextFrm->getRootFrm()->GetCurrShell()->GetOut(), pTextFrm, pTextFnt, nIndex, nLength ); } void SwTextSizeInfo::SelectFont() @@ -489,7 +489,7 @@ bool SwTextSizeInfo::_HasHint( const SwTextNode* pTextNode, sal_Int32 nPos ) void SwTextPaintInfo::CtorInitTextPaintInfo( SwTextFrm *pFrame, const SwRect &rPaint ) { - CtorInitTextSizeInfo( pFrame ); + CtorInitTextSizeInfo( pFrame->getRootFrm()->GetCurrShell()->GetOut(), pFrame ); aTextFly.CtorInitTextFly( pFrame ), aPaintRect = rPaint; nSpaceIdx = 0; diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx index 1384906..e8f88c5 100644 --- a/sw/source/core/text/inftxt.hxx +++ b/sw/source/core/text/inftxt.hxx @@ -191,7 +191,7 @@ protected: sal_uInt8 m_nDirection : 2; // writing direction: 0/90/180/270 degree protected: - void CtorInitTextSizeInfo( SwTextFrm *pFrm, SwFont *pFnt = 0, + void CtorInitTextSizeInfo( OutputDevice* pRenderContext, SwTextFrm *pFrm, SwFont *pFnt = 0, const sal_Int32 nIdx = 0, const sal_Int32 nLen = COMPLETE_STRING ); SwTextSizeInfo(); commit abf0750c181edc20ce9dbd3a362df6cf1f5e10be Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 15:47:15 2015 +0200 sw: outline SwTextSizeInfo ctors Change-Id: I8964701bf5b1ecdb11851d7cc8540175e007dd2b (cherry picked from commit d7eacc579fb0874e9602b5c0714ac00bd520322a) diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx index 861f412..3dae3d3 100644 --- a/sw/source/core/text/inftxt.cxx +++ b/sw/source/core/text/inftxt.cxx @@ -188,6 +188,35 @@ inline sal_Int32 GetMinLen( const SwTextSizeInfo &rInf ) return std::min(nTextLen, nInfLen); } +SwTextSizeInfo::SwTextSizeInfo() +: m_pKanaComp(0) +, m_pVsh(0) +, m_pOut(0) +, m_pRef(0) +, m_pFnt(0) +, m_pUnderFnt(0) +, m_pFrm(0) +, m_pOpt(0) +, m_pText(0) +, m_nIdx(0) +, m_nLen(0) +, m_nKanaIdx(0) +, m_bOnWin (false) +, m_bNotEOL (false) +, m_bURLNotify(false) +, m_bStopUnderflow(false) +, m_bFootnoteInside(false) +, m_bOtherThanFootnoteInside(false) +, m_bMulti(false) +, m_bFirstMulti(false) +, m_bRuby(false) +, m_bHanging(false) +, m_bScriptSpace(false) +, m_bForbiddenChars(false) +, m_bSnapToGrid(false) +, m_nDirection(0) +{} + SwTextSizeInfo::SwTextSizeInfo( const SwTextSizeInfo &rNew ) : SwTextInfo( rNew ), m_pKanaComp(rNew.GetpKanaComp()), @@ -334,6 +363,14 @@ SwTextSizeInfo::SwTextSizeInfo( const SwTextSizeInfo &rNew, const OUString* pTex SetLen( GetMinLen( *this ) ); } +SwTextSizeInfo::SwTextSizeInfo( SwTextFrm *pTextFrm, SwFont *pTextFnt, + const sal_Int32 nIndex, + const sal_Int32 nLength ) + : m_bOnWin(false) +{ + CtorInitTextSizeInfo( pTextFrm, pTextFnt, nIndex, nLength ); +} + void SwTextSizeInfo::SelectFont() { // The path needs to go via ChgPhysFnt or the FontMetricCache gets confused. diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx index a1a30cb..1384906 100644 --- a/sw/source/core/text/inftxt.hxx +++ b/sw/source/core/text/inftxt.hxx @@ -194,34 +194,7 @@ protected: void CtorInitTextSizeInfo( SwTextFrm *pFrm, SwFont *pFnt = 0, const sal_Int32 nIdx = 0, const sal_Int32 nLen = COMPLETE_STRING ); - SwTextSizeInfo() - : m_pKanaComp(0) - , m_pVsh(0) - , m_pOut(0) - , m_pRef(0) - , m_pFnt(0) - , m_pUnderFnt(0) - , m_pFrm(0) - , m_pOpt(0) - , m_pText(0) - , m_nIdx(0) - , m_nLen(0) - , m_nKanaIdx(0) - , m_bOnWin (false) - , m_bNotEOL (false) - , m_bURLNotify(false) - , m_bStopUnderflow(false) - , m_bFootnoteInside(false) - , m_bOtherThanFootnoteInside(false) - , m_bMulti(false) - , m_bFirstMulti(false) - , m_bRuby(false) - , m_bHanging(false) - , m_bScriptSpace(false) - , m_bForbiddenChars(false) - , m_bSnapToGrid(false) - , m_nDirection(0) - {} + SwTextSizeInfo(); public: SwTextSizeInfo( const SwTextSizeInfo &rInf ); SwTextSizeInfo( const SwTextSizeInfo &rInf, const OUString* pText, @@ -230,11 +203,7 @@ public: SwTextSizeInfo( SwTextFrm *pTextFrm, SwFont *pTextFnt = 0, const sal_Int32 nIndex = 0, - const sal_Int32 nLength = COMPLETE_STRING ) - : m_bOnWin(false) - { - CtorInitTextSizeInfo( pTextFrm, pTextFnt, nIndex, nLength ); - } + const sal_Int32 nLength = COMPLETE_STRING ); // GetMultiAttr returns the text attribute of the multiportion, // if rPos is inside any multi-line part. commit 688227f66e815fac5a99dc6008e1376173bb1abb Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 14:48:09 2015 +0200 SwLayAction::FormatLayout: use vcl::RenderContext Change-Id: I3bc993b00940732fd9ca26ccec7d025c8558516a (cherry picked from commit b13fbaf697b1cbd1f8b019e3f5500b53e2a39c6c) diff --git a/sw/source/core/inc/layact.hxx b/sw/source/core/inc/layact.hxx index 53e3c25..1dca776 100644 --- a/sw/source/core/inc/layact.hxx +++ b/sw/source/core/inc/layact.hxx @@ -100,7 +100,7 @@ class SwLayAction inline bool _PaintContent( const SwContentFrm *, const SwPageFrm *, const SwRect & ); - bool FormatLayout( SwLayoutFrm *, bool bAddRect = true ); + bool FormatLayout( OutputDevice* pRenderContext, SwLayoutFrm *, bool bAddRect = true ); bool FormatLayoutTab( SwTabFrm *, bool bAddRect = true ); bool FormatContent( const SwPageFrm* pPage ); void _FormatContent( const SwContentFrm* pContent, diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx index 2845c03..f43ce61 100644 --- a/sw/source/core/layout/layact.cxx +++ b/sw/source/core/layout/layact.cxx @@ -572,7 +572,7 @@ void SwLayAction::InternalAction(OutputDevice* pRenderContext) break; } - FormatLayout( pPage ); + FormatLayout( pRenderContext, pPage ); XCHECKPAGE; } // #i28701# - change condition @@ -755,7 +755,7 @@ void SwLayAction::InternalAction(OutputDevice* pRenderContext) break; } - FormatLayout( pPg ); + FormatLayout( pRenderContext, pPg ); XCHECKPAGE; } @@ -1026,7 +1026,7 @@ bool SwLayAction::IsShortCut( SwPageFrm *&prPage ) } } else - FormatLayout( prPage ); + FormatLayout( pSh->GetOut(), prPage ); if ( IsAgain() ) return false; } @@ -1216,7 +1216,7 @@ bool SwLayAction::IsShortCut( SwPageFrm *&prPage ) } // OD 15.11.2002 #105155# - introduce support for vertical layout -bool SwLayAction::FormatLayout( SwLayoutFrm *pLay, bool bAddRect ) +bool SwLayAction::FormatLayout( OutputDevice *pRenderContext, SwLayoutFrm *pLay, bool bAddRect ) { OSL_ENSURE( !IsAgain(), "Attention to the invalid page." ); if ( IsAgain() ) @@ -1236,7 +1236,7 @@ bool SwLayAction::FormatLayout( SwLayoutFrm *pLay, bool bAddRect ) SwRect aOldRect( aOldFrame ); if( pLay->IsPageFrm() ) { - aOldRect = static_cast<SwPageFrm*>(pLay)->GetBoundRect(pLay->getRootFrm()->GetCurrShell()->GetOut()); + aOldRect = static_cast<SwPageFrm*>(pLay)->GetBoundRect(pRenderContext); } pLay->Calc(); @@ -1264,7 +1264,7 @@ bool SwLayAction::FormatLayout( SwLayoutFrm *pLay, bool bAddRect ) if ( pLay->IsPageFrm() ) { SwPageFrm* pPageFrm = static_cast<SwPageFrm*>(pLay); - aPaint = pPageFrm->GetBoundRect(pPageFrm->getRootFrm()->GetCurrShell()->GetOut()); + aPaint = pPageFrm->GetBoundRect(pRenderContext); } bool bPageInBrowseMode = pLay->IsPageFrm(); @@ -1320,7 +1320,7 @@ bool SwLayAction::FormatLayout( SwLayoutFrm *pLay, bool bAddRect ) if(pSh) { SwPageFrm::GetBorderAndShadowBoundRect(aPageRect, pSh, - pSh->GetOut(), + pRenderContext, aPageRect, pPageFrm->IsLeftShadowNeeded(), pPageFrm->IsRightShadowNeeded(), pPageFrm->SidebarPosition() == sw::sidebarwindows::SidebarPosition::RIGHT); } @@ -1335,7 +1335,7 @@ bool SwLayAction::FormatLayout( SwLayoutFrm *pLay, bool bAddRect ) pImp->GetShell()->AddPaintRect( aSpaceToPrevPage ); if (pSh) - pSh->GetOut()->DrawRect( aSpaceToPrevPage.SVRect() ); + pRenderContext->DrawRect( aSpaceToPrevPage.SVRect() ); // left aSpaceToPrevPage = aPageRect; @@ -1399,7 +1399,7 @@ bool SwLayAction::FormatLayout( SwLayoutFrm *pLay, bool bAddRect ) bTabChanged |= FormatLayoutTab( static_cast<SwTabFrm*>(pLow), bAddRect ); // Skip the ones already registered for deletion else if( !pLow->IsSctFrm() || static_cast<SwSectionFrm*>(pLow)->GetSection() ) - bChanged |= FormatLayout( static_cast<SwLayoutFrm*>(pLow), bAddRect ); + bChanged |= FormatLayout( pRenderContext, static_cast<SwLayoutFrm*>(pLow), bAddRect ); } else if ( pImp->GetShell()->IsPaintLocked() ) // Shortcut to minimize the cycles. With Lock, the @@ -1413,7 +1413,7 @@ bool SwLayAction::FormatLayout( SwLayoutFrm *pLay, bool bAddRect ) // OD 11.11.2002 #104414# - add complete frame area as paint area, if frame // area has been already added and after formatting its lowers the frame area // is enlarged. - SwRect aBoundRect(pLay->IsPageFrm() ? static_cast<SwPageFrm*>(pLay)->GetBoundRect(pLay->getRootFrm()->GetCurrShell()->GetOut()) : pLay->Frm() ); + SwRect aBoundRect(pLay->IsPageFrm() ? static_cast<SwPageFrm*>(pLay)->GetBoundRect(pRenderContext) : pLay->Frm() ); if ( bAlreadyPainted && ( aBoundRect.Width() > aFrmAtCompletePaint.Width() || @@ -1467,7 +1467,7 @@ bool SwLayAction::FormatLayoutFly( SwFlyFrm* pFly ) if ( pLow->IsTabFrm() ) bTabChanged |= FormatLayoutTab( static_cast<SwTabFrm*>(pLow), bAddRect ); else - bChanged |= FormatLayout( static_cast<SwLayoutFrm*>(pLow), bAddRect ); + bChanged |= FormatLayout( pImp->GetShell()->GetOut(), static_cast<SwLayoutFrm*>(pLow), bAddRect ); } pLow = pLow->GetNext(); } @@ -1614,7 +1614,7 @@ bool SwLayAction::FormatLayoutTab( SwTabFrm *pTab, bool bAddRect ) SwLayoutFrm *pLow = static_cast<SwLayoutFrm*>(pTab->Lower()); while ( pLow ) { - bChanged |= FormatLayout( pLow, bAddRect ); + bChanged |= FormatLayout( pImp->GetShell()->GetOut(), pLow, bAddRect ); if ( IsAgain() ) return false; pLow = static_cast<SwLayoutFrm*>(pLow->GetNext()); commit 209b08a25e997797ab7bfda5b3675e41bec96f2d Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 14:13:44 2015 +0200 SwLayAction::Action: use vcl::RenderContext Change-Id: I4fb6c42da0c5defa1d5da4cf6f3a13d11388c88d (cherry picked from commit 08b3b6ed6c4d8599c9bb75719974c710462f2764) diff --git a/sw/source/core/inc/layact.hxx b/sw/source/core/inc/layact.hxx index e85ff36..53e3c25 100644 --- a/sw/source/core/inc/layact.hxx +++ b/sw/source/core/inc/layact.hxx @@ -154,7 +154,7 @@ public: inline void SetCheckPageNum( sal_uInt16 nNew ); inline void SetCheckPageNumDirect( sal_uInt16 nNew ) { nCheckPageNum = nNew; } - void Action(); // here it begins + void Action(OutputDevice* pRenderContext); // here it begins void Reset(); // back to CTor-defaults bool IsAgain() const { return bAgain; } diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx index 9895e74..2845c03 100644 --- a/sw/source/core/layout/layact.cxx +++ b/sw/source/core/layout/layact.cxx @@ -341,7 +341,7 @@ bool SwLayAction::RemoveEmptyBrowserPages() return bRet; } -void SwLayAction::Action() +void SwLayAction::Action(OutputDevice* pRenderContext) { bActionInProgress = true; @@ -366,12 +366,12 @@ void SwLayAction::Action() if ( IsCalcLayout() ) SetCheckPages( false ); - InternalAction(pImp->GetShell()->GetOut()); + InternalAction(pRenderContext); bAgain |= RemoveEmptyBrowserPages(); while ( IsAgain() ) { bAgain = bNextCycle = false; - InternalAction(pImp->GetShell()->GetOut()); + InternalAction(pRenderContext); bAgain |= RemoveEmptyBrowserPages(); } pRoot->DeleteEmptySct(); @@ -2165,7 +2165,7 @@ SwLayIdle::SwLayIdle( SwRootFrm *pRt, SwViewShellImp *pI ) : aAction.SetInputType( VCL_INPUT_ANY ); aAction.SetIdle( true ); aAction.SetWaitAllowed( false ); - aAction.Action(); + aAction.Action(pImp->GetShell()->GetOut()); bInterrupt = aAction.IsInterrupt(); } diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index 8fe70ac..bcec037 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -3236,7 +3236,7 @@ void SwRootFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, S aAction.SetPaint( false ); aAction.SetComplete( false ); aAction.SetReschedule( gProp.pSProgress != nullptr ); - aAction.Action(); + aAction.Action(&rRenderContext); ResetTurboFlag(); if ( !pSh->ActionPend() ) pSh->Imp()->DelRegion(); diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index 8cf274096..89940c6 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -283,7 +283,7 @@ void SwViewShell::ImplEndAction( const bool bIdleEnd ) if ( mnLockPaint ) aAction.SetPaint( false ); aAction.SetInputType( VclInputFlags::KEYBOARD ); - aAction.Action(); + aAction.Action(GetWin()); } if ( bIsShellForCheckViewLayout ) @@ -948,7 +948,7 @@ void SwViewShell::CalcLayout() aAction.SetCalcLayout( true ); aAction.SetReschedule( true ); GetDoc()->getIDocumentFieldsAccess().LockExpFields(); - aAction.Action(); + aAction.Action(GetOut()); GetDoc()->getIDocumentFieldsAccess().UnlockExpFields(); //the SetNewFieldLst() on the Doc was cut off and must be fetched again @@ -964,7 +964,7 @@ void SwViewShell::CalcLayout() GetDoc()->getIDocumentFieldsAccess().UpdatePageFields( &aMsgHint ); GetDoc()->getIDocumentFieldsAccess().UpdateExpFields(NULL, true); - aAction.Action(); + aAction.Action(GetOut()); } if ( VisArea().HasArea() ) @@ -1596,7 +1596,7 @@ bool SwViewShell::CheckInvalidForPaint( const SwRect &rRect ) // can't format frames which are locked by the outer action. This may // cause and endless loop. ++mnStartAction; - aAction.Action(); + aAction.Action(GetWin()); --mnStartAction; SwRegionRects *pRegion = Imp()->GetRegion(); diff --git a/sw/source/core/view/vprint.cxx b/sw/source/core/view/vprint.cxx index 8ef7cbf..c9dd0d4 100644 --- a/sw/source/core/view/vprint.cxx +++ b/sw/source/core/view/vprint.cxx @@ -312,7 +312,7 @@ void SwViewShell::CalcPagesForPrint( sal_uInt16 nMax ) aAction.SetWaitAllowed( false ); aAction.SetReschedule( true ); - aAction.Action(); + aAction.Action(GetOut()); maVisArea = aOldVis; //reset due to the paints Imp()->SetFirstVisPageInvalid(); commit 43dbc4d63c05785b07468456beef44f8802e1597 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 12:27:54 2015 +0200 SwLayAction::InternalAction: use vcl::RenderContext Change-Id: Icbc5e9a42cc7e7693c6584461505a3233046272c (cherry picked from commit 1a2705d16c945cdd85dd75c803039c05af0c853c) diff --git a/sw/source/core/inc/layact.hxx b/sw/source/core/inc/layact.hxx index 6977627..e85ff36 100644 --- a/sw/source/core/inc/layact.hxx +++ b/sw/source/core/inc/layact.hxx @@ -109,7 +109,7 @@ class SwLayAction bool TurboAction(); bool _TurboAction( const SwContentFrm * ); - void InternalAction(); + void InternalAction(OutputDevice* pRenderContext); static SwPageFrm *CheckFirstVisPage( SwPageFrm *pPage ); diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx index 001189f..9895e74 100644 --- a/sw/source/core/layout/layact.cxx +++ b/sw/source/core/layout/layact.cxx @@ -366,12 +366,12 @@ void SwLayAction::Action() if ( IsCalcLayout() ) SetCheckPages( false ); - InternalAction(); + InternalAction(pImp->GetShell()->GetOut()); bAgain |= RemoveEmptyBrowserPages(); while ( IsAgain() ) { bAgain = bNextCycle = false; - InternalAction(); + InternalAction(pImp->GetShell()->GetOut()); bAgain |= RemoveEmptyBrowserPages(); } pRoot->DeleteEmptySct(); @@ -442,7 +442,7 @@ static void unlockPositionOfObjects( SwPageFrm *pPageFrm ) } } -void SwLayAction::InternalAction() +void SwLayAction::InternalAction(OutputDevice* pRenderContext) { OSL_ENSURE( pRoot->Lower()->IsPageFrm(), ":-( No page below the root."); @@ -454,7 +454,7 @@ void SwLayAction::InternalAction() // number 1. If we're doing a fake formatting, the number of the first // page is the number of the first visible page. SwPageFrm *pPage = IsComplete() ? static_cast<SwPageFrm*>(pRoot->Lower()) : - pImp->GetFirstVisPage(pImp->GetShell()->GetOut()); + pImp->GetFirstVisPage(pRenderContext); if ( !pPage ) pPage = static_cast<SwPageFrm*>(pRoot->Lower()); @@ -621,7 +621,7 @@ void SwLayAction::InternalAction() if( !IsComplete() && nPreInvaPage + 2 < nFirstPageNum ) { pImp->SetFirstVisPageInvalid(); - SwPageFrm *pTmpPage = pImp->GetFirstVisPage(pImp->GetShell()->GetOut()); + SwPageFrm *pTmpPage = pImp->GetFirstVisPage(pRenderContext); nFirstPageNum = pTmpPage->GetPhyPageNum(); if( nPreInvaPage < nFirstPageNum ) { commit 46a8f3d3652571af0b9772e8bba7ee94f866b626 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 12:15:41 2015 +0200 SwPageFrm::GetHorizontalShadowRect: use vcl::RenderContext Change-Id: Ife6c7404079aa1ae10d5c2bdbe77629e0689b167 (cherry picked from commit c369f8644c45869cb1d80e5e243e445f5cb8b778) diff --git a/sw/source/core/inc/pagefrm.hxx b/sw/source/core/inc/pagefrm.hxx index 5b4f87d..99097a9 100644 --- a/sw/source/core/inc/pagefrm.hxx +++ b/sw/source/core/inc/pagefrm.hxx @@ -96,6 +96,7 @@ class SwPageFrm: public SwFootnoteBossFrm static void GetHorizontalShadowRect( const SwRect& _rPageRect, const SwViewShell* _pViewShell, + OutputDevice* pRenderContext, SwRect& _orBottomShadowRect, bool bPaintLeftShadow, bool bPaintRightShadow, diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index a438dc1..8fe70ac 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -6028,6 +6028,7 @@ bool SwPageFrm::IsLeftShadowNeeded() const */ /*static*/ void SwPageFrm::GetHorizontalShadowRect( const SwRect& _rPageRect, const SwViewShell* _pViewShell, + OutputDevice* pRenderContext, SwRect& _orHorizontalShadowRect, bool bPaintLeftShadow, bool bPaintRightShadow, @@ -6035,9 +6036,8 @@ bool SwPageFrm::IsLeftShadowNeeded() const { const SwPostItMgr *pMgr = _pViewShell->GetPostItMgr(); SwRect aAlignedPageRect( _rPageRect ); - ::SwAlignRect( aAlignedPageRect, _pViewShell, _pViewShell->GetOut() ); - SwRect aPagePxRect = - _pViewShell->GetOut()->LogicToPixel( aAlignedPageRect.SVRect() ); + ::SwAlignRect( aAlignedPageRect, _pViewShell, pRenderContext ); + SwRect aPagePxRect = pRenderContext->LogicToPixel( aAlignedPageRect.SVRect() ); long lShadowAdjustment = mnShadowPxWidth - 1; // TODO: extract this @@ -6176,7 +6176,7 @@ static void lcl_paintBitmapExToRect(vcl::RenderContext *pOut, const Point& aPoin SwRect aPaintRect; OutputDevice *pOut = _pViewShell->GetOut(); - SwPageFrm::GetHorizontalShadowRect( _rPageRect, _pViewShell, aPaintRect, bPaintLeftShadow, bPaintRightShadow, bRightSidebar ); + SwPageFrm::GetHorizontalShadowRect( _rPageRect, _pViewShell, pOut, aPaintRect, bPaintLeftShadow, bPaintRightShadow, bRightSidebar ); // Right shadow & corners if ( bPaintRightShadow ) @@ -6385,7 +6385,7 @@ static void lcl_paintBitmapExToRect(vcl::RenderContext *pOut, const Point& aPoin // Always ask for full shadow since we want a bounding rect // including at least the page frame - SwPageFrm::GetHorizontalShadowRect( _rPageRect, _pViewShell, aTmpRect, false, false, bRightSidebar ); + SwPageFrm::GetHorizontalShadowRect( _rPageRect, _pViewShell, pRenderContext, aTmpRect, false, false, bRightSidebar ); if(bLeftShadow) aPagePxRect.Left( aTmpRect.Left() - mnShadowPxWidth - 1); if(bRightShadow) aPagePxRect.Right( aTmpRect.Right() + mnShadowPxWidth + 1); commit 5f6e5910dd96015a33bde81684a11f9cba61be2e Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 12:04:26 2015 +0200 SwViewShellImp::GetFirstVisPage: use vcl::RenderContext Change-Id: I7acd380d2e199f042dca61d95596c3bc63c6a206 (cherry picked from commit cec17a4659389c5fe3a97c144d541c6aedc64d3f) diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index ee223b5..447ad41 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -1145,7 +1145,7 @@ void SwCrsrShell::GetPageNum( sal_uInt16 &rnPhyNum, sal_uInt16 &rnVirtNum, if( !bAtCrsrPos || 0 == (pCFrm = GetCurrFrm( bCalcFrm )) || 0 == (pPg = pCFrm->FindPageFrm()) ) { - pPg = Imp()->GetFirstVisPage(); + pPg = Imp()->GetFirstVisPage(GetOut()); while( pPg && pPg->IsEmptyPage() ) pPg = static_cast<const SwPageFrm *>(pPg->GetNext()); } @@ -1158,7 +1158,7 @@ sal_uInt16 SwCrsrShell::GetNextPrevPageNum( bool bNext ) { SET_CURR_SHELL( this ); // page number: first visible page or the one at the cursor - const SwPageFrm *pPg = Imp()->GetFirstVisPage(); + const SwPageFrm *pPg = Imp()->GetFirstVisPage(GetOut()); if( pPg ) { const SwTwips nPageTop = pPg->Frm().Top(); diff --git a/sw/source/core/draw/dpage.cxx b/sw/source/core/draw/dpage.cxx index fe774a1..db5707c 100644 --- a/sw/source/core/draw/dpage.cxx +++ b/sw/source/core/draw/dpage.cxx @@ -158,7 +158,7 @@ const SdrPageGridFrameList* SwDPage::GetGridFrameList( else { //The drawing demands all visible pages - const SwFrm *pPg = pSh->Imp()->GetFirstVisPage(); + const SwFrm *pPg = pSh->Imp()->GetFirstVisPage(pSh->GetOut()); if ( pPg ) do { ::InsertGridFrame( const_cast<SwDPage*>(this)->pGridLst, pPg ); diff --git a/sw/source/core/frmedt/fews.cxx b/sw/source/core/frmedt/fews.cxx index 78d406b..1a9dfd7 100644 --- a/sw/source/core/frmedt/fews.cxx +++ b/sw/source/core/frmedt/fews.cxx @@ -186,7 +186,7 @@ bool SwFEShell::GetPageNumber( long nYPos, bool bAtCrsrPos, sal_uInt16& rPhyNum, } else // first visible page { - pPage = Imp()->GetFirstVisPage(); + pPage = Imp()->GetFirstVisPage(GetOut()); if ( pPage && static_cast<const SwPageFrm*>(pPage)->IsEmptyPage() ) pPage = pPage->GetNext(); } diff --git a/sw/source/core/inc/viewimp.hxx b/sw/source/core/inc/viewimp.hxx index ecfd426..3146ec3 100644 --- a/sw/source/core/inc/viewimp.hxx +++ b/sw/source/core/inc/viewimp.hxx @@ -146,8 +146,8 @@ public: Color GetRetoucheColor() const; /// Management of the first visible Page - const SwPageFrm *GetFirstVisPage() const; - SwPageFrm *GetFirstVisPage(); + const SwPageFrm *GetFirstVisPage(OutputDevice* pRenderContext) const; + SwPageFrm *GetFirstVisPage(OutputDevice* pRenderContext); void SetFirstVisPageInvalid() { bFirstPageInvalid = true; } bool AddPaintRect( const SwRect &rRect ); diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx index ae068c8..001189f 100644 --- a/sw/source/core/layout/layact.cxx +++ b/sw/source/core/layout/layact.cxx @@ -454,7 +454,7 @@ void SwLayAction::InternalAction() // number 1. If we're doing a fake formatting, the number of the first // page is the number of the first visible page. SwPageFrm *pPage = IsComplete() ? static_cast<SwPageFrm*>(pRoot->Lower()) : - pImp->GetFirstVisPage(); + pImp->GetFirstVisPage(pImp->GetShell()->GetOut()); if ( !pPage ) pPage = static_cast<SwPageFrm*>(pRoot->Lower()); @@ -621,7 +621,7 @@ void SwLayAction::InternalAction() if( !IsComplete() && nPreInvaPage + 2 < nFirstPageNum ) { pImp->SetFirstVisPageInvalid(); - SwPageFrm *pTmpPage = pImp->GetFirstVisPage(); + SwPageFrm *pTmpPage = pImp->GetFirstVisPage(pImp->GetShell()->GetOut()); nFirstPageNum = pTmpPage->GetPhyPageNum(); if( nPreInvaPage < nFirstPageNum ) { @@ -2037,7 +2037,7 @@ bool SwLayIdle::DoIdleJob( IdleJobType eJob, bool bVisAreaOnly ) SwPageFrm *pPage; if ( bVisAreaOnly ) - pPage = pImp->GetFirstVisPage(); + pPage = pImp->GetFirstVisPage(pViewShell->GetOut()); else pPage = static_cast<SwPageFrm*>(pRoot->Lower()); diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index 9e38f1e..a438dc1 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -3256,7 +3256,7 @@ void SwRootFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, S const bool bOldAction = IsCallbackActionEnabled(); const_cast<SwRootFrm*>(this)->SetCallbackActionEnabled( false ); - const SwPageFrm *pPage = pSh->Imp()->GetFirstVisPage(); + const SwPageFrm *pPage = pSh->Imp()->GetFirstVisPage(&rRenderContext); if ( pPage->GetPrev() ) pPage = static_cast<const SwPageFrm*>(pPage->GetPrev()); const bool bBookMode = gProp.pSGlobalShell->GetViewOptions()->IsViewLayoutBookMode(); diff --git a/sw/source/core/unocore/unoflatpara.cxx b/sw/source/core/unocore/unoflatpara.cxx index a7a99b6..22fe58a 100644 --- a/sw/source/core/unocore/unoflatpara.cxx +++ b/sw/source/core/unocore/unoflatpara.cxx @@ -391,7 +391,7 @@ uno::Reference< text::XFlatParagraph > SwXFlatParagraphIterator::getNextPara() { SwViewShell* pViewShell = mpDoc->getIDocumentLayoutAccess().GetCurrentViewShell(); - SwPageFrm* pCurrentPage = pViewShell ? pViewShell->Imp()->GetFirstVisPage() : 0; + SwPageFrm* pCurrentPage = pViewShell ? pViewShell->Imp()->GetFirstVisPage(pViewShell->GetOut()) : 0; SwPageFrm* pStartPage = pCurrentPage; SwPageFrm* pStopPage = 0; diff --git a/sw/source/core/view/viewimp.cxx b/sw/source/core/view/viewimp.cxx index 08e0645..b3957c4 100644 --- a/sw/source/core/view/viewimp.cxx +++ b/sw/source/core/view/viewimp.cxx @@ -270,17 +270,17 @@ Color SwViewShellImp::GetRetoucheColor() const return aRet; } -SwPageFrm *SwViewShellImp::GetFirstVisPage() +SwPageFrm *SwViewShellImp::GetFirstVisPage(OutputDevice* pRenderContext) { if ( bFirstPageInvalid ) - SetFirstVisPage(pSh->GetOut()); + SetFirstVisPage(pRenderContext); return pFirstVisPage; } -const SwPageFrm *SwViewShellImp::GetFirstVisPage() const +const SwPageFrm *SwViewShellImp::GetFirstVisPage(OutputDevice* pRenderContext) const { if ( bFirstPageInvalid ) - const_cast<SwViewShellImp*>(this)->SetFirstVisPage(pSh->GetOut()); + const_cast<SwViewShellImp*>(this)->SetFirstVisPage(pRenderContext); return pFirstVisPage; } diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index 90de53e..8cf274096 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -1031,7 +1031,7 @@ void SwViewShell::VisPortChgd( const SwRect &rRect) //First get the old visible page, so we don't have to look //for it afterwards. - const SwFrm *pOldPage = Imp()->GetFirstVisPage(); + const SwFrm *pOldPage = Imp()->GetFirstVisPage(GetWin()); const SwRect aPrevArea( VisArea() ); const bool bFull = aPrevArea.IsEmpty(); @@ -1478,7 +1478,7 @@ void SwViewShell::PaintDesktop(vcl::RenderContext& rRenderContext, const SwRect } else { - const SwFrm *pPage = Imp()->GetFirstVisPage(); + const SwFrm *pPage = Imp()->GetFirstVisPage(&rRenderContext); //Here we have to get the previous page since //GetFirstVisPage return the current one but //there is a portion of the previous page @@ -1568,7 +1568,7 @@ bool SwViewShell::CheckInvalidForPaint( const SwRect &rRect ) if ( !GetWin() ) return false; - const SwPageFrm *pPage = Imp()->GetFirstVisPage(); + const SwPageFrm *pPage = Imp()->GetFirstVisPage(GetOut()); const SwTwips nBottom = VisArea().Bottom(); const SwTwips nRight = VisArea().Right(); bool bRet = false; commit d9369b9766fffea0b33b65713685878b2a9e579b Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 11:47:46 2015 +0200 SwViewShellImp::SetFirstVisPage: use vcl::RenderContext Change-Id: If36b6fdda54dfbe6e4eea14883d659302a1db6be (cherry picked from commit 85cd7a6c6883d4d80d583f13d923527ed5e72343) diff --git a/sw/source/core/inc/viewimp.hxx b/sw/source/core/inc/viewimp.hxx index 205938e..ecfd426 100644 --- a/sw/source/core/inc/viewimp.hxx +++ b/sw/source/core/inc/viewimp.hxx @@ -89,7 +89,7 @@ class SwViewShellImp SwPagePreviewLayout* mpPgPreviewLayout; - void SetFirstVisPage(); // Recalculate the first visible Page + void SetFirstVisPage(OutputDevice* pRenderContext); // Recalculate the first visible Page void StartAction(); // Show handle and hide void EndAction(); // Called by SwViewShell::ImplXXXAction diff --git a/sw/source/core/view/viewimp.cxx b/sw/source/core/view/viewimp.cxx index c7feb10..08e0645 100644 --- a/sw/source/core/view/viewimp.cxx +++ b/sw/source/core/view/viewimp.cxx @@ -169,7 +169,7 @@ bool SwViewShellImp::IsUpdateExpFields() return false; } -void SwViewShellImp::SetFirstVisPage() +void SwViewShellImp::SetFirstVisPage(OutputDevice* pRenderContext) { if ( pSh->mbDocSizeChgd && pSh->VisArea().Top() > pSh->GetLayout()->Frm().Height() ) { @@ -186,18 +186,18 @@ void SwViewShellImp::SetFirstVisPage() const bool bBookMode = pSwViewOption->IsViewLayoutBookMode(); SwPageFrm *pPage = static_cast<SwPageFrm*>(pSh->GetLayout()->Lower()); - SwRect aPageRect = pPage->GetBoundRect(pSh->GetOut()); + SwRect aPageRect = pPage->GetBoundRect(pRenderContext); float fAmount = pSh->VisArea().Height() * 0.43; while ( pPage && aPageRect.Bottom() < pSh->VisArea().Top() + fAmount ) { pPage = static_cast<SwPageFrm*>(pPage->GetNext()); if ( pPage ) { - aPageRect = pPage->GetBoundRect(pSh->GetOut()); + aPageRect = pPage->GetBoundRect(pRenderContext); if ( bBookMode && pPage->IsEmptyPage() ) { const SwPageFrm& rFormatPage = pPage->GetFormatPage(); - aPageRect.SSize() = rFormatPage.GetBoundRect(pSh->GetOut()).SSize(); + aPageRect.SSize() = rFormatPage.GetBoundRect(pRenderContext).SSize(); } } } @@ -273,14 +273,14 @@ Color SwViewShellImp::GetRetoucheColor() const SwPageFrm *SwViewShellImp::GetFirstVisPage() { if ( bFirstPageInvalid ) - SetFirstVisPage(); + SetFirstVisPage(pSh->GetOut()); return pFirstVisPage; } const SwPageFrm *SwViewShellImp::GetFirstVisPage() const { if ( bFirstPageInvalid ) - const_cast<SwViewShellImp*>(this)->SetFirstVisPage(); + const_cast<SwViewShellImp*>(this)->SetFirstVisPage(pSh->GetOut()); return pFirstVisPage; } commit c926d60ab00174ad3359c5d44fc1216a4e0c22d6 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 11:44:01 2015 +0200 sw: outline SwViewShellImp::GetFirstVisPage() methods Change-Id: Ib506b912752a16c514958896aa16b310f8e09200 (cherry picked from commit 7b6329479eeb3c416396404c0d371b7aab59dd64) diff --git a/sw/source/core/inc/viewimp.hxx b/sw/source/core/inc/viewimp.hxx index 2028ead..205938e 100644 --- a/sw/source/core/inc/viewimp.hxx +++ b/sw/source/core/inc/viewimp.hxx @@ -146,8 +146,8 @@ public: Color GetRetoucheColor() const; /// Management of the first visible Page - inline const SwPageFrm *GetFirstVisPage() const; - inline SwPageFrm *GetFirstVisPage(); + const SwPageFrm *GetFirstVisPage() const; + SwPageFrm *GetFirstVisPage(); void SetFirstVisPageInvalid() { bFirstPageInvalid = true; } bool AddPaintRect( const SwRect &rRect ); @@ -272,20 +272,6 @@ public: void FireAccessibleEvents(); }; -inline SwPageFrm *SwViewShellImp::GetFirstVisPage() -{ - if ( bFirstPageInvalid ) - SetFirstVisPage(); - return pFirstVisPage; -} - -inline const SwPageFrm *SwViewShellImp::GetFirstVisPage() const -{ - if ( bFirstPageInvalid ) - const_cast<SwViewShellImp*>(this)->SetFirstVisPage(); - return pFirstVisPage; -} - inline SwAccessibleMap& SwViewShellImp::GetAccessibleMap() { if( !pAccMap ) diff --git a/sw/source/core/view/viewimp.cxx b/sw/source/core/view/viewimp.cxx index 24629c7..c7feb10 100644 --- a/sw/source/core/view/viewimp.cxx +++ b/sw/source/core/view/viewimp.cxx @@ -270,6 +270,20 @@ Color SwViewShellImp::GetRetoucheColor() const return aRet; } +SwPageFrm *SwViewShellImp::GetFirstVisPage() +{ + if ( bFirstPageInvalid ) + SetFirstVisPage(); + return pFirstVisPage; +} + +const SwPageFrm *SwViewShellImp::GetFirstVisPage() const +{ + if ( bFirstPageInvalid ) + const_cast<SwViewShellImp*>(this)->SetFirstVisPage(); + return pFirstVisPage; +} + // create page preview layout void SwViewShellImp::InitPagePreviewLayout() { commit cd2e2330914fa22df05b275d2ccd64f4e0442ffa Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 11:31:55 2015 +0200 SwPageFrm::GetBoundRect: use vcl::RenderContext Change-Id: Id9e9aa312d8fd4e0d776b41c9cca8073fa57b6fa (cherry picked from commit 3b7c803b1b2f5d13f5ca225a9d4aabab348c7786) diff --git a/sw/source/core/inc/pagefrm.hxx b/sw/source/core/inc/pagefrm.hxx index 58559fd..5b4f87d 100644 --- a/sw/source/core/inc/pagefrm.hxx +++ b/sw/source/core/inc/pagefrm.hxx @@ -139,7 +139,7 @@ public: inline const SwContentFrm *FindFirstBodyContent() const; inline const SwContentFrm *FindLastBodyContent() const; - SwRect GetBoundRect() const; + SwRect GetBoundRect(OutputDevice* pOutputDevice) const; // Specialized GetContentPos() for Field in Frames void GetContentPosition( const Point &rPt, SwPosition &rPos ) const; diff --git a/sw/source/core/layout/anchoreddrawobject.cxx b/sw/source/core/layout/anchoreddrawobject.cxx index 1de3412..5a70d5b 100644 --- a/sw/source/core/layout/anchoreddrawobject.cxx +++ b/sw/source/core/layout/anchoreddrawobject.cxx @@ -640,7 +640,7 @@ const SwRect SwAnchoredDrawObject::GetObjBoundRect() const // Exclude margins. aPageRect = GetPageFrm()->Prt().SVRect(); else - aPageRect = GetPageFrm( )->GetBoundRect( ).SVRect(); + aPageRect = GetPageFrm( )->GetBoundRect( GetPageFrm()->getRootFrm()->GetCurrShell()->GetOut() ).SVRect(); nTargetWidth = aPageRect.GetWidth( ) * (*GetDrawObj( )->GetRelativeWidth()); } @@ -652,7 +652,7 @@ const SwRect SwAnchoredDrawObject::GetObjBoundRect() const // Exclude margins. aPageRect = GetPageFrm()->Prt().SVRect(); else - aPageRect = GetPageFrm( )->GetBoundRect( ).SVRect(); + aPageRect = GetPageFrm( )->GetBoundRect( GetPageFrm()->getRootFrm()->GetCurrShell()->GetOut() ).SVRect(); nTargetHeight = aPageRect.GetHeight( ) * (*GetDrawObj( )->GetRelativeHeight()); } diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx index efb23c9..ae068c8 100644 --- a/sw/source/core/layout/layact.cxx +++ b/sw/source/core/layout/layact.cxx @@ -1236,7 +1236,7 @@ bool SwLayAction::FormatLayout( SwLayoutFrm *pLay, bool bAddRect ) SwRect aOldRect( aOldFrame ); if( pLay->IsPageFrm() ) { - aOldRect = static_cast<SwPageFrm*>(pLay)->GetBoundRect(); + aOldRect = static_cast<SwPageFrm*>(pLay)->GetBoundRect(pLay->getRootFrm()->GetCurrShell()->GetOut()); } pLay->Calc(); @@ -1264,7 +1264,7 @@ bool SwLayAction::FormatLayout( SwLayoutFrm *pLay, bool bAddRect ) if ( pLay->IsPageFrm() ) { SwPageFrm* pPageFrm = static_cast<SwPageFrm*>(pLay); - aPaint = pPageFrm->GetBoundRect(); + aPaint = pPageFrm->GetBoundRect(pPageFrm->getRootFrm()->GetCurrShell()->GetOut()); } bool bPageInBrowseMode = pLay->IsPageFrm(); @@ -1413,7 +1413,7 @@ bool SwLayAction::FormatLayout( SwLayoutFrm *pLay, bool bAddRect ) // OD 11.11.2002 #104414# - add complete frame area as paint area, if frame // area has been already added and after formatting its lowers the frame area // is enlarged. - SwRect aBoundRect(pLay->IsPageFrm() ? static_cast<SwPageFrm*>(pLay)->GetBoundRect() : pLay->Frm() ); + SwRect aBoundRect(pLay->IsPageFrm() ? static_cast<SwPageFrm*>(pLay)->GetBoundRect(pLay->getRootFrm()->GetCurrShell()->GetOut()) : pLay->Frm() ); if ( bAlreadyPainted && ( aBoundRect.Width() > aFrmAtCompletePaint.Width() || diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index 784627b..9e38f1e 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -6393,7 +6393,7 @@ static void lcl_paintBitmapExToRect(vcl::RenderContext *pOut, const Point& aPoin _orBorderAndShadowBoundRect = pRenderContext->PixelToLogic( aPagePxRect.SVRect() ); } -SwRect SwPageFrm::GetBoundRect() const +SwRect SwPageFrm::GetBoundRect(OutputDevice* pOutputDevice) const { const SwViewShell *pSh = getRootFrm()->GetCurrShell(); SwRect aPageRect( Frm() ); @@ -6403,7 +6403,7 @@ SwRect SwPageFrm::GetBoundRect() const return SwRect( Point(0, 0), Size(0, 0) ); } - SwPageFrm::GetBorderAndShadowBoundRect( aPageRect, pSh, pSh->GetOut(), aResult, + SwPageFrm::GetBorderAndShadowBoundRect( aPageRect, pSh, pOutputDevice, aResult, IsLeftShadowNeeded(), IsRightShadowNeeded(), SidebarPosition() == sw::sidebarwindows::SidebarPosition::RIGHT ); return aResult; } diff --git a/sw/source/core/view/viewimp.cxx b/sw/source/core/view/viewimp.cxx index 6f9068a..24629c7 100644 --- a/sw/source/core/view/viewimp.cxx +++ b/sw/source/core/view/viewimp.cxx @@ -186,18 +186,18 @@ void SwViewShellImp::SetFirstVisPage() const bool bBookMode = pSwViewOption->IsViewLayoutBookMode(); SwPageFrm *pPage = static_cast<SwPageFrm*>(pSh->GetLayout()->Lower()); - SwRect aPageRect = pPage->GetBoundRect(); + SwRect aPageRect = pPage->GetBoundRect(pSh->GetOut()); float fAmount = pSh->VisArea().Height() * 0.43; while ( pPage && aPageRect.Bottom() < pSh->VisArea().Top() + fAmount ) { pPage = static_cast<SwPageFrm*>(pPage->GetNext()); if ( pPage ) { - aPageRect = pPage->GetBoundRect(); + aPageRect = pPage->GetBoundRect(pSh->GetOut()); if ( bBookMode && pPage->IsEmptyPage() ) { const SwPageFrm& rFormatPage = pPage->GetFormatPage(); - aPageRect.SSize() = rFormatPage.GetBoundRect().SSize(); + aPageRect.SSize() = rFormatPage.GetBoundRect(pSh->GetOut()).SSize(); } } } diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index 5825a62..90de53e 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -1078,11 +1078,11 @@ void SwViewShell::VisPortChgd( const SwRect &rRect) while ( pPage && pPage->Frm().Top() <= nBottom ) { - SwRect aPageRect( pPage->GetBoundRect() ); + SwRect aPageRect( pPage->GetBoundRect(GetWin()) ); if ( bBookMode ) { const SwPageFrm& rFormatPage = static_cast<const SwPageFrm*>(pPage)->GetFormatPage(); - aPageRect.SSize() = rFormatPage.GetBoundRect().SSize(); + aPageRect.SSize() = rFormatPage.GetBoundRect(GetWin()).SSize(); } // OD 12.02.2003 #i9719#, #105645# - consider new border and shadow width diff --git a/sw/source/uibase/docvw/PageBreakWin.cxx b/sw/source/uibase/docvw/PageBreakWin.cxx index db26491..a9b020f 100644 --- a/sw/source/uibase/docvw/PageBreakWin.cxx +++ b/sw/source/uibase/docvw/PageBreakWin.cxx @@ -340,7 +340,7 @@ void SwPageBreakWin::UpdatePosition( const Point* pEvtPt ) while ( pPrevPage && ( ( pPrevPage->Frm().Top( ) == pPageFrm->Frm().Top( ) ) || static_cast< const SwPageFrm* >( pPrevPage )->IsEmptyPage( ) ) ); - Rectangle aBoundRect = GetEditWin()->LogicToPixel( pPageFrm->GetBoundRect().SVRect() ); + Rectangle aBoundRect = GetEditWin()->LogicToPixel( pPageFrm->GetBoundRect(GetEditWin()).SVRect() ); Rectangle aFrmRect = GetEditWin()->LogicToPixel( pPageFrm->Frm().SVRect() ); long nYLineOffset = ( aBoundRect.Top() + aFrmRect.Top() ) / 2; commit 56422fa26e3b3116b283628e0782ab4bc592f886 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 11:18:01 2015 +0200 SwPageFrm::GetBorderAndShadowBoundRect: use vcl::RenderContext Change-Id: If861aa0a579eb953cd2fc7b790b3514ab1d0ffd0 (cherry picked from commit d7dd8bb3bdd0fee44d6704cbf34d4a39cd7a3d29) diff --git a/sw/source/core/inc/pagefrm.hxx b/sw/source/core/inc/pagefrm.hxx index 1023bee..58559fd 100644 --- a/sw/source/core/inc/pagefrm.hxx +++ b/sw/source/core/inc/pagefrm.hxx @@ -300,6 +300,7 @@ public: */ static void GetBorderAndShadowBoundRect( const SwRect& _rPageRect, const SwViewShell* _pViewShell, + OutputDevice* pRenderContext, SwRect& _orBorderAndShadowBoundRect, const bool bLeftShadow, const bool bRightShadow, diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx index 4c61de4..efb23c9 100644 --- a/sw/source/core/layout/layact.cxx +++ b/sw/source/core/layout/layact.cxx @@ -1320,6 +1320,7 @@ bool SwLayAction::FormatLayout( SwLayoutFrm *pLay, bool bAddRect ) if(pSh) { SwPageFrm::GetBorderAndShadowBoundRect(aPageRect, pSh, + pSh->GetOut(), aPageRect, pPageFrm->IsLeftShadowNeeded(), pPageFrm->IsRightShadowNeeded(), pPageFrm->SidebarPosition() == sw::sidebarwindows::SidebarPosition::RIGHT); } diff --git a/sw/source/core/layout/pagechg.cxx b/sw/source/core/layout/pagechg.cxx index 4dd76a0..933ef1d 100644 --- a/sw/source/core/layout/pagechg.cxx +++ b/sw/source/core/layout/pagechg.cxx @@ -259,7 +259,7 @@ void SwPageFrm::DestroyImpl() // including border and shadow area. const bool bRightSidebar = (SidebarPosition() == sw::sidebarwindows::SidebarPosition::RIGHT); SwRect aRetoucheRect; - SwPageFrm::GetBorderAndShadowBoundRect( Frm(), pSh, aRetoucheRect, IsLeftShadowNeeded(), IsRightShadowNeeded(), bRightSidebar ); + SwPageFrm::GetBorderAndShadowBoundRect( Frm(), pSh, pSh->GetOut(), aRetoucheRect, IsLeftShadowNeeded(), IsRightShadowNeeded(), bRightSidebar ); pSh->AddPaintRect( aRetoucheRect ); } } @@ -622,7 +622,7 @@ void SwPageFrm::_UpdateAttr( const SfxPoolItem *pOld, const SfxPoolItem *pNew, // page frame for determine 'old' rectangle - it's used for invalidating. const bool bRightSidebar = (SidebarPosition() == sw::sidebarwindows::SidebarPosition::RIGHT); SwRect aOldRectWithBorderAndShadow; - SwPageFrm::GetBorderAndShadowBoundRect( aOldPageFrmRect, pSh, aOldRectWithBorderAndShadow, + SwPageFrm::GetBorderAndShadowBoundRect( aOldPageFrmRect, pSh, pSh->GetOut(), aOldRectWithBorderAndShadow, IsLeftShadowNeeded(), IsRightShadowNeeded(), bRightSidebar ); pSh->InvalidateWindows( aOldRectWithBorderAndShadow ); } diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index beec5b1..784627b 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -3294,7 +3294,7 @@ void SwRootFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, S if ( !pPage->IsEmptyPage() ) { SwRect aPaintRect; - SwPageFrm::GetBorderAndShadowBoundRect( pPage->Frm(), pSh, aPaintRect, + SwPageFrm::GetBorderAndShadowBoundRect( pPage->Frm(), pSh, &rRenderContext, aPaintRect, bPaintLeftShadow, bPaintRightShadow, bRightSidebar ); if ( aRect.IsOver( aPaintRect ) ) @@ -3458,7 +3458,7 @@ void SwRootFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, S const SwPageFrm& rFormatPage = pPage->GetFormatPage(); aEmptyPageRect.SSize() = rFormatPage.Frm().SSize(); - SwPageFrm::GetBorderAndShadowBoundRect( aEmptyPageRect, pSh, aPaintRect, + SwPageFrm::GetBorderAndShadowBoundRect( aEmptyPageRect, pSh, &rRenderContext, aPaintRect, bPaintLeftShadow, bPaintRightShadow, bRightSidebar ); aPaintRect._Intersection( aRect ); @@ -6368,6 +6368,7 @@ static void lcl_paintBitmapExToRect(vcl::RenderContext *pOut, const Point& aPoin */ /*static*/ void SwPageFrm::GetBorderAndShadowBoundRect( const SwRect& _rPageRect, const SwViewShell* _pViewShell, + OutputDevice* pRenderContext, SwRect& _orBorderAndShadowBoundRect, bool bLeftShadow, bool bRightShadow, @@ -6375,9 +6376,8 @@ static void lcl_paintBitmapExToRect(vcl::RenderContext *pOut, const Point& aPoin ) { SwRect aAlignedPageRect( _rPageRect ); - ::SwAlignRect( aAlignedPageRect, _pViewShell, _pViewShell->GetOut() ); - SwRect aPagePxRect = - _pViewShell->GetOut()->LogicToPixel( aAlignedPageRect.SVRect() ); + ::SwAlignRect( aAlignedPageRect, _pViewShell, pRenderContext ); + SwRect aPagePxRect = pRenderContext->LogicToPixel( aAlignedPageRect.SVRect() ); aPagePxRect.Bottom( aPagePxRect.Bottom() + mnShadowPxWidth + 1 ); aPagePxRect.Top( aPagePxRect.Top() - mnShadowPxWidth - 1 ); @@ -6390,7 +6390,7 @@ static void lcl_paintBitmapExToRect(vcl::RenderContext *pOut, const Point& aPoin if(bLeftShadow) aPagePxRect.Left( aTmpRect.Left() - mnShadowPxWidth - 1); if(bRightShadow) aPagePxRect.Right( aTmpRect.Right() + mnShadowPxWidth + 1); - _orBorderAndShadowBoundRect = _pViewShell->GetOut()->PixelToLogic( aPagePxRect.SVRect() ); + _orBorderAndShadowBoundRect = pRenderContext->PixelToLogic( aPagePxRect.SVRect() ); } SwRect SwPageFrm::GetBoundRect() const @@ -6403,7 +6403,7 @@ SwRect SwPageFrm::GetBoundRect() const return SwRect( Point(0, 0), Size(0, 0) ); } - SwPageFrm::GetBorderAndShadowBoundRect( aPageRect, pSh, aResult, + SwPageFrm::GetBorderAndShadowBoundRect( aPageRect, pSh, pSh->GetOut(), aResult, IsLeftShadowNeeded(), IsRightShadowNeeded(), SidebarPosition() == sw::sidebarwindows::SidebarPosition::RIGHT ); return aResult; } diff --git a/sw/source/core/view/pagepreviewlayout.cxx b/sw/source/core/view/pagepreviewlayout.cxx index b8bb276..e24f1c0 100644 --- a/sw/source/core/view/pagepreviewlayout.cxx +++ b/sw/source/core/view/pagepreviewlayout.cxx @@ -1100,7 +1100,7 @@ bool SwPagePreviewLayout::Paint(vcl::RenderContext& rRenderContext, const Rectan // paint page border and shadow { SwRect aPageBorderRect; - SwPageFrm::GetBorderAndShadowBoundRect( SwRect( aPageRect ), &mrParentViewShell, aPageBorderRect, + SwPageFrm::GetBorderAndShadowBoundRect( SwRect( aPageRect ), &mrParentViewShell, &rRenderContext, aPageBorderRect, (*aPageIter)->pPage->IsLeftShadowNeeded(), (*aPageIter)->pPage->IsRightShadowNeeded(), true ); const vcl::Region aDLRegion(aPageBorderRect.SVRect()); mrParentViewShell.DLPrePaint2(aDLRegion); commit 804e5dc4c02cfafd8a469aa54c60a30d4cd2ad62 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 09:53:02 2015 +0200 SwAlignRect: use vcl::RenderContext If the caller has a vcl::RenderContext already, use it. Otherwise just use GetOut() on the shell in the caller for now. (cherry picked from commit 702cb2b28431d4acec302af20169fbb447a2980a) Conflicts: sw/source/core/crsr/viscrs.cxx Change-Id: I8070dd3d6622d211885067514d6eb728716830ee diff --git a/sw/source/core/crsr/viscrs.cxx b/sw/source/core/crsr/viscrs.cxx index c3d591c..3e92ce5 100644 --- a/sw/source/core/crsr/viscrs.cxx +++ b/sw/source/core/crsr/viscrs.cxx @@ -167,7 +167,7 @@ void SwVisCrsr::_SetPosAndShow() if( aRect.Height() ) { ::SwCalcPixStatics( m_pCrsrShell->GetOut() ); - ::SwAlignRect( aRect, (SwViewShell*)m_pCrsrShell ); + ::SwAlignRect( aRect, static_cast<SwViewShell const *>(m_pCrsrShell), m_pCrsrShell->GetOut() ); } if( !m_pCrsrShell->IsOverwriteCrsr() || m_bIsDragCrsr || m_pCrsrShell->IsSelection() ) diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx index 4cd00c5..f72d7c7 100644 --- a/sw/source/core/doc/notxtfrm.cxx +++ b/sw/source/core/doc/notxtfrm.cxx @@ -848,7 +848,7 @@ void SwNoTextFrm::PaintPicture( vcl::RenderContext* pOut, const SwRect &rGrfArea // Use aligned rectangle <aAlignedGrfArea> instead of <rGrfArea> in // the following code. SwRect aAlignedGrfArea = rGrfArea; - ::SwAlignRect( aAlignedGrfArea, pShell ); + ::SwAlignRect( aAlignedGrfArea, pShell, pOut ); if( !bIsChart ) { diff --git a/sw/source/core/inc/frmtool.hxx b/sw/source/core/inc/frmtool.hxx index cc86fdc..23a2226 100644 --- a/sw/source/core/inc/frmtool.hxx +++ b/sw/source/core/inc/frmtool.hxx @@ -79,7 +79,7 @@ void paintGraphicUsingPrimitivesHelper( // method to align rectangle. // Created declaration here to avoid <extern> declarations -void SwAlignRect( SwRect &rRect, const SwViewShell *pSh ); +void SwAlignRect( SwRect &rRect, const SwViewShell *pSh, const vcl::RenderContext* pRenderContext ); // method to align graphic rectangle // Created declaration here to avoid <extern> declarations diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index 3aff68a..beec5b1 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -1234,7 +1234,7 @@ void SwSubsRects::PaintSubsidiary( OutputDevice *pOut, * that the border "leaves its original pixel", if it has to * No prior adjustments for odd relation between pixel and twip */ -void SwAlignRect( SwRect &rRect, const SwViewShell *pSh ) +void SwAlignRect( SwRect &rRect, const SwViewShell *pSh, const vcl::RenderContext* pRenderContext ) { if( !rRect.HasArea() ) return; @@ -1248,7 +1248,7 @@ void SwAlignRect( SwRect &rRect, const SwViewShell *pSh ) } const vcl::RenderContext *pOut = gProp.bSFlyMetafile ? - gProp.pSFlyMetafileOut.get() : pSh->GetOut(); + gProp.pSFlyMetafileOut.get() : pRenderContext; // Hold original rectangle in pixel const Rectangle aOrgPxRect = pOut->LogicToPixel( rRect.SVRect() ); @@ -1509,7 +1509,7 @@ static void lcl_CalcBorderRect( SwRect &rRect, const SwFrm *pFrm, } } - ::SwAlignRect( rRect, properties.pSGlobalShell ); + ::SwAlignRect( rRect, properties.pSGlobalShell, properties.pSGlobalShell->GetOut() ); } /** @@ -1825,7 +1825,7 @@ static void lcl_DrawGraphic( const SvxBrushItem& rBrush, vcl::RenderContext *pOu // Calculate align rectangle from parameter <rGrf> and use aligned // rectangle <aAlignedGrfRect> in the following code SwRect aAlignedGrfRect = rGrf; - ::SwAlignRect( aAlignedGrfRect, &rSh ); + ::SwAlignRect( aAlignedGrfRect, &rSh, pOut ); // Change type from <bool> to <bool>. const bool bNotInside = bClip && !rOut.IsInside( aAlignedGrfRect ); @@ -2076,7 +2076,7 @@ void DrawGraphic( GraphicObject* pGraphicObj = const_cast< GraphicObject* >(pBrush->GetGraphicObject()); // calculate aligned paint rectangle SwRect aAlignedPaintRect = rOut; - ::SwAlignRect( aAlignedPaintRect, &rSh ); + ::SwAlignRect( aAlignedPaintRect, &rSh, pOutDev ); // draw background color for aligned paint rectangle lcl_DrawGraphicBackgrd( *pBrush, pOutDev, aAlignedPaintRect, *pGraphicObj, bGrfNum, gProp ); @@ -2586,7 +2586,7 @@ void SwTabFrmPainter::PaintLines(OutputDevice& rDev, const SwRect& rRect) const SwRect aUpper( pUpper->Prt() ); aUpper.Pos() += pUpper->Frm().Pos(); SwRect aUpperAligned( aUpper ); - ::SwAlignRect( aUpperAligned, gProp.pSGlobalShell ); + ::SwAlignRect( aUpperAligned, gProp.pSGlobalShell, &rDev ); while ( true ) { @@ -3478,7 +3478,7 @@ void SwRootFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, S // OD 20.02.2003 #107369# - use aligned page rectangle { SwRect aTmpPageRect( aEmptyPageRect ); - ::SwAlignRect( aTmpPageRect, pSh ); + ::SwAlignRect( aTmpPageRect, pSh, &rRenderContext ); aEmptyPageRect = aTmpPageRect; } @@ -5072,7 +5072,7 @@ void PaintCharacterBorder( const bool bJoinWithNext ) { SwRect aAlignedRect(rPaintArea); - SwAlignRect(aAlignedRect, gProp.pSGlobalShell); + SwAlignRect(aAlignedRect, gProp.pSGlobalShell, gProp.pSGlobalShell->GetOut()); bool bTop = true; bool bBottom = true; @@ -5467,7 +5467,7 @@ void SwFrm::PaintBorder( const SwRect& rRect, const SwPageFrm *pPage, //happen, that some parts won't be processed. SwRect aRect( Prt() ); aRect += Frm().Pos(); - ::SwAlignRect( aRect, gProp.pSGlobalShell ); + ::SwAlignRect( aRect, gProp.pSGlobalShell, gProp.pSGlobalShell->GetOut() ); // OD 27.09.2002 #103636# - new local boolean variable in order to // suspend border paint under special cases - see below. // NOTE: This is a fix for the implementation of feature #99657#. @@ -6035,7 +6035,7 @@ bool SwPageFrm::IsLeftShadowNeeded() const { const SwPostItMgr *pMgr = _pViewShell->GetPostItMgr(); SwRect aAlignedPageRect( _rPageRect ); - ::SwAlignRect( aAlignedPageRect, _pViewShell ); + ::SwAlignRect( aAlignedPageRect, _pViewShell, _pViewShell->GetOut() ); SwRect aPagePxRect = _pViewShell->GetOut()->LogicToPixel( aAlignedPageRect.SVRect() ); @@ -6125,7 +6125,7 @@ static void lcl_paintBitmapExToRect(vcl::RenderContext *pOut, const Point& aPoin static Color aShadowColor( COL_AUTO ); SwRect aAlignedPageRect( _rPageRect ); - ::SwAlignRect( aAlignedPageRect, _pViewShell ); + ::SwAlignRect( aAlignedPageRect, _pViewShell, _pViewShell->GetOut() ); SwRect aPagePxRect = _pViewShell->GetOut()->LogicToPixel( aAlignedPageRect.SVRect() ); if (aShadowColor != SwViewOption::GetShadowColor()) @@ -6253,7 +6253,7 @@ static void lcl_paintBitmapExToRect(vcl::RenderContext *pOut, const Point& aPoin return; SwRect aPageRect( _rPageRect ); - SwAlignRect( aPageRect, _pViewShell ); + SwAlignRect( aPageRect, _pViewShell, _pViewShell->GetOut() ); const SwPostItMgr *pMgr = _pViewShell->GetPostItMgr(); if (pMgr && pMgr->ShowNotes() && pMgr->HasNotes()) // do not show anything in print preview @@ -6375,7 +6375,7 @@ static void lcl_paintBitmapExToRect(vcl::RenderContext *pOut, const Point& aPoin ) { SwRect aAlignedPageRect( _rPageRect ); - ::SwAlignRect( aAlignedPageRect, _pViewShell ); + ::SwAlignRect( aAlignedPageRect, _pViewShell, _pViewShell->GetOut() ); SwRect aPagePxRect = _pViewShell->GetOut()->LogicToPixel( aAlignedPageRect.SVRect() ); aPagePxRect.Bottom( aPagePxRect.Bottom() + mnShadowPxWidth + 1 ); @@ -6565,7 +6565,7 @@ void SwFrm::PaintBackground( const SwRect &rRect, const SwPageFrm *pPage, (IsTextFrm() && Prt().SSize() == Frm().SSize()) ) { aRect = Frm(); - ::SwAlignRect( aRect, gProp.pSGlobalShell ); + ::SwAlignRect( aRect, gProp.pSGlobalShell, gProp.pSGlobalShell->GetOut() ); } else { @@ -6641,7 +6641,7 @@ void SwFrm::PaintBackground( const SwRect &rRect, const SwPageFrm *pPage, { if (1 < aRegion.size()) { - ::SwAlignRect( aRegion[i], gProp.pSGlobalShell ); + ::SwAlignRect( aRegion[i], gProp.pSGlobalShell, gProp.pSGlobalShell->GetOut() ); if( !aRegion[i].HasArea() ) continue; } @@ -7043,7 +7043,7 @@ void SwColumnFrm::PaintSubsidiaryLines( const SwPageFrm *, if ( pFootnoteCont ) aArea.AddBottom( pFootnoteCont->Frm().Bottom() - aArea.Bottom() ); - ::SwAlignRect( aArea, gProp.pSGlobalShell ); + ::SwAlignRect( aArea, gProp.pSGlobalShell, gProp.pSGlobalShell->GetOut() ); if ( !gProp.pSGlobalShell->GetViewOptions()->IsViewMetaChars( ) ) ProcessPrimitives( lcl_CreateColumnAreaDelimiterPrimitives( aArea ) ); @@ -7133,7 +7133,7 @@ void SwLayoutFrm::PaintSubsidiaryLines( const SwPageFrm *pPage, if ( !bUseFrmArea ) aOriginal.Pos() += Frm().Pos(); - ::SwAlignRect( aOriginal, gProp.pSGlobalShell ); + ::SwAlignRect( aOriginal, gProp.pSGlobalShell, gProp.pSGlobalShell->GetOut() ); if ( !aOriginal.IsOver( rRect ) ) return; @@ -7235,7 +7235,7 @@ void SwPageFrm::RefreshExtraData( const SwRect &rRect ) const || (sal_Int16)SW_MOD()->GetRedlineMarkPos() != text::HoriOrientation::NONE; SwRect aRect( rRect ); - ::SwAlignRect( aRect, gProp.pSGlobalShell ); + ::SwAlignRect( aRect, gProp.pSGlobalShell, gProp.pSGlobalShell->GetOut() ); if ( aRect.HasArea() ) { SwLayoutFrm::RefreshExtraData( aRect ); diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx index e07a40b..861f412 100644 --- a/sw/source/core/text/inftxt.cxx +++ b/sw/source/core/text/inftxt.cxx @@ -766,7 +766,7 @@ void SwTextPaintInfo::CalcRect( const SwLinePortion& rPor, if( aRect.HasArea() && pIntersect ) { - ::SwAlignRect( aRect, GetVsh() ); + ::SwAlignRect( aRect, GetVsh(), GetOut() ); if ( GetOut()->IsClipRegion() ) { diff --git a/sw/source/core/text/txtfly.cxx b/sw/source/core/text/txtfly.cxx index ed33e4c..ba48288 100644 --- a/sw/source/core/text/txtfly.cxx +++ b/sw/source/core/text/txtfly.cxx @@ -625,7 +625,7 @@ void SwTextFly::DrawFlyRect( OutputDevice* pOut, const SwRect &rRect, // #i68520# SwRect aFly( pAnchoredObjTmp->GetObjRect() ); // OD 24.01.2003 #106593# - ::SwAlignRect( aFly, pPage->getRootFrm()->GetCurrShell() ); + ::SwAlignRect( aFly, pPage->getRootFrm()->GetCurrShell(), pOut ); if( aFly.Width() > 0 && aFly.Height() > 0 ) aRegion -= aFly; } diff --git a/sw/source/core/view/pagepreviewlayout.cxx b/sw/source/core/view/pagepreviewlayout.cxx index 02c2af9..b8bb276 100644 --- a/sw/source/core/view/pagepreviewlayout.cxx +++ b/sw/source/core/view/pagepreviewlayout.cxx @@ -1073,7 +1073,7 @@ bool SwPagePreviewLayout::Paint(vcl::RenderContext& rRenderContext, const Rectan // OD 20.02.2003 #107369# - use aligned page rectangle { SwRect aTmpPageRect( aPageRect ); - ::SwAlignRect( aTmpPageRect, &mrParentViewShell); + ::SwAlignRect( aTmpPageRect, &mrParentViewShell, &rRenderContext ); aPageRect = aTmpPageRect.SVRect(); } pOutputDev->DrawRect( aPageRect ); @@ -1226,7 +1226,7 @@ void SwPagePreviewLayout::_PaintSelectMarkAtPage( _aSelectedPreviewPage->aPageSize ); // OD 19.02.2003 #107369# - use aligned page rectangle, as it is used for // page border and shadow paint - see <SwPageFrm::PaintBorderAndShadow(..)> - ::SwAlignRect( aPageRect, &mrParentViewShell); + ::SwAlignRect( aPageRect, &mrParentViewShell, pOutputDev ); Rectangle aPxPageRect = pOutputDev->LogicToPixel( aPageRect.SVRect() ); // draw two rectangle @@ -1271,8 +1271,8 @@ void SwPagePreviewLayout::MarkNewSelectedPage( const sal_uInt16 _nSelectedPage ) // OD 20.02.2003 #107369# - invalidate only areas of selection mark. SwRect aPageRect( pOldSelectedPreviewPage->aPreviewWinPos, pOldSelectedPreviewPage->aPageSize ); - ::SwAlignRect( aPageRect, &mrParentViewShell); OutputDevice* pOutputDev = mrParentViewShell.GetOut(); + ::SwAlignRect( aPageRect, &mrParentViewShell, pOutputDev ); Rectangle aPxPageRect = pOutputDev->LogicToPixel( aPageRect.SVRect() ); // invalidate top mark line Rectangle aInvalPxRect( aPxPageRect.Left(), aPxPageRect.Top(), commit cfa21cc3664ce3b6588c9d2090851c4bdf28ca0b Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 09:52:35 2015 +0200 SwTabFrm::Paint: use vcl::RenderContext Change-Id: Iccadf6cd95a0ed9f9ba365d117d819f065193e60 (cherry picked from commit 5cfc0e3899b51fd2751141d7f1f523803f46c8d1) diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index b83a997..3aff68a 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -4385,7 +4385,7 @@ void SwTabFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, Sw } SwTabFrmPainter aHelper(*this); - aHelper.PaintLines(*gProp.pSGlobalShell->GetOut(), rRect); + aHelper.PaintLines(rRenderContext, rRect); } SwLayoutFrm::Paint( rRenderContext, rRect ); @@ -4398,7 +4398,7 @@ void SwTabFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, Sw aTabRect.Pos() += Frm().Pos(); SwRect aTabOutRect( rRect ); aTabOutRect.Intersection( aTabRect ); - SwViewOption::DrawRect( gProp.pSGlobalShell->GetOut(), aTabOutRect, COL_LIGHTGRAY ); + SwViewOption::DrawRect( &rRenderContext, aTabOutRect, COL_LIGHTGRAY ); } const_cast<SwTabFrm*>(this)->ResetComplete(); } commit 5f33669d6f85ec525b6cdb69240429b051e25154 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 25 09:47:21 2015 +0200 SwFlyFrm::Paint: use vcl::RenderContext Change-Id: Id6bd21deda59a6eecfff39907d967b78b881a1e6 (cherry picked from commit 74768909b7aad4ac0f23e3210ea97f9dcd1fc93d) diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index 809a24d..b83a997 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -4134,9 +4134,8 @@ void SwFlyFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, Sw SwRect aRect( rRect ); aRect._Intersection( Frm() ); - OutputDevice* pOut = gProp.pSGlobalShell->GetOut(); - pOut->Push( PushFlags::CLIPREGION ); - pOut->SetClipRegion(); + rRenderContext.Push( PushFlags::CLIPREGION ); + rRenderContext.SetClipRegion(); const SwPageFrm* pPage = FindPageFrm(); const SwNoTextFrm *pNoText = Lower() && Lower()->IsNoTextFrm() @@ -4239,8 +4238,8 @@ void SwFlyFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, Sw //one. // OD 2004-04-23 #116347# - pOut->Push( PushFlags::FILLCOLOR|PushFlags::LINECOLOR ); - pOut->SetLineColor(); + rRenderContext.Push( PushFlags::FILLCOLOR|PushFlags::LINECOLOR ); + rRenderContext.SetLineColor(); pPage = FindPageFrm(); @@ -4263,20 +4262,20 @@ void SwFlyFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, Sw } if ( bContour ) { - pOut->Push(); + rRenderContext.Push(); // #i80822# // apply clip region under the same conditions, which are // used in <SwNoTextFrm::Paint(..)> to set the clip region // for painting the graphic/OLE. Thus, the clip region is // also applied for the PDF export. SwViewShell *pSh = getRootFrm()->GetCurrShell(); - if ( !pOut->GetConnectMetaFile() || !pSh || !pSh->GetWin() ) + if ( !rRenderContext.GetConnectMetaFile() || !pSh || !pSh->GetWin() ) { - pOut->SetClipRegion(vcl::Region(aPoly)); + rRenderContext.SetClipRegion(vcl::Region(aPoly)); } for ( size_t i = 0; i < aRegion.size(); ++i ) PaintBackground( aRegion[i], pPage, rAttrs, false, true ); - pOut->Pop(); + rRenderContext.Pop(); } else for ( size_t i = 0; i < aRegion.size(); ++i ) @@ -4290,7 +4289,7 @@ void SwFlyFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, Sw PaintBorder( aTmp, pPage, rAttrs ); } - pOut->Pop(); + rRenderContext.Pop(); } } @@ -4330,8 +4329,8 @@ void SwFlyFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, Sw // Add subsidiary lines of fly frame and its lowers RefreshLaySubsidiary( pPage, aRect ); // paint subsidiary lines of fly frame and its lowers - gProp.pSSpecSubsLines->PaintSubsidiary( pOut, NULL, gProp ); - gProp.pSSubsLines->PaintSubsidiary( pOut, gProp.pSLines, gProp ); + gProp.pSSpecSubsLines->PaintSubsidiary( &rRenderContext, NULL, gProp ); + gProp.pSSubsLines->PaintSubsidiary( &rRenderContext, gProp.pSLines, gProp ); if ( !bSubsLineRectsCreated ) // unlock subsidiary lines gProp.pSSubsLines->LockLines( false ); @@ -4355,12 +4354,12 @@ void SwFlyFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, Sw // OD 19.12.2002 #106318# - first paint lines added by fly frame paint // and then unlock other lines. - gProp.pSLines->PaintLines( pOut, gProp ); + gProp.pSLines->PaintLines( &rRenderContext, gProp ); gProp.pSLines->LockLines( false ); // have to paint frame borders added in heaven layer here... ProcessPrimitives(gProp.pBLines->GetBorderLines_Clear()); - pOut->Pop(); + rRenderContext.Pop(); if ( gProp.pSProgress && pNoText ) gProp.pSProgress->Reschedule(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits