diff -ru OOO310_m1/formula/source/ui/dlg/formula.cxx OOO310_m1/formula/source/ui/dlg/formula.cxx --- OOO310_m1.orig/formula/source/ui/dlg/formula.cxx 2009-02-17 09:00:06.000000000 +0000 +++ OOO310_m1/formula/source/ui/dlg/formula.cxx 2009-02-17 09:06:18.000000000 +0000 @@ -131,7 +131,7 @@ void UpdateFunctionDesc(); void ResizeArgArr( const IFunctionDescription* pNewFunc ); void FillListboxes(); - void FillControls(); + void FillControls(BOOL &rbNext, BOOL &rbPrev); FormulaDlgMode SetMeText(const String& _sText,xub_StrLen PrivStart, xub_StrLen PrivEnd,BOOL bMatrix,BOOL _bSelect,BOOL _bUpdate); void SetMeText(const String& _sText); @@ -756,9 +756,15 @@ void FormulaDlg_Impl::FillDialog(BOOL nFlag) { - if ( nFlag ) - FillControls(); + BOOL bNext=TRUE, bPrev=TRUE; + if(nFlag) + FillControls(bNext, bPrev); FillListboxes(); + if(nFlag) + { + aBtnBackward.Enable(bPrev); + aBtnForward.Enable(bNext); + } String aStrResult; @@ -806,7 +812,7 @@ m_pParent->SetUniqueId( nOldUnique ); } // ----------------------------------------------------------------------------- -void FormulaDlg_Impl::FillControls() +void FormulaDlg_Impl::FillControls(BOOL &rbNext, BOOL &rbPrev) { // Umschalten zwischen den "Seiten" FormEditData* pData = m_pHelper->getFormEditData(); @@ -902,12 +908,10 @@ // Test, ob vorne/hinten noch mehr Funktionen sind xub_StrLen nTempStart = m_aFormulaHelper.GetArgStart( aFormula, nFStart, 0 ); - BOOL bNext = m_aFormulaHelper.GetNextFunc( aFormula, FALSE, nTempStart ); + rbNext = m_aFormulaHelper.GetNextFunc( aFormula, FALSE, nTempStart ); nTempStart=(xub_StrLen)pMEdit->GetSelection().Min(); pData->SetFStart(nTempStart); - BOOL bPrev = m_aFormulaHelper.GetNextFunc( aFormula, TRUE, nTempStart ); - aBtnBackward.Enable(bPrev); - aBtnForward.Enable(bNext); + rbPrev = m_aFormulaHelper.GetNextFunc( aFormula, TRUE, nTempStart ); } // -----------------------------------------------------------------------------