Bug 164350 [JFace] Listener optimization in ToolTip
The hideListener in ToolTip is a bit too eager. If we're not handling mouse down events it doesn't need to be applied recursively. Also, the mouseExit hander doesn't need to be on anything under the shell. If fixed we should be careful to re-tool the listener in the event that the setHideOnMouseDown event changes state of that field.
bundles/org.eclipse.jface/src/org/eclipse/jface/window/ToolTip.java
this.popupDelay = popupDelay;
	}
	/**
	 * Return if hiding on mouse down is set.
	 * 
	 * @return <code>true</code> if hiding on mouse down in the tool tip is on
	 */
	public boolean isHideOnMouseDown() {
		return hideOnMouseDown;
	}
	/**
	 * If you don't want the tool tip to be hidden when the user clicks inside
	 * the tool tip set this to <code>false</code>. You maybe also need to
	 * hide the tool tip yourself depending on what you do after clicking in the
	 * tooltip (e.g. if you open a new {@link Shell})
	 * 
	 * @param hideOnMouseDown
	 *            flag to indicate of tooltip is hidden automatically on mouse
	 *            down inside the tool tip
	 */
	public void setHideOnMouseDown(boolean hideOnMouseDown) {
		this.hideOnMouseDown = hideOnMouseDown;
	}
	/**
	 * Hide the currently active tool tip
	 */
	public void hide() {
		toolTipHide(CURRENT_TOOLTIP, null);
	}
	private class ToolTipOwnerControlListener implements Listener {