cdt/cdt_5_0_x/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/executables/ExecutablesView.java
--- a/cdt/cdt_5_0_x/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/executables/ExecutablesView.java Fri Jun 05 10:43:19 2009 -0500
+++ b/cdt/cdt_5_0_x/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/executables/ExecutablesView.java Fri Jun 05 14:27:40 2009 -0500
@@ -225,6 +225,8 @@
private Action configureColumnsAction;
private IMemento memento;
+
+ private IStructuredSelection oldSelection;
/**
* Create contents of the Executables View
@@ -272,33 +274,38 @@
ISelection newSelection = event.getSelection();
if (newSelection instanceof IStructuredSelection) {
- // update the remove action
- removeAction.setEnabled(!newSelection.isEmpty());
-
- final Object firstElement = ((IStructuredSelection) newSelection).getFirstElement();
-
- Job setectExeJob = new Job(Messages.ExecutablesView_Select_Executable) {
+ if (oldSelection == null || !oldSelection.equals(newSelection))
+ {
+ // update the remove action
+ removeAction.setEnabled(!newSelection.isEmpty());
+
+ final Object firstElement = ((IStructuredSelection) newSelection).getFirstElement();
+
+ Job setectExeJob = new Job(Messages.ExecutablesView_Select_Executable) {
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- if (firstElement instanceof Executable) {
- Executable executable = (Executable)firstElement;
- this.setName(Messages.ExecutablesView_Finding_Sources_Job_Name + executable.getName());
- executable.getSourceFiles(monitor);
- }
- // selection could be empty, so do this no matter what to update the source
- // files viewer
- UIJob selectExeUIJob = new UIJob(Messages.ExecutablesView_Select_Executable){
- @Override
- public IStatus runInUIThread(IProgressMonitor monitor) {
- sourceFilesViewer.setInput(firstElement);
- sourceFilesViewer.packColumns();
- return Status.OK_STATUS;
- }};
- selectExeUIJob.schedule();
- return Status.OK_STATUS;
- }};
- setectExeJob.schedule();
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ if (firstElement instanceof Executable) {
+ Executable executable = (Executable)firstElement;
+ this.setName(Messages.ExecutablesView_Finding_Sources_Job_Name + executable.getName());
+ executable.getSourceFiles(monitor);
+ }
+ // selection could be empty, so do this no matter what to update the source
+ // files viewer
+ UIJob selectExeUIJob = new UIJob(Messages.ExecutablesView_Select_Executable){
+ @Override
+ public IStatus runInUIThread(IProgressMonitor monitor) {
+ sourceFilesViewer.setInput(firstElement);
+ sourceFilesViewer.packColumns();
+ return Status.OK_STATUS;
+ }};
+ selectExeUIJob.schedule();
+ return Status.OK_STATUS;
+ }};
+ setectExeJob.schedule();
+ oldSelection = (IStructuredSelection) newSelection;
+ }
+
}
}
});