Bug 279553 [FieldAssist] ControlDecoration strange behavior when description text is empty string
Build ID: 3.5RC3 With the following simple code, when I hover over the control decoration, a huge yellow box quickly flashes on the screen and then disappears. I also tried on 3.4.2 and observed the same behavior. Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout(1, false)); Text t = new Text(shell, SWT.BORDER); t.setText("hover on decoration ->"); ControlDecoration decoration = new ControlDecoration(t, SWT.RIGHT); decoration.setImage(FieldDecorationRegistry.getDefault() .getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION).getImage()); decoration.setDescriptionText(""); shell.pack(); shell.open(); while (!isInterrupted() && !shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose();
bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java
System.out.println("ALL INSTALLED LISTENERS WERE REMOVED."); 
			}
		}
	}
	/**
	 * Return the rectangle in which the decoration should be rendered, in
	 * coordinates relative to the specified control. If the specified control
	 * is null, return the rectangle in display coordinates.
	 * 
	 * @param targetControl
	 *            the control whose coordinates should be used
	 * @return the rectangle in which the decoration should be rendered
	 */
	protected Rectangle getDecorationRectangle(Control targetControl) {
		if (getImage() == null || control == null) {
			return new Rectangle(0, 0, 0, 0);
		}
		
		Rectangle imageBounds = getImage().getBounds();
		Rectangle controlBounds = control.getBounds();
		int x, y;
		
		if ((position & SWT.RIGHT) == SWT.RIGHT) {
			x = controlBounds.x + controlBounds.width + marginWidth;
		} else {
			
			x = controlBounds.x - imageBounds.width - marginWidth;
		}
		
		if ((position & SWT.TOP) == SWT.TOP) {