Index: sfx2/source/control/bindings.cxx =================================================================== RCS file: /cvs/framework/sfx2/source/control/bindings.cxx,v retrieving revision 1.25 diff -u -p -u -r1.25 bindings.cxx --- sfx2/source/control/bindings.cxx 28 May 2003 13:25:06 -0000 1.25 +++ sfx2/source/control/bindings.cxx 28 Aug 2003 13:04:31 -0000 @@ -2624,11 +2624,17 @@ SfxItemState SfxBindings::QueryState( sa pDisp = (SfxOfficeDispatch*)(nImplementation); } - if ( !pDisp || pDisp->IsInterceptDispatch() ) + if ( !pDisp || pDisp->IsInterceptDispatch() && pCache) { SfxItemState eState = SFX_ITEM_SET; SfxPoolItem *pItem=NULL; - BindDispatch_Impl *pBind = new BindDispatch_Impl( xDisp, aURL, NULL ); + SfxStateCache *pTmpCache = NULL; + if( !pCache ) { + pTmpCache = new SfxStateCache( nSlot ); + pCache = pTmpCache; + } + + BindDispatch_Impl *pBind = new BindDispatch_Impl( xDisp, aURL, pCache ); pBind->acquire(); xDisp->addStatusListener( pBind, aURL ); if ( !pBind->GetStatus().IsEnabled ) @@ -2668,6 +2674,8 @@ SfxItemState SfxBindings::QueryState( sa pBind->Release(); rpState = pItem; + if( pTmpCache ) + delete pTmpCache; return eState; } }