Skip to content

Commit 448fe66

Browse files
committed
Extension
1 parent 6284318 commit 448fe66

File tree

4 files changed

+57
-45
lines changed

4 files changed

+57
-45
lines changed

bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/AnnotationRulerColumn.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -527,24 +527,25 @@ private void doubleBufferPaint(GC dest) {
527527
if (fBuffer == null) {
528528
fBuffer= new Image(fCanvas.getDisplay(), this::doPaint, size.x, size.y);
529529
} else {
530-
doPaint(new GC(fBuffer), size.x, size.y);
530+
GC gc= new GC(fBuffer);
531+
try {
532+
doPaint(gc, size.x, size.y);
533+
} finally {
534+
gc.dispose();
535+
}
531536
}
532537
dest.drawImage(fBuffer, 0, 0);
533538
}
534539

535540
private void doPaint(GC gc, int width, int height) {
536541
gc.setFont(fCachedTextWidget.getFont());
537-
try {
538-
gc.setBackground(fCanvas.getBackground());
539-
gc.fillRectangle(0, 0, width, height);
542+
gc.setBackground(fCanvas.getBackground());
543+
gc.fillRectangle(0, 0, width, height);
540544

541-
if (fCachedTextViewer instanceof ITextViewerExtension5)
542-
doPaint1(gc);
543-
else
544-
doPaint(gc);
545-
} finally {
546-
gc.dispose();
547-
}
545+
if (fCachedTextViewer instanceof ITextViewerExtension5)
546+
doPaint1(gc);
547+
else
548+
doPaint(gc);
548549
}
549550

550551
/**

bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/ChangeRulerColumn.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,12 @@ private void doubleBufferPaint(GC dest) {
259259
if (fBuffer == null) {
260260
fBuffer= new Image(fCanvas.getDisplay(), this::doPaint, size.x, size.y);
261261
} else {
262-
doPaint(new GC(fBuffer), size.x, size.y);
262+
GC gc= new GC(fBuffer);
263+
try {
264+
doPaint(gc, size.x, size.y);
265+
} finally {
266+
gc.dispose();
267+
}
263268
}
264269

265270
dest.drawImage(fBuffer, 0, 0);
@@ -291,15 +296,10 @@ protected final boolean isViewerCompletelyShown() {
291296

292297
private void doPaint(GC gc, int width, int height) {
293298
gc.setFont(fCanvas.getFont());
299+
gc.setBackground(getBackground());
300+
gc.fillRectangle(0, 0, width, height);
294301

295-
try {
296-
gc.setBackground(getBackground());
297-
gc.fillRectangle(0, 0, width, height);
298-
299-
doPaint(gc);
300-
} finally {
301-
gc.dispose();
302-
}
302+
doPaint(gc);
303303
}
304304

305305
/**

bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/OverviewRuler.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -686,23 +686,24 @@ private void doubleBufferPaint(GC dest) {
686686
if (fBuffer == null) {
687687
fBuffer= new Image(fCanvas.getDisplay(), this::doPaint, size.x, size.y);
688688
} else {
689-
doPaint(new GC(fBuffer), size.x, size.y);
689+
GC gc= new GC(fBuffer);
690+
try {
691+
doPaint(gc, size.x, size.y);
692+
} finally {
693+
gc.dispose();
694+
}
690695
}
691696

692697
dest.drawImage(fBuffer, 0, 0);
693698
}
694699

695700
private void doPaint(GC gc, int width, int height) {
696-
try {
697-
gc.setBackground(fCanvas.getBackground());
698-
gc.fillRectangle(0, 0, width, height);
701+
gc.setBackground(fCanvas.getBackground());
702+
gc.fillRectangle(0, 0, width, height);
699703

700-
cacheAnnotations();
704+
cacheAnnotations();
701705

702-
doPaint(gc);
703-
} finally {
704-
gc.dispose();
705-
}
706+
doPaint(gc);
706707
}
707708

708709
private void cacheAnnotations() {

bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/VerticalRuler.java

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,13 @@ public Control createControl(Composite parent, ITextViewer textViewer) {
159159
fTextViewer= null;
160160
});
161161

162+
fCanvas.addListener(SWT.ZoomChanged, e -> {
163+
if (fBuffer != null) {
164+
fBuffer.dispose();
165+
fBuffer= null;
166+
}
167+
});
168+
162169
fCanvas.addMouseListener(new MouseListener() {
163170
@Override
164171
public void mouseUp(MouseEvent event) {
@@ -223,27 +230,30 @@ private void doubleBufferPaint(GC dest) {
223230
fBuffer= null;
224231
}
225232
}
226-
if (fBuffer == null)
227-
fBuffer= new Image(fCanvas.getDisplay(), size.x, size.y);
228-
229-
GC gc= new GC(fBuffer);
230-
gc.setFont(fTextViewer.getTextWidget().getFont());
231-
try {
232-
gc.setBackground(fCanvas.getBackground());
233-
gc.fillRectangle(0, 0, size.x, size.y);
234-
235-
if (fTextViewer instanceof ITextViewerExtension5)
236-
doPaint1(gc);
237-
else
238-
doPaint(gc);
239233

240-
} finally {
241-
gc.dispose();
234+
if (fBuffer == null) {
235+
fBuffer= new Image(fCanvas.getDisplay(), this::doPaint, size.x, size.y);
236+
} else {
237+
GC gc= new GC(fBuffer);
238+
try {
239+
doPaint(gc, size.x, size.y);
240+
} finally {
241+
gc.dispose();
242+
}
242243
}
243-
244244
dest.drawImage(fBuffer, 0, 0);
245245
}
246246

247+
private void doPaint(GC gc, int width, int height) {
248+
gc.setBackground(fCanvas.getBackground());
249+
gc.fillRectangle(0, 0, width, height);
250+
251+
if (fTextViewer instanceof ITextViewerExtension5)
252+
doPaint1(gc);
253+
else
254+
doPaint(gc);
255+
}
256+
247257
/**
248258
* Returns the document offset of the upper left corner of the
249259
* widgets view port, possibly including partially visible lines.

0 commit comments

Comments
 (0)