Commit Graph

173 Commits

Author SHA1 Message Date
Rachel Fenichel 4152542c2f Fix some lint errors 2017-02-03 14:01:18 -08:00
Andrew n marshall e95991cba8 Adding @namespace annotations for JSDoc. (#900) 2017-02-01 09:10:35 -08:00
Tim Dawborn 39731c6ddc Change CSS transforms to work with older browsers (#879)
* Change the setting of the CSS transform properties on SVG nodes to set both the unprefixed version and the `-webkit-` prefixed version so that Blockly correctly renders in order browsers, such as Safari < 9 and iOS Safari < 9.2. For discussion of this issue, see https://groups.google.com/forum/#!topic/blockly/o3pERaRQhSg

* Correct the separation between the CSS transform property and the rest of the CSS that was in the variable misleadingly called "transform".
2017-01-27 09:19:58 -08:00
Andrew n marshall 624afeee94 Blockly.Extensions.buildTooltipForDropdown(..): Deferred validation. (#870)
Defer tooltip message string check until after load, when all Blockly.Msg should be loaded.
Avoids validation in headless mode, due to lack of document.readyState.
2017-01-26 15:12:32 -08:00
Andrew n marshall 7b0275cd70 Porting math.js blocks to JSON (#846)
Moving all `math.js` definitions into a single JSON array, complete with i18n syntax for all messages, dropdowns, and tooltips.

Adding Blockly.Extensions.buildTooltipForDropdown(..) to facilitate the creation and error-checking of tooltips that update based on the value of a dropdown.

Now warn on raw string in JSON 'extensions'.
2017-01-23 10:23:55 -08:00
Andrew n marshall ac3df2759c PR #818: Adding support for string table lookups in dropdown field labels
Adding support for string table lookups in dropdown field labels specified in JSON.

Adds Blockly.utils.replaceMessageReferences() method to handle string replacement without interpolation tokens.  Effectively uses the same old code, now moved into tokenizeInterpolation_(), which takes a parseInterpolationTokens option.

Replaces the direct JavaScript references (not pure JSON, and thus not portable).

Demonstrating this behavior in the logic_boolean dropdown.
2017-01-11 15:47:56 -08:00
picklesrus 6aee3ed2da Fixes #786 by checking if getComputedStyle is null in is3dSupported. We do not cache the value in this case and try again later. is3dSupported is only called while users are interacting with blockly which they cannot do while hidden so the performance implications of running the check again are minimal. (#787) 2016-12-16 09:52:19 -08:00
picklesrus e1cd21842a Add a workspace drag surface that blocks and bubble get moved to duri… (#778)
* Add a workspace drag surface that blocks and bubble get moved to during a workspace drag.
The surface is translated using translate3d instead of svg's translate attribute so that
the browser does not have to repaint the entire workspace on every mouse move.
This is very similar to the block drag surface.

* Address code review comments

* add back hasClass_ utility removed in #748 and stop using contains since it is not supported in IE
2016-12-15 11:02:49 -08:00
picklesrus a82bd49d7e Split the scrollbar and flyout out into their own SVG elements. They (#771)
* Split the scrollbar and flyout out into their own SVG elements. They
are siblings of the workpsace SVG.  This paves the way to make performance
improvements to workspace dragging.
2016-12-09 16:19:19 -08:00
Neil Fraser c27841f8df Fix compiler errors. 2016-11-15 16:41:11 -08:00
Andrew n marshall e5d25bb686 String reference in JSON string messages (#741)
* Adds message references to message string interpolation, in the form of %{BKY_STRING}.
 * Re-adding CONTROLS_IFELSE block using the new syntax, referencing to CONTROL_IF equivalents.
2016-11-15 15:51:51 -08:00
Neil Fraser f6aef459fc API-breaking cleanup. But doubtful anyone will be affected. (#748)
* Make add/removeClass return whether they did anything.
* Move more functions onto utils.
* Move bind functions to Blockly.
* Routine recompile.
2016-11-15 13:54:33 -08:00
picklesrus 7f02c19bfe Improve performance of block dragging. This is a backport of the blo… (#732)
Improve performance of block dragging.  This is a backport of the block drag surface from scratch-blocks.  At the beginning of a block drag, blocks get moved to a drag surface which then translates using translate3d to avoid repainting the entire svg on every mouse move.  At the end of the drag, the blocks are dropped back in the svg in their new position.
2016-11-15 13:19:49 -08:00
Neil Fraser 32713726dc Don't split dropdown text if there is an image. 2016-11-11 04:27:54 -08:00
Neil Fraser 5b033e2f7b Misc cleanup. 2016-11-05 00:15:39 -07:00
Neil Fraser 415c6ed65e Add $ back into the ID soup. Issue #251. 2016-10-06 18:52:25 -07:00
Rachel Fenichel 63410dd719 rebuild 2016-09-23 13:49:15 -07:00
Rachel Fenichel ed983333eb bindEventWithChecks_ for internal use, and bindEvent_ with old behaviour but deprecated 2016-09-23 13:46:11 -07:00
Rachel Fenichel 7d435bdb99 Review cleanup 2016-09-21 13:44:55 -07:00
Rachel Fenichel 109e4bb352 Move code to touch.js 2016-09-07 17:42:09 -07:00
Rachel Fenichel 717bb1e660 Use different touch event constructor 2016-09-07 15:57:05 -07:00
Rachel Fenichel c373d6d091 Make context menus work again; fix dragging from the toolbox with variables. 2016-09-07 15:49:20 -07:00
Rachel Fenichel 2774cc1663 Fix longpress in flyout; leave debug messages in 2016-09-01 13:08:59 -07:00
Rachel Fenichel 1c025672b3 Clear touch identifier at the ends of more drags. Includes flyout background, right-clicks on blocks, and loading sounds. 2016-08-31 15:56:37 -07:00
Rachel Fenichel b77c080678 Fix bugs with missing mouseUp events on mutators. Also stop filtering out key presses. 2016-08-25 15:18:53 -07:00
Rachel Fenichel 7a7932acc7 No longer drops mouseUps; fixed lint per neil's comments 2016-08-18 14:46:28 -07:00
Rachel Fenichel e8ebc5441f Handle each changed touch as a separate touch event 2016-07-21 14:07:03 -07:00
Rachel Fenichel 6b7965a727 Ignore everything but the first touch stream 2016-07-20 17:03:24 -07:00
Neil Fraser 98617d8ddc Move tokenizeIntepolation into Blockly.utils namespace. 2016-06-22 13:01:37 -07:00
Rachel Fenichel 42f620daa2 Check if matrix is null in mouseToSvg 2016-06-21 15:56:00 -07:00
Rachel Fenichel c4cad3c6e4 Cache screen CTM for performance improvement. 2016-06-17 14:26:04 -07:00
Neil Fraser 3012d52808 Line wrap comments in generated code. 2016-06-08 00:12:58 -07:00
Rachel Fenichel 32eed0d2f8 Merge branch 'develop' into cleanup/lint 2016-05-10 14:43:09 -07:00
Rachel Fenichel 3605dfb9c0 Undo decimation of variable redeclarations 2016-05-10 14:40:48 -07:00
Rachel Fenichel 640b38f38e lint 2016-05-05 13:13:48 -07:00
Katelyn Mann ca16d1fefe An alternate (and less expensive) way to keep stuff outside of the blockly div
from getting selected. Use e.preventDefault instead of adding and removing
classes on mousedown and mouseup.  This keeps the browser from having to
potentially recacluate style on mousedown and mouseup events.
2016-05-04 19:12:38 -07:00
Neil Fraser 217c681b86 Use direct call to svg resize rather than event. Also fix issue #296. 2016-05-04 15:00:57 -07:00
Katelyn Mann b11bd4fb71 Remove Blockly.removeAllRanges and replace it with calls to add/remove
css to mark text as unselectable instead.  I can't prove this is
significantly faster with numbers since the call to setup the time out
costs ~.1ms and the call when the timer fires is ~.05.  This happens on almost
every mouse event though.  Plus, it seems to remove a flicker of highlighting when
frames are skipped and keeps scrolling via the scrollbar from highlighting.
2016-03-28 10:06:43 -07:00
Neil Fraser 39fbd24659 Remove setProcedureParameters from API (use domToMutation instead). 2016-03-22 10:48:13 -07:00
Neil Fraser aeabf0ec6f Fix issue 251, $ in ID. 2016-02-16 22:16:36 -08:00
Neil Fraser 5297344a8b Fix RTL XML. 2016-02-16 13:04:47 -08:00
Neil Fraser 4b0ed0d372 Add custom event file. 2016-01-12 16:47:18 -08:00
Neil Fraser 3bce368115 Simplify workspace options by removing svg property. 2016-01-07 17:01:01 -08:00
Neil Fraser e5dfdf4658 Improve randomness of UUIDs. 2015-11-24 19:16:01 -08:00
Neil Fraser d702808f71 Add UUID generator. 2015-11-19 01:46:53 -08:00
Neil Fraser 7568015c8c Scale the flyout as the workspace zooms. 2015-09-01 20:00:13 +01:00
Neil Fraser 8f73c6b042 Clean getSvgXY_.
No functional change.
2015-09-01 12:22:50 +01:00
Neil Fraser f81a5bd11a Expand regex to handle IE's scientific notation. 2015-08-26 14:08:03 +01:00
Markus Bordihn d555121a1c Update utils.js
There is no global "getSelection()" function, see:
https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection
2015-08-25 15:39:09 +02:00
Neil Fraser 5b7fec7092 Add zooming feature.
By carloslfu.
2015-08-19 17:21:05 -07:00