From d1d25c8cbc2962ce2501b4ed6034d2e4e4ccba9a Mon Sep 17 00:00:00 2001 From: Andras Timar Date: Thu, 24 Apr 2014 21:50:26 +0200 Subject: [PATCH] fdo#77242 fix crash Change-Id: Ic28b2dccc02627446a794929fe970495b15eb0e1 Reviewed-on: https://gerrit.libreoffice.org/9154 Tested-by: Miklos Vajna Reviewed-by: Miklos Vajna --- sfx2/source/dialog/tabdlg.cxx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx index 95bdbad..065a23c 100644 --- a/sfx2/source/dialog/tabdlg.cxx +++ b/sfx2/source/dialog/tabdlg.cxx @@ -1270,7 +1270,7 @@ IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl ) */ { - sal_uInt16 const nId = pTabCtrl->GetCurPageId(); + sal_uInt16 nId = pTabCtrl->GetCurPageId(); DBG_ASSERT( pImpl->aData.size(), "no Pages registered" ); SFX_APP(); @@ -1278,6 +1278,16 @@ IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl ) // Tab Page schon da? SfxTabPage* pTabPage = dynamic_cast (pTabCtrl->GetTabPage( nId )); Data_Impl* pDataObject = Find( pImpl->aData, nId ); + + //UUUU fallback to 1st page when requested one does not exist + if(!pDataObject && pTabCtrl->GetPageCount()) + { + pTabCtrl->SetCurPageId(pTabCtrl->GetPageId(0)); + nId = pTabCtrl->GetCurPageId(); + pTabPage = dynamic_cast< SfxTabPage* >(pTabCtrl->GetTabPage(nId)); + pDataObject = Find(pImpl->aData, nId); + } + DBG_ASSERT( pDataObject, "Id not known" ); // Create TabPage if possible: -- 1.9.0