Bug 164529 [FieldAssist] Provide the ability to listen to start and end field assist events
In the previous content assist functionality, an ICompletionListener could be specified to listen to the following events: public void assistSessionEnded(ContentAssistEvent event) public void assistSessionStarted(ContentAssistEvent event) The equivalent listener, IContentProposalListener, does not listen to those two events. PDE needs to know when an assist session is ended in order to reset the state it maintains for custom filtering of java type results. The current event does not handle the case where the user ends the content assist without selecting a proposal: public void proposalAccepted(IContentProposal proposal);
bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ContentProposalAdapter.java
/*
	 * The lightweight popup used to show content proposals for a text field. If
	 * additional information exists for a proposal, then selecting that
	 * proposal will result in the information being displayed in a secondary
	 * popup.
	 */
	class ContentProposalPopup extends PopupDialog {
		/*
		 * The listener we install on the popup and related controls to
		 * determine when to close the popup. Some events (move, resize, close,
		 * deactivate) trigger closure as soon as they are received, simply
		 * because one of the registered listeners received them. Other events
		 * depend on additional circumstances.
		 */
		private final class PopupCloserListener implements Listener {
			private boolean scrollbarClicked = false;
			public void handleEvent(final Event e) {
				
				
				if (e.type == SWT.FocusOut) {
					scrollbarClicked = false;
					/*
					 * Ignore this event if it's only happening because focus is
					 * moving between the popup shells, their controls, or a
					 * scrollbar. Do this in an async since the focus is not