Bug 189694 ApplicationWindow#run() can hang Eclipse due to Menu#isEnabled
In ApplicationWindow#run() we call Menu#isEnabled to cache our enabled state. This actually crawls all of the children of the menu to determine the state. When the Shell is disabled this will return true and so when the shell is re-enabled all of the menus will be inactive. I will be attaching a Steve approved patch.
bundles/org.eclipse.jface/src/org/eclipse/jface/window/ApplicationWindow.java
/**
     * Creates the control for the cool bar manager.
     * <p>
     * Subclasses may override this method to customize the cool bar manager.
     * </p>
     * @param composite the parent used for the control
     * 
     * @return an instance of <code>CoolBar</code>
     * @since 3.0
     */
    protected Control createCoolBarControl(Composite composite) {
        if (coolBarManager != null) {
        	if (coolBarManager instanceof ICoolBarManager2) {
				return ((ICoolBarManager2) coolBarManager).createControl2(composite);
			}
        	if (coolBarManager instanceof CoolBarManager) {
				return ((CoolBarManager) coolBarManager).createControl(composite);
			}
        }
        return null;
    }
    /**
     * Returns the default font used for this window.
     * <p>
     * The default implementation of this framework method
     * obtains the symbolic name of the font from the
     * <code>getSymbolicFontName</code> framework method
     * and retrieves this font from JFace's font
     * registry using <code>JFaceResources.getFont</code>.
     * Subclasses may override to use a different registry,