Lines 190-195
bool ShutdownIcon::LoadModule( osl::Module **pModule,
Link Here
|
190 |
return true; |
190 |
return true; |
191 |
} |
191 |
} |
192 |
|
192 |
|
|
|
193 |
|
194 |
struct TerminateHdlData |
195 |
{ |
196 |
Reference< XDesktop > mxDesktop; |
197 |
TerminateHdlData( const Reference< XDesktop > &xDesktop ) |
198 |
: mxDesktop( xDesktop ) {} |
199 |
}; |
200 |
|
201 |
|
193 |
class IdleUnloader : Timer |
202 |
class IdleUnloader : Timer |
194 |
{ |
203 |
{ |
195 |
::osl::Module *m_pModule; |
204 |
::osl::Module *m_pModule; |
Lines 584-593
void ShutdownIcon::terminateDesktop()
Link Here
|
584 |
if ( xSupplier.is() ) |
593 |
if ( xSupplier.is() ) |
585 |
{ |
594 |
{ |
586 |
Reference< XIndexAccess > xTasks ( xSupplier->getFrames(), UNO_QUERY ); |
595 |
Reference< XIndexAccess > xTasks ( xSupplier->getFrames(), UNO_QUERY ); |
587 |
if( xTasks.is() ) |
596 |
if( xTasks.is() && xTasks->getCount() < 1 ) |
588 |
{ |
597 |
{ |
589 |
if( xTasks->getCount() < 1 ) |
598 |
Application::PostUserEvent( STATIC_LINK(0, ShutdownIcon, TerminateHdl_Impl), new TerminateHdlData( xDesktop ) ); |
590 |
xDesktop->terminate(); |
|
|
591 |
} |
599 |
} |
592 |
} |
600 |
} |
593 |
|
601 |
|
Lines 595-600
void ShutdownIcon::terminateDesktop()
Link Here
|
595 |
ShutdownIcon::pShutdownIcon = 0; |
603 |
ShutdownIcon::pShutdownIcon = 0; |
596 |
} |
604 |
} |
597 |
|
605 |
|
|
|
606 |
|
607 |
IMPL_STATIC_LINK_NOINSTANCE( ShutdownIcon, TerminateHdl_Impl, TerminateHdlData*, pData ) |
608 |
{ |
609 |
if ( pData->mxDesktop.is() ) |
610 |
pData->mxDesktop->terminate(); |
611 |
delete pData; |
612 |
return 0; |
613 |
} |
614 |
|
615 |
|
616 |
|
598 |
// --------------------------------------------------------------------------- |
617 |
// --------------------------------------------------------------------------- |
599 |
|
618 |
|
600 |
ShutdownIcon* ShutdownIcon::getInstance() |
619 |
ShutdownIcon* ShutdownIcon::getInstance() |