[Libreoffice-commits] core.git: include/vcl vcl/source
Chris Sherlock
chris.sherlock79 at gmail.com
Mon Mar 24 04:53:12 PDT 2014
include/vcl/outdev.hxx | 1 +
include/vcl/window.hxx | 1 +
vcl/source/gdi/outdev2.cxx | 13 ++++++-------
vcl/source/window/window.cxx | 10 ++++++++++
4 files changed, 18 insertions(+), 7 deletions(-)
New commits:
commit eb5242851d8242fbadca7ac8fde7b633b207ba90
Author: Chris Sherlock <chris.sherlock79 at gmail.com>
Date: Sun Mar 23 22:31:36 2014 +1100
fdo#74702 GetPaintArea protected function introduced
GetPaintArea has been introduced for Window - we intersect with the
available paintable boundary to get the actual paintable area needed.
For OutputDevice, GetPaintArea just returns the same area.
Change-Id: If38b09eb54d516d189cedf8bba15b184e6b6f7d5
Reviewed-on: https://gerrit.libreoffice.org/8727
Tested-by: Norbert Thiebaud <nthiebaud at gmail.com>
Reviewed-by: Norbert Thiebaud <nthiebaud at gmail.com>
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index e82cb1d..c1ac7f3 100644
--- a/include/vcl/outdev.hxx
+++ b/include/vcl/outdev.hxx
@@ -736,6 +736,7 @@ public:
SAL_DLLPRIVATE void ImplDrawAlpha ( const Bitmap& rBmp, const AlphaMask& rAlpha,
const Point& rDestPt, const Size& rDestSize,
const Point& rSrcPtPixel, const Size& rSrcSizePixel );
+ virtual Rectangle& GetPaintArea ( Rectangle& rDstRect );
SAL_DLLPRIVATE Bitmap ImplBlend ( Bitmap aBmp,
BitmapReadAccess* pP,
BitmapReadAccess* pA,
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 007cf88..d41f0f5 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -579,6 +579,7 @@ protected:
virtual OUString getDefaultAccessibleName() const;
virtual void CopyAreaFinal( SalTwoRect& aPosAry, sal_uInt32 nFlags);
+ virtual Rectangle& GetPaintArea ( Rectangle& rDstRect );
public:
bool HasMirroredGraphics() const;
diff --git a/vcl/source/gdi/outdev2.cxx b/vcl/source/gdi/outdev2.cxx
index 51ee483..06593b7 100644
--- a/vcl/source/gdi/outdev2.cxx
+++ b/vcl/source/gdi/outdev2.cxx
@@ -1992,6 +1992,11 @@ Bitmap OutputDevice::ImplBlend( Bitmap aBmp,
return res;
}
+Rectangle& OutputDevice::GetPaintArea( Rectangle& rDstRect )
+{
+ return rDstRect;
+}
+
void OutputDevice::ImplDrawAlpha( const Bitmap& rBmp, const AlphaMask& rAlpha,
const Point& rDestPt, const Size& rDestSize,
const Point& rSrcPtPixel, const Size& rSrcSizePixel )
@@ -2003,13 +2008,7 @@ void OutputDevice::ImplDrawAlpha( const Bitmap& rBmp, const AlphaMask& rAlpha,
const bool bHMirr = aOutSz.Width() < 0;
const bool bVMirr = aOutSz.Height() < 0;
- if( OUTDEV_WINDOW == meOutDevType )
- {
- const Region aPaintRgn( ( (Window*) this )->GetPaintRegion() );
-
- if( !aPaintRgn.IsNull() )
- aDstRect.Intersection( LogicToPixel( aPaintRgn.GetBoundRect() ) );
- }
+ aDstRect = GetPaintArea(aDstRect);
if( bHMirr )
{
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 1e6a339..49716ed 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -446,6 +446,16 @@ void Window::CopyAreaFinal( SalTwoRect& aPosAry, sal_uInt32 nFlags )
OutputDevice::CopyAreaFinal(aPosAry, nFlags);
}
+Rectangle& Window::GetPaintArea( Rectangle& rDstRect )
+{
+ const Region aPaintRgn( GetPaintRegion() );
+
+ if( !aPaintRgn.IsNull() )
+ rDstRect.Intersection( LogicToPixel( aPaintRgn.GetBoundRect() ) );
+
+ return rDstRect;
+}
+
void Window::ImplReleaseGraphics( bool bRelease )
{
DBG_TESTSOLARMUTEX();
More information about the Libreoffice-commits
mailing list