This did the trick for me:
PWindow win;
public void settings() {
size(320, 240);
}
void setup() {
surface.setLocation(20,20);
win = new PWindow();
}
void draw() {
background(255, 0, 0);
fill(255);
rect(10, 10, frameCount, 10);
}
void mousePressed() {
println("mousePressed in primary window");
if(win == null) win = new PWindow();
}
class PWindow extends PApplet {
PWindow() {
super();
PApplet.runSketch(new String[] {this.getClass().getSimpleName()}, this);
}
void settings() {
size(500, 200);
}
void setup() {
background(150);
}
void draw() {
ellipse(random(width), random(height), random(50), random(50));
}
void mousePressed() {
println("mousePressed in secondary window");
}
void exit()
{
dispose();
win = null;
}
}
Clicking in the first window when the second is closed will also open a new secondary window.