* 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)
- added TODO comments to all functions that need updating (byob, blocks)
- separate out the code into 3 new functions for readability:
- `saveFileAs` is a generic method
- `saveCanvasAs` and `saveXMLAs` are wrappers which aid in exporting images and all XML files which together cover almost all export cases.
- In other cases, you can call `saveFileAs` directly with some additional input.
- `saveCanvasAs` in particular uses a new `Canvas.toBlob()` option when it is available (FF and IE currently) that should greatly reduce memory.
(Chrome and Safari both have open bugs and may at somepoint implement this function.)
- I have added in code to detect bugs in chrome, including when a new window is being opened. If a new window cannot be opened, the a (to be written) warning message will appear.
- a few functions (namely those in morphic.js) have not touched. However, these are functions which should only occur in a small subset of cases and are behind hidden features.
* BYOB, Objects, GUI: New “Remove Unused Global Blocks” Feature
* GUI, Lists: “Export Project Summary” improvements:
- show variable values as watcher pics
- expand list watcher pics to show their complete contents (1. level)
- url for shared projects
- table of contents
- basic support for sprite nesting and inheritance
- make the summary “browsable” instead of editable
- outline around sprite / stage snapshots
- experimental hidden (shift-click) “drop-shadows” option
* GUI: Rearrange project menu, only show global blocks-related ops if
there are any
* GUI: Remove URL location.hash information when loading a new project
* Store: Fix deserialization support for projects using inheritance
* German translation update
This function was only used for tools.xml, and didnt even do its job...
As of this writing, it simply prepended the `baseURL` variable, which is
determined by the Snap! server, not s.b.e.
If we want to have s.b.e as a permanent fallback source we should re-implement
this in a way that is used for all Snap! media.
This fixes a small typo in the LIBRARIES file, so that the leap motion lib will
load correctly.
This renames the getCostumesList() method to getMediaList() because its used for
Costumes, Backgrounds, Sounds, and soon libraries.
* 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)
activate:
- shift + click on a scripting pane's background
- shift + click on any block
- shift + enter in the IDE's edit mode
stop editing:
- left-click on scripting pane's background
- esc
navigate among scripts:
- tab: next script
- backtab (shift + tab): last script
start editing a new script:
- shift + enter
navigate among commands within a script:
- down arrow: next command
- up arrow: last command
navigate among all elements within a script:
- right arrow: next element (block or input)
- left arrow: last element
move the currently edited script (stack of blocks):
- shift + arrow keys (left, right, up, down)
editing scripts:
- backspace:
* delete currently focused reporter
* delete command above current insertion mark (blinking)
* collapse currently focused variadic input by one element
- enter:
* edit currently focused input slot
* expand currently focused variadic input by one element
- space:
* activate currently focused input slot's pull-down menu, if any
* show a menu of reachable variables for the focused input or
reporter
- any other key:
start searching for insertable matching blocks
- in menus triggered by this feature:
* navigate with up / down arrow keys
* trigger selection with enter
* cancel menu with esc
- in the search bar triggered b this feature:
* keep typing / deleting to narrow and update matches
* navigate among shown matches with up / down arrow keys
* insert selected match at the focus' position with enter
* cancel searching and inserting with esc
running the currently edited script:
* shift+ctrl+enter simulates clicking the edited script with
the mouse
add additional yields to nextSteps() to work around a bug recently
introduced to Chrome (other browsers don’t need this kludge). Remember
to take those yields out again when and if Chrome (ever) fixes this
(which, for all I know, may be never)
* 'master' of git://github.com/jmoenig/Snap--Build-Your-Own-Blocks: (34 commits)
tail-call-elimination for reporters - experiment
allow recursive reporters to be stopped by user
updated history
fixed#131Fixed#34Fixed#644Fixed#372Fixed#416Fixed#318
Fix “stop this block” primitive for tail-call-elimination
Fix "stop this block"’s lexical awareness
Add a new Favicon to Snap! (Clearer Lambda)
integrate translation update
push morphic.js version date
fix ‘line’ option in ‘split’ block for Windows files
integrate percent sign fix for JSLint
Updated the “About” Dialog
renamed Process::callback to "onComplete"
Fixed#364 avoid “freezing” when calling LAUNCH on empty ring
Fixed#642, avoid “freezing” when calling CONS on non-list/null
...
When Snap! is loaded, Snap! will now check whether a user is logged in
(via the presence of `SnapCloud.username`) and if so, the default save
location will be the cloud.
Using full http://s.b.e/snapsource/tools.xml disallows local repository.
Using relative tools.xml disallows running from local disk but getting tools from s.b.e.
So we try both.