Project: Eclipse_Platform_UI
Bug 63854 Calling IProgressService.runInUI while a modal dialog is showing
Reported: 2004-05-25 09:58:12 | Status: verified fixed

There is an issue with calling IProgressService.runInUI() while a modal dialog is showing. For example, when calling runInUI from a wizard page and the operation blocks then the blocked dialog doesn't show up. In the case of the wizard page the wizard isn't disabled, a busy cursor is shown, but you can still press buttons and cause exceptions easily. In the current implementation the Blocked dialog is rescheduled until no more modal shell is visible: BlockedJobsDialog.java if (ProgressManagerUtil.rescheduleIfModalShellOpen(this)) return Status.CANCEL_STATUS; There must be a good reason for this, but in the case of runInUI() it is important that the BlockedDialog shows up immediatly. Disabling the above code gives the expected behaviour in the Wizard case, i.e., the blocked dialog shows up and blocks the user from further interactions with the wizard. Therefore the request is to not schedule the blocked dialog in the context of runInUI(). Without this support the use of runInUI() will be difficult to explain, i.e., don't call this method when a modal dialog is showing.

Files changed in fix:
bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressManager.java