Bug 52476 [painting] redraw behavior
build M7 Annotated method AnnotationPainter.handleDrawRequest with a repaint counter. 1) Open TestCase.java 2) add line >String s= < to tearDown method, set caret at end of line 3) spell checking enabled, otherwise default settings 3) type a single space -> 1 immediate repaint, 3 after timeout 4) type " -> auto inserted closing " + linked mode -> 10 immediate repaints, 3 after timeout
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/link/LinkedUIControl.java
fCurrentTarget.fKeyListener.setEnabled(false);
		fCurrentTarget.fAnnotationModel.removeAllAnnotations();
		if (viewer instanceof ISourceViewer) {
			ISourceViewer sv= (ISourceViewer) viewer;
			IAnnotationModel model= sv.getAnnotationModel();
			if (model instanceof IAnnotationModelExtension) {
				IAnnotationModelExtension ext= (IAnnotationModelExtension) model;
				ext.removeAnnotationModel(getUniqueKey());
			}
		}
		
		((IPostSelectionProvider) viewer).removePostSelectionChangedListener(fSelectionListener);
		redraw();
	}
	void leave(int flags) {
		if (!fIsActive)
			return;
		fIsActive= false;
		ITextViewerExtension extension= (ITextViewerExtension) fCurrentTarget.getViewer();
		IRewriteTarget target= extension.getRewriteTarget();
		if (fHasOpenCompoundChange) {
			target.endCompoundChange();
			fHasOpenCompoundChange= false;
		}
		
		disconnect();
		redraw();
		
		for (int i= 0; i < fTargets.length; i++) {
			if (fCurrentTarget.fKeyListener != null) {