In some special circumstances, when position was passed in constructor
and when position key was before size key, bounds were wrongly
calculated.
This ensure that when size is set, even the first time, bounds are
properly recalculated.
Closes#1686
When a group had `applyMatrix` set to `false`, when its parent's matrix
was applied, its matrix was applied to its children then it was reset.
This makes sure that in this case, parent matrix is only added to child
matrix but not applied to child's children and that child's matrix is
not reset.
Closes#1711
Empty raster (for example coming from path with empty bound
rasterization, ...) drawing threw error.
This change prevent raster drawing in that case.
Closes#1320
Group selected color was applied differently to its bounds and position
depending on whether it had children or not when selected color was set.
This resulted in an unpredictable behaviour from a user point of view.
To change that:
- When `item.setSelectedColor()` is called, value is now always stored
in `item._style._values`, independently from the fact that item has
children or not.
- An helper method `compareCanvas()` is added to the test suite to allow
comparing selection rendering of a known working case to a failing one.
Two provided callbacks are executed in a dedicated `<canvas>`/`Project`
context and both results are compared with `resemble.js`.
Mouse interactions tests only passed in `gulp load` context.
This make sure that native event classes are used in built context.
This also remove the reference to `CanvasProvider` which is not
available in built context.
Fixes bug introduced in #1570
- Tests common mouse interactions scenarios to prevent regressions
when making changes. These tests are not run in node context.
- Prevent name collision between Javascript native classes and Paper.js
classes (Event and MouseEvent) by patching load.js.
- Uses a polyfill for MouseEvent which is missing in PhantomJS.
- Adds View._clearState() method and use it in tests to make sure that
each new test is started with a fresh state.