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
removeCompositeListeners(c);
			if (composite != null && composite == c) {
				
				
				c = null;
			} else if (c instanceof Shell) {
				
				
				c = null;
			} else {
				c = c.getParent();
			}
		}
		paintListener = null;
		mouseTrackListener = null;
		compositeListener = null;
		
		if (moveListeningTarget != null) {
			printRemoveListener(moveListeningTarget, "MOUSEMOVE"); 
			moveListeningTarget.removeMouseMoveListener(mouseMoveListener);
			moveListeningTarget = null;
			mouseMoveListener = null;
		}
		if (DEBUG) {
			if (listenerInstalls > 0) {
				System.out.println("LISTENER LEAK>>>CHECK TRACE ABOVE"); 
			} else if (listenerInstalls < 0) {
				System.out
						.println("REMOVED UNREGISTERED LISTENERS>>>CHECK TRACE ABOVE"); 
			} else {