diff options
author | Silenio Quarti <silenio> | 2011-03-14 21:02:03 +0000 |
---|---|---|
committer | Silenio Quarti <silenio> | 2011-03-14 21:02:03 +0000 |
commit | 3054e614a762fa3b6d5f278d7d4664bee1ac5f54 (patch) | |
tree | 39adf1fb35a845126e048eda031d67d9e5a7fec7 /bundles/org.eclipse.swt/Eclipse SWT Mozilla/common | |
parent | 97e3a20937c795c1d41dbbe1d04a9e2d88e5ba74 (diff) | |
download | eclipse.platform.swt-3054e614a762fa3b6d5f278d7d4664bee1ac5f54.tar.gz eclipse.platform.swt-3054e614a762fa3b6d5f278d7d4664bee1ac5f54.tar.xz eclipse.platform.swt-3054e614a762fa3b6d5f278d7d4664bee1ac5f54.zip |
Bug 280649 - FileDialog widget causes the interface to freeze when used into a WebStart RCP plugin
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Mozilla/common')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java index 98d3346ca7..9c02156616 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java @@ -137,7 +137,16 @@ class Mozilla extends WebBrowser { int length = SHUTDOWN_PERSIST.length (); char[] chars = new char [length + 1]; SHUTDOWN_PERSIST.getChars (0, length, chars, 0); - rc = observerService.NotifyObservers (0, buffer, chars); + /* + * NotifyObservers is calling g_main_context_iteration() during shutdown. Need + * to leave GDK mutex since it is not reentrant. + */ + try { + MozillaDelegate.lock(false); + rc = observerService.NotifyObservers (0, buffer, chars); + } finally { + MozillaDelegate.lock(true); + } if (rc != XPCOM.NS_OK) error (rc); observerService.Release (); |