diff --git a/include/vcl/bitmap.hxx b/include/vcl/bitmap.hxx index f342650c0c9d..f509e1826d08 100644 --- a/include/vcl/bitmap.hxx +++ b/include/vcl/bitmap.hxx @@ -247,6 +247,7 @@ public: virtual ~Bitmap(); Bitmap& operator=( const Bitmap& rBitmap ); + Bitmap& operator=( Bitmap&& rBitmap ); inline bool operator!() const; inline bool operator==( const Bitmap& rBitmap ) const; inline bool operator!=( const Bitmap& rBitmap ) const; diff --git a/vcl/source/gdi/bitmap.cxx b/vcl/source/gdi/bitmap.cxx index 63425de16629..a2187f3eceaf 100644 --- a/vcl/source/gdi/bitmap.cxx +++ b/vcl/source/gdi/bitmap.cxx @@ -230,6 +230,15 @@ Bitmap& Bitmap::operator=( const Bitmap& rBitmap ) return *this; } +Bitmap& Bitmap::operator=( Bitmap&& rBitmap ) +{ + maPrefSize = std::move(rBitmap.maPrefSize); + maPrefMapMode = std::move(rBitmap.maPrefMapMode); + mxImpBmp = std::move(rBitmap.mxImpBmp); + + return *this; +} + bool Bitmap::IsEqual( const Bitmap& rBmp ) const { return(IsSameInstance(rBmp) || // Includes both are nullptr