The reason for the UI thread changes is to avoid glitches where the combo box might not have the right width, or sometimes might not have any contents, or the panel isn't created properly, etc.
http://gwt-code-reviews.appspot.com/111809/diff/1/6 File dev/core/src/com/google/gwt/dev/SwingUI.java (right): http://gwt-code-reviews.appspot.com/111809/diff/1/6#newcode178 Line 178: ModuleHandle handle = invokeAndGet(new Callable<ModuleHandle>() { On 2009/11/24 22:26:36, rdayal wrote: > Why do you want to do this work on the UI thread? From research about Swing UI glitches, it looks like *everything* related to Swing should be run in the UI thread, even things that create the widgets and access their values. http://gwt-code-reviews.appspot.com/111809/diff/1/3 File dev/core/src/com/google/gwt/dev/shell/ShellMainWindow.java (right): http://gwt-code-reviews.appspot.com/111809/diff/1/3#newcode254 Line 254: if (launcher == null || selectedUrl == null) { On 2009/11/24 22:26:36, rdayal wrote: > Change this to an assert perhaps? I believe the problem Ray saw will be fixed by the UI thread changes, but rather than having an NPE or assertion failure I think it is better to silently ignore the case where the button winds up being clicked with no elements in the dropdown. http://gwt-code-reviews.appspot.com/111809/diff/1/2 File dev/core/src/com/google/gwt/dev/shell/jetty/JettyLauncher.java (right): http://gwt-code-reviews.appspot.com/111809/diff/1/2#newcode84 Line 84: logStatus = TreeLogger.TRACE; On 2009/11/24 22:26:36, rdayal wrote: > Thanks for taking care of this. To be clear, this means that we don't want to > have the 404 for favicon show up in the Swing UI either, right? Correct. http://gwt-code-reviews.appspot.com/111809/diff/1/7 File dev/core/src/com/google/gwt/dev/ui/DevModeUI.java (right): http://gwt-code-reviews.appspot.com/111809/diff/1/7#newcode126 Line 126: * Indicates that module load is complete, and that URLs previously specified On 2009/11/24 22:26:36, rdayal wrote: > Naming suggestion - this really means that the modules have been processed, > right? Might want to clarify this in the doc, though the method name can remain > the same. We do have confusing terminology here, but basically ModuleDefLoader has finished loading the modules. That is separate from onModuleLoad having been completed. So, unless we want to go back and rename one of those to avoid confusion I think this is the right name. http://gwt-code-reviews.appspot.com/111809 -- http://groups.google.com/group/Google-Web-Toolkit-Contributors