@Override public void redraw() { if (fCachedTextViewer != null && fCanvas != null && !fCanvas.isDisposed()) { if (VerticalRuler.AVOID_NEW_GC) { fCanvas.redraw(); } else { GC gc= new GC(fCanvas); doubleBufferPaint(gc); gc.dispose(); } } }
@Override public void redraw() { if (fCachedTextViewer != null && fCanvas != null && !fCanvas.isDisposed()) { if (VerticalRuler.AVOID_NEW_GC) { fCanvas.redraw(); fCanvas.update(); } else { GC gc= new GC(fCanvas); doubleBufferPaint(gc); gc.dispose(); } } }
@Override public Control createControl(CompositeRuler parentRuler, Composite parentControl) { fParentRuler= parentRuler; fCachedTextViewer= parentRuler.getTextViewer(); fCachedTextWidget= fCachedTextViewer.getTextWidget(); fCanvas= new Canvas(parentControl, SWT.NONE); fCanvas.setBackground(getBackground()); fCanvas.addPaintListener(event -> { if (fCachedTextViewer != null) doubleBufferPaint(event.gc); }); fCanvas.addDisposeListener(e -> { handleDispose(); fCachedTextViewer= null; fCachedTextWidget= null; }); fCanvas.addMouseListener(fMouseHandler); fCanvas.addMouseMoveListener(fMouseHandler); if (fCachedTextViewer != null) { fCachedTextViewer.addViewportListener(fInternalListener); fCachedTextViewer.addTextListener(fInternalListener); } fRevisionPainter.setParentRuler(parentRuler); fDiffPainter.setParentRuler(parentRuler); return fCanvas; }