Bug 418420 - [Decorators] ControlDecoration tooltip is shown even though
decoration image is invisible

Signed-off-by: Ruediger Herrmann <ruediger.herrmann@gmx.de>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java
index 02d5a15..87a0309 100644
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java
+++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java
@@ -7,6 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     Rüdiger Herrmann - fix for bug 418420
  *******************************************************************************/
 package org.eclipse.jface.fieldassist;
 
@@ -1075,6 +1076,12 @@
 		if (!visible) {
 			return;
 		}
+		
+		// If the decoration is hidden, don't show the hover.
+		if (showOnlyOnFocus && !control.isFocusControl()) {
+			return;
+		}
+		
 		// If there is no text, any existing hover should be hidden, and
 		// there is nothing more to do.
 		if (text == null || text.length() == 0) {
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/fieldassist/ControlDecorationTests.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/fieldassist/ControlDecorationTests.java
index 655112b..1d86471 100644
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/fieldassist/ControlDecorationTests.java
+++ b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/fieldassist/ControlDecorationTests.java
@@ -75,6 +75,19 @@
 		assertTwoShellsUp();
 	}
 	
+	public void testBug418420() {
+		AbstractFieldAssistWindow window = getFieldAssistWindow();
+		window.open();
+		ControlDecoration decoration = new ControlDecoration(window.getFieldAssistControl(), SWT.RIGHT);
+		decoration.setImage(FieldDecorationRegistry.getDefault()             
+		    .getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION).getImage());   
+		decoration.setDescriptionText("foo");   
+		decoration.setShowOnlyOnFocus(true);
+		anotherControl.forceFocus();
+		decoration.showHoverText("Show me");
+		assertOneShellUp();
+	}
+	
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.tests.fieldassist.AbstractFieldAssistTestCase#createFieldAssistWindow()
 	 */