hide old page on showing new page
and showing/hiding pages during Paint seems crazy to me, doing it
during ShowPage makes sense.
Change-Id: Ifd0c3c50812157cfa793da86715d58818e944e6b
diff --git a/cui/source/dialogs/iconcdlg.cxx b/cui/source/dialogs/iconcdlg.cxx
index a66bf09..0af84e03 100644
--- a/cui/source/dialogs/iconcdlg.cxx
+++ b/cui/source/dialogs/iconcdlg.cxx
@@ -323,31 +323,6 @@ SvxIconChoiceCtrlEntry* IconChoiceDialog::AddTabPage(
return pEntry;
}
/**********************************************************************
|
| Paint-method
|
\**********************************************************************/
void IconChoiceDialog::Paint( const Rectangle& rRect )
{
Dialog::Paint ( rRect );
for ( size_t i = 0; i < maPageList.size(); i++ )
{
IconChoicePageData* pData = maPageList[ i ];
if ( pData->nId == mnCurrentPageId )
{
ShowPageImpl ( pData );
}
else
{
HidePageImpl ( pData );
}
}
}
void IconChoiceDialog::SetCtrlStyle()
{
WinBits aWinBits = WB_3DLOOK | WB_ICON | WB_BORDER | WB_NOCOLUMNHEADER | WB_HIGHLIGHTFRAME | WB_NODRAGSELECTION | WB_TABSTOP | WB_CLIPCHILDREN | WB_ALIGN_LEFT | WB_NOHSCROLL;
@@ -375,20 +350,26 @@ void IconChoiceDialog::HidePageImpl ( IconChoicePageData* pData )
pData->pPage->Hide();
}
void IconChoiceDialog::ShowPage( sal_uInt16 nId )
void IconChoiceDialog::ShowPage(sal_uInt16 nId)
{
bool bInvalidate = GetCurPageId() != nId;
SetCurPageId( nId );
ActivatePageImpl( );
if(bInvalidate)
Invalidate();
sal_uInt16 nOldPageId = GetCurPageId();
bool bInvalidate = nOldPageId != nId;
SetCurPageId(nId);
ActivatePageImpl();
if (bInvalidate)
{
IconChoicePageData* pOldData = GetPageData(nOldPageId);
if (pOldData && pOldData->pPage)
{
DeActivatePageImpl();
HidePageImpl(pOldData);
}
// IA2 CWS. MT: I guess we want the event now, and not in Paint()?
IconChoicePageData* pData = GetPageData ( mnCurrentPageId );
if(pData)
ShowPageImpl ( pData );
Invalidate();
}
IconChoicePageData* pNewData = GetPageData(nId);
if (pNewData && pNewData->pPage)
ShowPageImpl(pNewData);
}
/**********************************************************************
@@ -408,14 +389,7 @@ IMPL_LINK_NOARG(IconChoiceDialog , ChosePageHdl_Impl)
if( *pId != mnCurrentPageId )
{
IconChoicePageData* pData = GetPageData ( mnCurrentPageId );
if ( pData->pPage )
DeActivatePageImpl();
SetCurPageId ( *pId );
ActivatePageImpl();
Invalidate();
ShowPage(*pId);
}
return 0L;
diff --git a/cui/source/inc/iconcdlg.hxx b/cui/source/inc/iconcdlg.hxx
index dec5373..fb8ad2f 100644
--- a/cui/source/inc/iconcdlg.hxx
+++ b/cui/source/inc/iconcdlg.hxx
@@ -186,8 +186,6 @@ public :
const SfxItemSet * pItemSet = 0 );
virtual ~IconChoiceDialog ();
virtual void Paint( const Rectangle& rRect ) SAL_OVERRIDE;
// interface
SvxIconChoiceCtrlEntry* AddTabPage(
sal_uInt16 nId, const OUString& rIconText, const Image& rChoiceIcon,