tmpParentShell.setSize(bounds.width, bounds.height);
org.eclipse.swt.widgets.Canvas screenshotCanvas = new org.eclipse.swt.widgets.Canvas(tmpParentShell, SWT.NO_BACKGROUND);
screenshotCanvas.setSize(bounds.width, bounds.height);
GC displayGC = new GC(display);
final Image screenshot = new Image(display, bounds.width, bounds.height);
displayGC.copyArea(screenshot, location.x, location.y);
displayGC.dispose();
PaintListener paintListener = new PaintListener() {
public void paintControl(PaintEvent e) {
e.gc.drawImage(screenshot, 0, 0);
}