private void updatePreviewSize() { Point minSize; Rectangle bounds = scroll.getClientArea(); if (preview.isFitHorizontal()) { if (preview.isFitVertical()) minSize = new Point(0, 0); // Best fit else minSize = new Point(0, preview.computeSize(bounds.width, SWT.DEFAULT).y); // Fit to width } else { if (preview.isFitVertical()) minSize = new Point(preview.computeSize(SWT.DEFAULT, bounds.height).x, 0); // Fit to height else minSize = preview.computeSize(SWT.DEFAULT, SWT.DEFAULT); // Custom // scale } scroll.setMinSize(minSize); }