diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java index 7d9f26622e2..5b3f2a35f12 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java @@ -477,7 +477,9 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab { String selectedId = selectedProvider!=null ? selectedProvider.getId() : null; // update viewer if the list of providers changed + int pos = tableProviders.getSelectionIndex(); tableProvidersViewer.setInput(presentedProviders); + tableProviders.setSelection(pos); ICConfigurationDescription cfgDescription = getConfigurationDescription(); if (cfgDescription!=null) { @@ -544,7 +546,10 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab { // renders better when using temporary presentedProviders = providers; + + int pos = tableProviders.getSelectionIndex(); tableProvidersViewer.setInput(presentedProviders); + tableProviders.setSelection(pos); } private ICOptionPage createOptionsPage(ILanguageSettingsProvider provider, ICConfigurationDescription cfgDescription) { @@ -891,7 +896,6 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab { } } else if (page.isForPrefs()) { - int pos = tableProviders.getSelectionIndex(); List providers = new ArrayList(presentedProviders); for (int i=0;i