diff options
author | Michael Stahl <mstahl@redhat.com> | 2014-02-02 23:59:17 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-02-04 12:34:53 +0000 |
commit | 453bd2246011e1144ce30dbbac90f3d42839a69d (patch) | |
tree | 47a1381eb50e97a4028e58f931e35588afbb89f4 /sw/source/core/graphic/ndgrf.cxx | |
parent | d05a33018794f7ec63daf4232d521fd2adcc5921 (diff) |
fdo#73300: sw: GraphicObjects are never swapped out
In SwNoTxtFrm::PaintPicture() the GraphicObjects are no longer painted
via GraphicObject::Draw() any more there is the problem that they are
not cached any more in the display cache of the GraphicManager; that
used to immediately swap out the Graphic but now they are never swapped
out. Since there appears to be no use of the GraphicManager's display
cache in the new drawinglayer based rendering path i have no idea how to
swap out the Graphic immediately; instead use the same time-out that
SdrGrafObj is using already.
This timeout is derived from the setting:
Tools->Options->LibreOffice->Memory->Graphics cache->"Remove from memory
after".
(regression from 2e5167528f7566dd9b000e50fc1610b7bf99132a)
Change-Id: I0d9b535a82646d9b6635cfb3917f74dcc3ad8720
(cherry picked from commit 2d9d20edc999ef2c2ad2ee628a6a5f27efb801d8)
Reviewed-on: https://gerrit.libreoffice.org/7810
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw/source/core/graphic/ndgrf.cxx')
-rw-r--r-- | sw/source/core/graphic/ndgrf.cxx | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx index 76644aabefe0..21cc72a4c6d9 100644 --- a/sw/source/core/graphic/ndgrf.cxx +++ b/sw/source/core/graphic/ndgrf.cxx @@ -56,6 +56,8 @@ using namespace com::sun::star; +SVX_DLLPUBLIC sal_uInt32 getCacheTimeInMs(); + SwGrfNode::SwGrfNode( const SwNodeIndex & rWhere, const OUString& rGrfName, const OUString& rFltName, @@ -69,7 +71,7 @@ SwGrfNode::SwGrfNode( mbLinkedInputStreamReady( false ), mbIsStreamReadOnly( sal_False ) { - maGrfObj.SetSwapStreamHdl( LINK( this, SwGrfNode, SwapGraphic ) ); + maGrfObj.SetSwapStreamHdl( LINK(this, SwGrfNode, SwapGraphic), getCacheTimeInMs() ); bInSwapIn = bChgTwipSize = bChgTwipSizeFromPixel = bLoadLowResGrf = bFrameInPaint = bScaleImageMap = sal_False; @@ -87,7 +89,7 @@ SwGrfNode::SwGrfNode( const SwNodeIndex & rWhere, mbLinkedInputStreamReady( false ), mbIsStreamReadOnly( sal_False ) { - maGrfObj.SetSwapStreamHdl( LINK( this, SwGrfNode, SwapGraphic ) ); + maGrfObj.SetSwapStreamHdl( LINK(this, SwGrfNode, SwapGraphic), getCacheTimeInMs() ); if( rGrfObj.HasUserData() && rGrfObj.IsSwappedOut() ) maGrfObj.SetSwapState(); bInSwapIn = bChgTwipSize = bChgTwipSizeFromPixel= bLoadLowResGrf = @@ -112,7 +114,7 @@ SwGrfNode::SwGrfNode( const SwNodeIndex & rWhere, mbLinkedInputStreamReady( false ), mbIsStreamReadOnly( sal_False ) { - maGrfObj.SetSwapStreamHdl( LINK( this, SwGrfNode, SwapGraphic ) ); + maGrfObj.SetSwapStreamHdl( LINK(this, SwGrfNode, SwapGraphic), getCacheTimeInMs() ); Graphic aGrf; aGrf.SetDefaultType(); maGrfObj.SetGraphic( aGrf, rGrfName ); |