Backport r995379:

Delete the old tileset whenever a new one is created. That prevents that kwin eats more and more pixmaps.

svn path=/branches/KDE/4.3/kdebase/workspace/; revision=995385
This commit is contained in:
Martin Gräßlin 2009-07-12 15:28:15 +00:00
parent 2feca1b673
commit 48dd6251b0

View file

@ -88,6 +88,8 @@ void renderDot(QPainter *p, const QPointF &point, qreal diameter)
OxygenClient::OxygenClient(KDecorationBridge *b, KDecorationFactory *f) OxygenClient::OxygenClient(KDecorationBridge *b, KDecorationFactory *f)
: KCommonDecorationUnstable(b, f) : KCommonDecorationUnstable(b, f)
, colorCacheInvalid_(true) , colorCacheInvalid_(true)
, shadowTiles_(NULL)
, glowTiles_(NULL)
, helper_(*globalHelper) , helper_(*globalHelper)
{ {
qAddPostRoutine(oxkwincleanupBefore); qAddPostRoutine(oxkwincleanupBefore);
@ -95,6 +97,8 @@ OxygenClient::OxygenClient(KDecorationBridge *b, KDecorationFactory *f)
OxygenClient::~OxygenClient() OxygenClient::~OxygenClient()
{ {
delete glowTiles_;
delete shadowTiles_;
} }
QString OxygenClient::visibleName() const QString OxygenClient::visibleName() const
{ {
@ -561,6 +565,9 @@ TileSet *OxygenClient::shadowTiles(const QColor& color, const QColor& glow, qrea
tileSet = new TileSet(shadow, size, size, 1, 1); tileSet = new TileSet(shadow, size, size, 1, 1);
glowTilesOption_ = opt; glowTilesOption_ = opt;
if (glowTiles_) {
delete glowTiles_;
}
glowTiles_ = tileSet; glowTiles_ = tileSet;
} else { } else {
//--------------------------------------------------------------- //---------------------------------------------------------------
@ -625,6 +632,9 @@ TileSet *OxygenClient::shadowTiles(const QColor& color, const QColor& glow, qrea
tileSet = new TileSet(shadow, size, size, 1, 1); tileSet = new TileSet(shadow, size, size, 1, 1);
shadowTilesOption_ = opt; shadowTilesOption_ = opt;
if (shadowTiles_) {
delete shadowTiles_;
}
shadowTiles_ = tileSet; shadowTiles_ = tileSet;
} }
return tileSet; return tileSet;