Bug 60236 [Progress] non-responsive blocked dialogs
When an operation is executed with IRunnableContext.run(false, false, ...) and a blocked dialog shows up, then the blocked dialog is not responsive since there is nobody to process the events. The non-responsiveness shows up as follows: - the details button is not responsive - the progress bars shown in the details area are not updated - you cannot cancel a thread in the details area In this situation we should disable the details button and collapse the details area. To detect the forked=false case could you make the following test: ModalContext.isModalContextThread(Thread.currentThread(). If the current thread isn't the modal context thread then the operation wasn't forked.
bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardDialog.java
protected Control createButtonBar(Composite parent) {
		Composite composite = (Composite) super.createButtonBar(parent);
		((GridLayout) composite.getLayout()).makeColumnsEqualWidth = false;
		return composite;
	}
	/* (non-Javadoc)
	 * Method declared on Dialog.
	 */
	protected void createButtonsForButtonBar(Composite parent) {
		if (wizard.isHelpAvailable()) {
			helpButton = createButton(parent, IDialogConstants.HELP_ID,
					IDialogConstants.HELP_LABEL, false);
		}
		if (wizard.needsPreviousAndNextButtons())
			createPreviousAndNextButtons(parent);
		finishButton = createButton(parent, IDialogConstants.FINISH_ID,
				IDialogConstants.FINISH_LABEL, true);
		cancelButton = createCancelButton(parent);
	}
	/**
	 * Creates the Cancel button for this wizard dialog.
	 * Creates a standard (<code>SWT.PUSH</code>) button and registers for its
	 * selection events. Note that the number of columns in the button bar composite
	 * is incremented. The Cancel button is created specially to give it a 
	 * removeable listener.
	 *
	 * @param parent the parent button bar
	 * @return the new Cancel button
	 */
	private Button createCancelButton(Composite parent) {