* Visible Stepping with flashing blocks + slider for stepping speed
* user-controlled visible stepping with “step forward” button
* speed-up: removed unnecessary yields when running custom blocks
* you can now force a single yield with “wait 0” block
* tweaked keyboard entry: if inserted block has inputs go to first one
* only autoscroll panes where it makes sense (not the palette etc.)
* populate messages drop-down with all msgs, including ones from custom
block definition
* Show result bubble when the user clicks on a command script that uses
REPORT (You can now click on REPORT and it actually does something)
* New generic “When” hat block, enhances red stop button behavior
* New block (instance) variables feature (experimental)
* evaluator performance optimizations
* Morphic grab-threshold fix for scroll frames
* fixed several block rendering glitches
* List category LENGTH reporter now also works on text
* Changed “any” to “random” (in English only)
* new FILL primitive in the Pen category
* switched to animation frame scheduling, please use TURBO for music
* Updated German translation
* fixed occasional horizontal rendering artifacts in block “holes”
(C-shaped slots and Ring holes)
* improved user editing of input slots and fixed cursor behavior (note:
the text cursor inside input slots also blinks again, as it should have)
* always export comments attached to prototype hat blocks in the block
editor along with script pic
* when first opening a block editor on a custom block definition make
it big enough to show everything (as much as fits on the screen)
* remember block editor position and dimensions for each edited custom
block definition when acknowledging (pressing OK or APPLY) for the
session
* speed up stacking of commands and loading of projects by suppressing
redundant block redraws
* introducing a “grab threshold” preference to suppress accidental
grabbing through micro-movements of the hand. This addresses the
“cannot-click-on-drop-downs-in-Chrome-under-Windows” set of bug
reports, and also the issues that arise out of accidentally dragging
off a copy of a parameter blob when trying to just click on it to
rename it
* new hidden (shift-click) option to adjust the grab threshold in the
settings menu for the current session
* expand list watchers inside result bubbles and speech/thought
balloons to show everything (as much of the list’s first level as fist
into either the scripting area for result bubbles or the stage for
speech balloons - note resizing the stage affects the size of the list
watchers inside speech balloons, i.e. making the stage bigger increases
the number of visible elements even while the balloon is showing)
* fixed a bug that make an occasional gray rectangle appear at the
mouse pointer
* added a way to invoke blocks synchronously in JavaScript - under
construction (possibly to be used for generic “When” hat blocks and
user-customizable drop-downs)
* added methods to cache morphs’ fullImage and fullBounds while dragging
* Reporters (also nested reporters) and sprite icons (in the corral)
are now semi-transparent when being dragged, so you can see possible
drop target halos /through/ them
* in “prefer empty slot drops” mode (default) it is now much harder to
drop reporters onto non-static C-slots inside custom blocks (e.g. in
FOR loops) and onto variadic input arrowheads (to replace the whole
input with an input list)
* ScriptsMorphs are now noticing transparent clicks (addresses #997)
* %interaction slots are now static, fixed#982 (it is no longer
possible to drop reporters into the input slot of a “When I am…” hat
block (never was intended that it should be possible)
* fixed ctrl-f for the block editor in all situations (thanks, Brian,
for the bug report)
* opens a new browser tab on an editable HTML document containing an
overview of the current project which can be further processed (saved,
edited, printed, turned into a PDF) to create a project report.
* now, when you export script pics attached comments get included.
* also new: Support to detect and react to “any” keystroke (hat and
sensing blocks)
(Does that block have a name?)
This is good for two reasons:
* it just makes sense to have floor and ceiling together
* It's a minor thing for scratch 2 parity.
* it doesn't clutter anything. 😁
For some reason the function wasnt properly catching errors and was instead rasing native
JS errors. This fixes that bug, so the function will now report nothing when it doesnt know
what to do.
In addition, moving the variable `dateMap` inside the function reduces a global variable, which
shouldnt affect anything other than keeping the code clean. :)