Bug 163360 [Field Assist] - API - Provide ControlDecoration constructor without specifying decoration
Currently you can only create a ControlDecoration by specifying the control and the decoration in the constructor. This works nicely when the decoration is static (ie, always content assist). But there are use cases where the decoration changes depending on the state of the field, and at creation time, it's not clear which decoration will be set. Having a constructor that doesn't require a decoration would be nice.
bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java
private MouseMoveListener mouseMoveListener;
	/**
	 * Control that we last installed a move listener on. We only want one at a
	 * time.
	 */
	private Control moveListeningTarget = null;
	/**
	 * Debug counter used to match add and remove listeners
	 */
	private int listenerInstalls = 0;
	/**
	 * The current rectangle used for tracking mouse moves
	 */
	private Rectangle decorationRectangle;
	/**
	 * An internal flag tracking whether we have focus. We use this rather than
	 * isFocusControl() so that we can set the flag as soon as we get the focus
	 * callback, rather than having to do an asyncExec in the middle of a focus
	 * callback to ensure that isFocusControl() represents the outcome of the
	 * event.
	 */
	private boolean hasFocus = false;
	/**
	 * The hover used for showing description text
	 */
	private Hover hover;
	/**
	 * The hover used to show a decoration image's description.
	 */
	class Hover {