src/Pure/General/swing_thread.scala
changeset 34299 68716caa7745
parent 34217 67e1ac2d3b2c
--- 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 })
   }