From 62b0eaf37c08dd27244e77b8bc90c691b000ebd6 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 29 Apr 2014 14:17:11 +0100 Subject: Related: fdo#50697 reset the cache timeout on GetGraphic so the graphic gets swapped out Xms after the last use and not Xms after initial creation regardless of if it got used a moment earlier. Change-Id: I1458f307d090ecd8d8d031b545f23e78bf1bcb67 --- svtools/source/graphic/grfmgr.cxx | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'svtools') diff --git a/svtools/source/graphic/grfmgr.cxx b/svtools/source/graphic/grfmgr.cxx index 087d27be6872..a405ea709603 100644 --- a/svtools/source/graphic/grfmgr.cxx +++ b/svtools/source/graphic/grfmgr.cxx @@ -744,10 +744,26 @@ void GraphicObject::StopAnimation( OutputDevice* pOut, long nExtraData ) mpSimpleCache->maGraphic.StopAnimation( pOut, nExtraData ); } +void GraphicObject::ResetCacheTimeOut() +{ + if (mpSwapOutTimer) + { + mpSwapOutTimer->Stop(); + mpSwapOutTimer->Start(); + } +} + const Graphic& GraphicObject::GetGraphic() const { - if( mbAutoSwapped ) - ( (GraphicObject*) this )->ImplAutoSwapIn(); + GraphicObject *pThis = const_cast(this); + + if (mbAutoSwapped) + pThis->ImplAutoSwapIn(); + + //fdo#50697 If we've been asked to provide the graphic, then reset + //the cache timeout to start from now and not remain at the + //time of creation + pThis->ResetCacheTimeOut(); return maGraphic; } -- cgit