Resolves: rhbz#652695 release desktop in timeout
This commit is contained in:
parent
a0dc8e17e9
commit
a610ba3af2
51
0001-destroydesktop.in.timeout.patch
Normal file
51
0001-destroydesktop.in.timeout.patch
Normal file
@ -0,0 +1,51 @@
|
||||
@@ -, +, @@
|
||||
fix crash in exiting via disabling lone quick-starter, terminate at idle
|
||||
--- a/sfx2/source/appl/shutdownicon.cxx
|
||||
+++ a/sfx2/source/appl/shutdownicon.cxx
|
||||
@@ -182,6 +182,9 @@ bool ShutdownIcon::LoadModule( osl::Module **pModule,
|
||||
return true;
|
||||
}
|
||||
|
||||
+// These two timeouts are necessary to avoid there being
|
||||
+// plugin frames still on the stack, after unloading that
|
||||
+// code, causing a crash during disabling / termination.
|
||||
class IdleUnloader : Timer
|
||||
{
|
||||
::osl::Module *m_pModule;
|
||||
@@ -199,6 +202,22 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
+class IdleTerminate : Timer
|
||||
+{
|
||||
+ Reference< XDesktop > m_xDesktop;
|
||||
+public:
|
||||
+ IdleTerminate (Reference< XDesktop > xDesktop)
|
||||
+ {
|
||||
+ m_xDesktop = xDesktop;
|
||||
+ Start();
|
||||
+ }
|
||||
+ virtual void Timeout()
|
||||
+ {
|
||||
+ m_xDesktop->terminate();
|
||||
+ delete this;
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
void ShutdownIcon::initSystray()
|
||||
{
|
||||
if (m_bInitialized)
|
||||
@@ -576,11 +595,8 @@ void ShutdownIcon::terminateDesktop()
|
||||
if ( xSupplier.is() )
|
||||
{
|
||||
Reference< XIndexAccess > xTasks ( xSupplier->getFrames(), UNO_QUERY );
|
||||
- if( xTasks.is() )
|
||||
- {
|
||||
- if( xTasks->getCount() < 1 )
|
||||
- xDesktop->terminate();
|
||||
- }
|
||||
+ if( xTasks.is() && xTasks->getCount() < 1 )
|
||||
+ new IdleTerminate( xDesktop );
|
||||
}
|
||||
|
||||
// remove the instance pointer
|
@ -96,6 +96,7 @@ Patch12: turn-script-providers-into-extensions.patch
|
||||
Patch13: qstart.dont-forceenabled-on-post-reg-restart.patch
|
||||
Patch14: libreoffice-installfix.patch
|
||||
Patch15: exit.quickstarter.when.deleted.patch
|
||||
Patch16: 0001-destroydesktop.in.timeout.patch
|
||||
|
||||
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
|
||||
%define instdir %{_libdir}
|
||||
@ -708,6 +709,7 @@ cp -p %{SOURCE20} external/unowinreg/unowinreg.dll
|
||||
%patch13 -p1 -b .qstart.dont-forceenabled-on-post-reg-restart.patch
|
||||
%patch14 -p1 -b .libreoffice-installfix.patch
|
||||
%patch15 -p1 -b .exit.quickstarter.when.deleted.patch
|
||||
%patch16 -p1 -b .0001-destroydesktop.in.timeout.patch
|
||||
touch scripting/source/pyprov/delzip
|
||||
touch scripting/util/provider/beanshell/delzip
|
||||
touch scripting/util/provider/javascript/delzip
|
||||
@ -2012,8 +2014,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Nov 25 2010 Caolán McNamara <caolanm@redhat.com> 3.2.99.3-2
|
||||
* Fri Nov 26 2010 Caolán McNamara <caolanm@redhat.com> 3.2.99.3-2
|
||||
- Resolves: rhbz#610103 exit quickstarter when libs deleted
|
||||
- Resolves: rhbz#652695 release desktop in timeout
|
||||
|
||||
* Thu Nov 18 2010 Caolán McNamara <caolanm@redhat.com 3.2.99.3-1
|
||||
- next Libreoffice milestone
|
||||
|
Loading…
x
Reference in New Issue
Block a user