Pressing Run button twice launched two sketch windows, but only one of
them could be closed by Stop button. Pressing Stop had effect only after
sketch VM was launched.
Both of these issues are now fixed and buttons can handle a
frustration-relieving session of aggressive clicking, leaving one sketch
window if Run was the last button pressed or no window if Stop was the
last button pressed.
When clicking run button while a sketch is running, it will be activated
again when the sketch is restarted. Previously it got deactivated by the
old sketch runner, because it was quitting after the new sketch runner
started.
Otherwise java.util.Timer used by FPSAnimator uses 10 or 15 ms
resolution, which results in 60 fps sketches running at around 30 fps
and 30 fps sketches running at around 21 fps.
Fixes#4846
When Java2D sketch crashes, closing the window does not stop Event
Dispatch Thread. This fix makes PApplet.exit() do the right thing and
not wait for surface to finish when the thread is already dead.
Fixes#4831
Matrix stack could overflow in a very special case when beginShape() was
called while strokeWeight=1 and then strokeWeight was changed before
endShape(). This PR makes sure matrix is popped correctly even when user
changes strokeWeight in the beginShape()/endShape() block.
Decided to bug user only when necessary and not show warining when user
changes strokeWeight in the beginShape()/endShape() block, same as in
JAVA2D. Otherwise we could add checks for all the other things which are
mentioned in the docs, but it would be hell to maintain and use.
Fixes#4206
OPENGL and FX renderers will now correctly report button which triggered
this pressed/released event (same as JAVA2D).
Previously:
- OPENGL would report currently pressed buttons in order LEFT, CENTER,
RIGHT regardless of which button triggered the event. E.g. when holding
LEFT and presing RIGHT, LEFT would be reported. When holding CENTER and
pressing LEFT, LEFT would be reported
- FX would report only first button which is down, so in RELEASE event
button would be missing
Now:
- event contains only button which triggred this event (button just
pressed or just released)