canvas/inc/canvas/base/sprite.hxx | 2 +- canvas/inc/canvas/spriteredrawmanager.hxx | 2 +- canvas/source/tools/spriteredrawmanager.cxx | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-)
New commits: commit 2c7e061997202df9e602e209cf40c61606582e8e Author: Thorsten Behrens <[email protected]> Date: Wed Feb 22 00:31:30 2012 +0100 Fix fdo#45219 wrong transparency for animated objects. With the attachement from said bug, and cairocanvas, sprites are displayed multiple times above each other (which, for semi- transparent sprites, lead to incorrect overall transparency) diff --git a/canvas/inc/canvas/base/sprite.hxx b/canvas/inc/canvas/base/sprite.hxx index bb3d655..38a2270 100644 --- a/canvas/inc/canvas/base/sprite.hxx +++ b/canvas/inc/canvas/base/sprite.hxx @@ -103,7 +103,7 @@ namespace canvas /** Functor providing a StrictWeakOrdering for sprite references */ - struct SpriteComparator + struct SpriteWeakOrder { bool operator()( const Sprite::Reference& rLHS, const Sprite::Reference& rRHS ) diff --git a/canvas/inc/canvas/spriteredrawmanager.hxx b/canvas/inc/canvas/spriteredrawmanager.hxx index 3bf4ca6..9dc2099 100644 --- a/canvas/inc/canvas/spriteredrawmanager.hxx +++ b/canvas/inc/canvas/spriteredrawmanager.hxx @@ -361,7 +361,7 @@ namespace canvas ::std::sort( aSortedUpdateSprites.begin(), aSortedUpdateSprites.end(), - SpriteComparator() ); + SpriteWeakOrder() ); if( isAreaUpdateOpaque( rUpdateArea, nNumSprites ) ) diff --git a/canvas/source/tools/spriteredrawmanager.cxx b/canvas/source/tools/spriteredrawmanager.cxx index 72976c1..eeb4714 100644 --- a/canvas/source/tools/spriteredrawmanager.cxx +++ b/canvas/source/tools/spriteredrawmanager.cxx @@ -233,7 +233,7 @@ namespace canvas // in line with the problem of having sprite state available // for the frame before the last frame; plus, it avoids // frequent locks of the object mutices - SpriteComparator aSpriteComparator; + SpriteWeakOrder aSpriteComparator; // put all sprites that have changed content into update areas ListOfSprites::const_iterator aCurrSprite( maSprites.begin() ); @@ -277,8 +277,7 @@ namespace canvas VectorOfSprites::iterator aEnd= ::std::unique( aUpdatableSprites.begin(), - aUpdatableSprites.end(), - aSpriteComparator ); + aUpdatableSprites.end() ); // for each unique sprite, check the change event vector, // calculate the update operation from that, and add the _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
