From 10c8adaac6a301e1ecefdd9fd086f284b4dcc248 Mon Sep 17 00:00:00 2001 From: benfry Date: Sat, 21 Jul 2012 17:58:36 +0000 Subject: [PATCH] do not request a display device that does not exist --- .../processing/mode/java/runner/Runner.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/processing/mode/java/runner/Runner.java b/app/src/processing/mode/java/runner/Runner.java index 6d9a536ea..a5757f308 100644 --- a/app/src/processing/mode/java/runner/Runner.java +++ b/app/src/processing/mode/java/runner/Runner.java @@ -236,8 +236,23 @@ public class Runner implements MessageConsumer { GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] devices = ge.getScreenDevices(); - GraphicsDevice runDevice = - (runDisplay >= 0 && runDisplay < devices.length) ? devices[runDisplay] : editorDevice; + + // Make sure the display set in Preferences actually exists + GraphicsDevice runDevice = editorDevice; + if (runDisplay >= 0 && runDisplay < devices.length) { + runDevice = devices[runDisplay]; + } else { + runDevice = editorDevice; + for (int i = 0; i < devices.length; i++) { + if (devices[i] == runDevice) { + runDisplay = i; + break; + // Don't set the pref, might be a temporary thing. Users can + // open/close Preferences to reset the device themselves. +// Preferences.setInteger("run.display", runDisplay); + } + } + } Point windowLocation = editor.getSketchLocation(); // if (windowLocation != null) {