eclipse-platform / eclipse.platform

https://eclipse.dev/eclipse/
Eclipse Public License 2.0
76 stars 109 forks source link

Debug "Prompter" handler dialogs may be hidden behind progress dialog #1373

Closed iloveeclipse closed 5 months ago

iloveeclipse commented 5 months ago

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:

image

Steps leading to the problem

The ProgressMonitorJobsDialog that opens "Progress Information" dialog after 800 ms while waiting on org.eclipse.debug.core.model.LaunchConfigurationDelegate.finalLaunchCheck() opens right after the org.eclipse.debug.internal.ui.launchConfigurations.CompileErrorProjectPromptStatusHandler.handleStatus() opens the "Errors in Workspace" dialog.

I can almost always reproduce the bad timing with breakpoints.

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: image

Bad state "explained": image

Expected (good) state: image

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.

jukzi commented 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.

iloveeclipse commented 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.

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.