Kaydet (Commit) 6a500920 authored tarafından Juergen Schmidt's avatar Juergen Schmidt

jsc340: fix problem with showing Java awt UI from the AppKit thread

üst 4ef76a17
...@@ -312,7 +312,22 @@ public class AsyncJob extends WeakBase implements XServiceInfo, XAsyncJob ...@@ -312,7 +312,22 @@ public class AsyncJob extends WeakBase implements XServiceInfo, XAsyncJob
// Because we need a parent anytime. // Because we need a parent anytime.
// And showing e.g. a java dialog can make some trouble // And showing e.g. a java dialog can make some trouble
// inside office ... but we have no chance here. // inside office ... but we have no chance here.
javax.swing.JOptionPane.showMessageDialog(null, sMessage, sTitle, javax.swing.JOptionPane.INFORMATION_MESSAGE); final java.lang.String sFinalTitle = sTitle;
final java.lang.String sFinalMessage = sMessage;
// On Mac OS X, AWT/Swing must not be accessed from the AppKit thread, so call
// SwingUtilities.invokeLater always on a fresh thread to avoid that problem
// (also, the current thread must not wait for that fresh thread to terminate,
// as that would cause a deadlock if this thread is the AppKit thread):
final Runnable doRun = new Runnable() {
public void run() {
javax.swing.JOptionPane.showMessageDialog(null, sFinalMessage, sFinalTitle, javax.swing.JOptionPane.INFORMATION_MESSAGE);
}
};
new Thread( doRun ) {
public void run() { javax.swing.SwingUtilities.invokeLater(doRun); }
}.start();
} }
//___________________________________________ //___________________________________________
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment