summaryrefslogtreecommitdiff
path: root/sj2
diff options
context:
space:
mode:
authorJoachim Lingner <jl@openoffice.org>2002-10-24 06:54:36 +0000
committerJoachim Lingner <jl@openoffice.org>2002-10-24 06:54:36 +0000
commitc1a3d92df7ba3707aa65a7b2a24d759133072638 (patch)
tree1fabdd0fd01eb2dbb8625f21fcfc71d8f7786c09 /sj2
parenta3febec8d6163569f1d9c1a041097bb1cf887a1a (diff)
#103676# make sure that applets destroy itself before the container window is destroyed
Diffstat (limited to 'sj2')
-rw-r--r--sj2/source/jscpp/sjapplet_impl.cxx18
1 files changed, 12 insertions, 6 deletions
diff --git a/sj2/source/jscpp/sjapplet_impl.cxx b/sj2/source/jscpp/sjapplet_impl.cxx
index e6e0c38db0..a5b4ceedb2 100644
--- a/sj2/source/jscpp/sjapplet_impl.cxx
+++ b/sj2/source/jscpp/sjapplet_impl.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: sjapplet_impl.cxx,v $
*
- * $Revision: 1.11 $
+ * $Revision: 1.12 $
*
- * last change: $Author: jl $ $Date: 2002-03-21 12:16:02 $
+ * last change: $Author: jl $ $Date: 2002-10-24 07:54:36 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -226,11 +226,11 @@ SjApplet2_Impl::~SjApplet2_Impl() throw() {
if (_joAppletExecutionContext) {
TKTThreadAttach jenv(_pJVM, _xJavaThreadRegister_11.get());
- _pEmbeddedWindow->dispose(jenv.pEnv);
- delete _pEmbeddedWindow;
+ _pEmbeddedWindow->dispose(jenv.pEnv);
+ delete _pEmbeddedWindow;
- jenv.pEnv->DeleteGlobalRef(_joAppletExecutionContext);
- jenv.pEnv->DeleteGlobalRef(_jcAppletExecutionContext);
+ jenv.pEnv->DeleteGlobalRef(_joAppletExecutionContext);
+ jenv.pEnv->DeleteGlobalRef(_jcAppletExecutionContext);
}
}
@@ -340,6 +340,7 @@ void SjApplet2_Impl::init(Window * pParentWin,
joDocBase, joParameters, _pEmbeddedWindow->_joWindow, (jlong)0); testJavaException(jenv.pEnv);
jenv.pEnv->CallVoidMethod(_joAppletExecutionContext, jmAppletExecutionContext_init); testJavaException(jenv.pEnv);
jenv.pEnv->CallVoidMethod(_joAppletExecutionContext, jmAppletExecutionContext_startUp); testJavaException(jenv.pEnv);
+
}
void SjApplet2_Impl::setSize(const Size & rSize) throw(com::sun::star::uno::RuntimeException)
@@ -391,6 +392,11 @@ void SjApplet2_Impl::close() throw(com::sun::star::uno::RuntimeException)
jmethodID jmAppletExecutionContext_shutdown = jenv.pEnv->GetMethodID(_jcAppletExecutionContext, "shutdown", "()V"); testJavaException(jenv.pEnv);
jenv.pEnv->CallVoidMethod(_joAppletExecutionContext, jmAppletExecutionContext_shutdown); testJavaException(jenv.pEnv);
+
+ jmethodID jmWaitForDispose= jenv.pEnv->GetMethodID(_jcAppletExecutionContext,"waitForDispose","()V");
+ testJavaException(jenv.pEnv);
+ //blocks until the applet has destroyed itself and the container was disposed (stardiv.applet.AppletExecutionContext.dispose)
+ jenv.pEnv->CallVoidMethod(_joAppletExecutionContext, jmWaitForDispose);
if( _pParentWin )
{