Closed iloveeclipse closed 5 months ago
May be it would be better to just not open the problematic Progress Dialog. Instead it could use the progress bar in the status bar like open-quick-type-hierarchy does.
May be it would be better to just not open the problematic Progress Dialog. Instead it could use the progress bar in the status bar like open-quick-type-hierarchy does.
I've tried on other occasion but it was quickly dismissed by users as they overlook the tiny progress line and with the possible wait times of some minutes (because of big projects) they want always see the clear progress on the screen.
Our users are sometimes killing Eclipse because they claim it is waiting forever with "Progress Information" on starting program execution.
This is a usability issue caused by a bad timing of dialogs. Precondition: launch config must have "launch in background" checkbox disabled like here:
Steps leading to the problem
The
ProgressMonitorJobsDialog
that opens "Progress Information" dialog after 800 ms while waiting onorg.eclipse.debug.core.model.LaunchConfigurationDelegate.finalLaunchCheck()
opens right after theorg.eclipse.debug.internal.ui.launchConfigurations.CompileErrorProjectPromptStatusHandler.handleStatus()
opens the "Errors in Workspace" dialog.I can almost always reproduce the bad timing with breakpoints.
org.eclipse.debug.core.model.LaunchConfigurationDelegate.finalLaunchCheck(ILaunchConfiguration, String, IProgressMonitor)
withThread.sleep(850);
"condition" right beforeerrors.add(0, configuration);
line.dialog.open();
inorg.eclipse.ui.internal.progress.ProgressManager.scheduleProgressMonitorJob(ProgressMonitorJobsDialog)
int open = dialog.open();
inorg.eclipse.debug.internal.ui.launchConfigurations.CompileErrorProjectPromptStatusHandler.handleStatus(IStatus, Object)
In that case if I return from debugger to Eclipse debuggee I see only the progress dialog, but not the error one (because it is hidden behind the progress).
Bad state:
Bad state "explained":
Expected (good) state:
I'm thinking about some "forced" shell activation / polling for active status somewhere around
org.eclipse.debug.internal.ui.sourcelookup.Prompter.handleStatus(IStatus, Object)
code, so that the "shell with the prompt" always forcibly activates itself if hidden by some other shell, but if anyone has a better proposal, you are welcome.