if (fAssistant == null || !fAssistant.hasFocus() || fContentType == null)  {
if (fIsActive && (fAssistant == null || !fAssistant.hasFocus()))  {
	public void shellDeactivated(ShellEvent event) {		// don't deactivate on focus lost, since the proposal popups may take focus		// plus: it doesn't hurt if you can check with another window without losing linked mode		// since there is no intrusive popup sticking out.				// need to check first what happens on reentering based on an open action		// Seems to be no problem				// TODO check whether we can leave it or uncomment it after debugging		// PS: why DOCUMENT_CHANGED? We want to trigger a redraw! (Shell deactivated does not mean		// it is not visible any longer.//	 	leave(UNINSTALL | COMMIT | DOCUMENT_CHANGED);				// Better:		// Check with content assistant and only leave if its not the proposal shell that took the 		// focus away.				StyledText text;		Display display;		if (fAssistant == null || fViewer == null || (text= fViewer.getTextWidget()) == null 				|| (display= text.getDisplay()) == null || display.isDisposed()) {		 	leave(UNINSTALL | COMMIT);		} else {			// Post in UI thread since the assistant popup will only get the focus after we lose it.			display.asyncExec(new Runnable() {				public void run() {					// TODO add isDisposed / isUninstalled / hasLeft check? for now: check for content type,					// since it gets nullified in leave()					if (fAssistant == null || !fAssistant.hasFocus() || fContentType == null)  {						leave(UNINSTALL | COMMIT);					}				}			});		}	}