From ae9f0a0e9a132f4dc2b2e114e4aa02da72fc557b Mon Sep 17 00:00:00 2001
From: Bogdan Gheorghe <gheorghe@ca.ibm.com>
Date: Mon, 16 Aug 2004 20:30:27 +0000
Subject: [PATCH] Patch for Tanya Wolff: Fix for 70906: Duplicate entries in
 C/C++ preferences

---
 core/org.eclipse.cdt.ui/ChangeLog                    |  5 +++++
 .../preferences/CEditorHoverConfigurationBlock.java  | 12 ++++++------
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog
index 5ba00350d0e..55952c91bce 100644
--- a/core/org.eclipse.cdt.ui/ChangeLog
+++ b/core/org.eclipse.cdt.ui/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-16 Tanya Wolff
+	Fix for 70906: Duplicate entries in C/C++ preferences
+	
+	src/org.eclipse.cdt.internal.ui.preferences/CeditorHoverConfigurationBlock.java
+
 2004-08-16 Bogdan Gheorghe
 	Fix for 70113: Search for Template member declarations causes Assertion
 	
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorHoverConfigurationBlock.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorHoverConfigurationBlock.java
index 22f76b40fee..adddd18ab2f 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorHoverConfigurationBlock.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorHoverConfigurationBlock.java
@@ -374,19 +374,17 @@ public class CEditorHoverConfigurationBlock {
 		CEditorTextHoverDescriptor[] hoverDescriptors= CUIPlugin.getDefault().getCEditorTextHoverDescriptors();
 
 		// Move Best Match hover to front
-		CEditorTextHoverDescriptor currentHover= hoverDescriptors[0];
+		
 		boolean done= false;
 		for (int i= 0; !done && i < hoverDescriptors.length; i++) {
 			if (PreferenceConstants.ID_BESTMATCH_HOVER.equals(hoverDescriptors[i].getId())) {
 				// Swap with first one
+				CEditorTextHoverDescriptor tmpHover= hoverDescriptors[0];
 				hoverDescriptors[0]= hoverDescriptors[i];
-				hoverDescriptors[i]= currentHover;
+				hoverDescriptors[i]= tmpHover;
 				return hoverDescriptors;
 			}
-			if (i > 0) {
-				currentHover= hoverDescriptors[i]; 
-				hoverDescriptors[i]= hoverDescriptors[i-1];
-			}
+			
 		}
 		
 		// return unchanged array if best match hover can't be found
@@ -451,8 +449,10 @@ public class CEditorHoverConfigurationBlock {
 	}
 
 	void performDefaults() {
+		fStatus= new StatusInfo();
 		restoreFromPreferences();
 		initializeFields();
+		updateStatus();
 	}
 
 	private void restoreFromPreferences() {