Stop question in context of session manager when cancel a frame
When shutdown or logout, LO make the question for all open windows, but when you cancel a window the question for the other windows are not necessary, this patch breaks the other questions. in dependency of tdf#104101 Change-Id: I7119317d392ccd808c67fb57f82b1e990062abf2 Reviewed-on: https://gerrit.libreoffice.org/33311 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
This commit is contained in:
parent
d8546e9781
commit
d8ccf8cf7a
@ -373,8 +373,21 @@ class Desktop : private cppu::BaseMutex,
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
bool m_bIsTerminated; /// check flag to protect us against dispose before terminate!
|
/** check flag to protect us against dispose before terminate!
|
||||||
/// see dispose() for further information!
|
* see dispose() for further information!
|
||||||
|
*/
|
||||||
|
bool m_bIsTerminated;
|
||||||
|
|
||||||
|
/** when true, the call came form session manager
|
||||||
|
* the methode is Desktop::terminateQuickstarterToo()
|
||||||
|
* this the only one place where set this to true
|
||||||
|
* In this case, when one frame break, not make
|
||||||
|
* question for other, the break of shutdown or logout
|
||||||
|
* can be only once.
|
||||||
|
* In Desktop::impl_closeFrames would be test and break
|
||||||
|
* the loop and reset to false
|
||||||
|
*/
|
||||||
|
bool m_bSession;
|
||||||
|
|
||||||
css::uno::Reference< css::uno::XComponentContext > m_xContext; /// reference to factory, which has create this instance
|
css::uno::Reference< css::uno::XComponentContext > m_xContext; /// reference to factory, which has create this instance
|
||||||
FrameContainer m_aChildTaskContainer; /// array of child tasks (children of desktop are tasks; and tasks are also frames - But pure frames are not accepted!)
|
FrameContainer m_aChildTaskContainer; /// array of child tasks (children of desktop are tasks; and tasks are also frames - But pure frames are not accepted!)
|
||||||
|
@ -158,6 +158,7 @@ Desktop::Desktop( const css::uno::Reference< css::uno::XComponentContext >& xCon
|
|||||||
, cppu::OPropertySetHelper( cppu::WeakComponentImplHelperBase::rBHelper )
|
, cppu::OPropertySetHelper( cppu::WeakComponentImplHelperBase::rBHelper )
|
||||||
// Init member
|
// Init member
|
||||||
, m_bIsTerminated ( false ) // see dispose() for further information!
|
, m_bIsTerminated ( false ) // see dispose() for further information!
|
||||||
|
, m_bSession ( false )
|
||||||
, m_xContext ( xContext )
|
, m_xContext ( xContext )
|
||||||
, m_aChildTaskContainer ( )
|
, m_aChildTaskContainer ( )
|
||||||
, m_aListenerContainer ( m_aMutex )
|
, m_aListenerContainer ( m_aMutex )
|
||||||
@ -389,6 +390,7 @@ namespace
|
|||||||
bool SAL_CALL Desktop::terminateQuickstarterToo()
|
bool SAL_CALL Desktop::terminateQuickstarterToo()
|
||||||
{
|
{
|
||||||
QuickstartSuppressor aQuickstartSuppressor(this, m_xQuickLauncher);
|
QuickstartSuppressor aQuickstartSuppressor(this, m_xQuickLauncher);
|
||||||
|
m_bSession = true;
|
||||||
return terminate();
|
return terminate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1702,7 +1704,10 @@ bool Desktop::impl_closeFrames(bool bAllowUI)
|
|||||||
if ( ! bSuspended )
|
if ( ! bSuspended )
|
||||||
{
|
{
|
||||||
++nNonClosedFrames;
|
++nNonClosedFrames;
|
||||||
continue;
|
if(m_bSession)
|
||||||
|
break;
|
||||||
|
else
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1754,6 +1759,9 @@ bool Desktop::impl_closeFrames(bool bAllowUI)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// reset the session
|
||||||
|
m_bSession = false;
|
||||||
|
|
||||||
return (nNonClosedFrames < 1);
|
return (nNonClosedFrames < 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user