Skip to content

Commit f557d0d

Browse files
committed
Use native screenshot in animation demo tests
1 parent 0e5268e commit f557d0d

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

docs/demos/common/src/test/java/com/codenameone/developerguide/animations/AnimationDemosScreenshotTest.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,26 @@ private void saveScreenshot(String storageKey, Image screenshot) throws IOExcept
9595
}
9696

9797
private Image capture(Form form) {
98-
Image screenshot = Image.createImage(form.getWidth(), form.getHeight());
99-
if (Display.getInstance().shouldPaintNativeScreenshot(screenshot)) {
98+
final Display display = Display.getInstance();
99+
final Image[] holder = new Image[1];
100+
display.screenshot(screen -> holder[0] = screen);
101+
102+
display.invokeAndBlock(() -> {
103+
long deadline = System.currentTimeMillis() + 2000L;
104+
while (holder[0] == null && System.currentTimeMillis() < deadline) {
105+
Util.sleep(20);
106+
}
107+
});
108+
109+
Image screenshot = holder[0];
110+
if (screenshot == null) {
111+
screenshot = Image.createImage(form.getWidth(), form.getHeight());
112+
}
113+
114+
if (screenshot.getGraphics() != null && display.shouldPaintNativeScreenshot(screenshot)) {
100115
form.paintComponent(screenshot.getGraphics(), true);
101116
}
117+
102118
return screenshot;
103119
}
104120

0 commit comments

Comments
 (0)