diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormText.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormText.java index 48edf36d91c..0e2bde803f5 100644 --- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormText.java +++ b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormText.java @@ -1555,7 +1555,14 @@ private void paint(PaintEvent e) { gc.setForeground(getForeground()); gc.setBackground(getBackground()); Point size = getSize(); - repaint(gc, 0, 0, size.x, size.y); + Rectangle paintBounds; + if (size.x == 0 && size.y == 0) { + // avoids crash on image creation with (0,0) image size + paintBounds = new Rectangle(e.x, e.y, e.width, e.height); + } else { + paintBounds = new Rectangle(0, 0, size.x, size.y); + } + repaint(gc, paintBounds.x, paintBounds.y, paintBounds.width, paintBounds.height); } private void repaint(GC gc, int x, int y, int width, int height) {