--- a/src/Pure/General/swing_thread.scala Sat Jan 09 18:23:02 2010 +0100
+++ b/src/Pure/General/swing_thread.scala Sat Jan 09 23:22:24 2010 +0100
@@ -29,9 +29,14 @@
result.get
}
- def future[A](body: => A): Future[A] = Future.fork { now(body) }
+ def future[A](body: => A): Future[A] =
+ {
+ if (SwingUtilities.isEventDispatchThread()) Future.value(body)
+ else Future.fork { now(body) }
+ }
- def later(body: => Unit) {
+ def later(body: => Unit)
+ {
if (SwingUtilities.isEventDispatchThread()) body
else SwingUtilities.invokeLater(new Runnable { def run = body })
}