diff options
author | Chris Sherlock <chris.sherlock79@gmail.com> | 2020-05-16 19:58:18 +1000 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2020-05-17 21:34:14 +0200 |
commit | 557c6777ad33b54af28541a96bcf91596995b388 (patch) | |
tree | 881348ba8bfa3c75533606dd99957118fd84e523 /vcl | |
parent | 3913c7c18b9438e26f860a0079a6590418ced27b (diff) |
tdf#74702 vcl: extract GetOutputBoundsClipRegion()
Change-Id: Icc1b53f068b94ff3b3f26b144f366344dcbff2ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94345
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/outdev/text.cxx | 10 | ||||
-rw-r--r-- | vcl/source/window/clipping.cxx | 8 |
2 files changed, 15 insertions, 3 deletions
diff --git a/vcl/source/outdev/text.cxx b/vcl/source/outdev/text.cxx index fa0c7b128dab..34db8e6299c1 100644 --- a/vcl/source/outdev/text.cxx +++ b/vcl/source/outdev/text.cxx @@ -779,6 +779,11 @@ void OutputDevice::SetTextAlign( TextAlign eAlign ) mpAlphaVDev->SetTextAlign( eAlign ); } +vcl::Region OutputDevice::GetOutputBoundsClipRegion() const +{ + return GetClipRegion(); +} + void OutputDevice::DrawText( const Point& rStartPt, const OUString& rStr, sal_Int32 nIndex, sal_Int32 nLen, MetricVector* pVector, OUString* pDisplayText, @@ -806,9 +811,8 @@ void OutputDevice::DrawText( const Point& rStartPt, const OUString& rStr, mpMetaFile->AddAction( new MetaTextAction( rStartPt, rStr, nIndex, nLen ) ); if( pVector ) { - vcl::Region aClip( GetClipRegion() ); - if( meOutDevType == OUTDEV_WINDOW ) - aClip.Intersect( tools::Rectangle( Point(), GetOutputSize() ) ); + vcl::Region aClip(GetOutputBoundsClipRegion()); + if (mpOutDevData->mpRecordLayout) { mpOutDevData->mpRecordLayout->m_aLineIndices.push_back( mpOutDevData->mpRecordLayout->m_aDisplayText.getLength() ); diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx index 6889ee7c63e2..e2c3a37c8ccf 100644 --- a/vcl/source/window/clipping.cxx +++ b/vcl/source/window/clipping.cxx @@ -27,6 +27,14 @@ namespace vcl { +vcl::Region Window::GetOutputBoundsClipRegion() const +{ + vcl::Region aClip(GetClipRegion()); + aClip.Intersect(tools::Rectangle(Point(), GetOutputSize())); + + return aClip; +} + void Window::InitClipRegion() { DBG_TESTSOLARMUTEX(); |