Instead of using getTotalMatrix and setMatrix, we can just use
save/restore, which is more idiomatic.
The getTotalMatrix/setMatrix pattern was introduced to improve
performance, but the original code was calling getTotalMatrix/setMatrix
at every node in the sprite tree, which is much slower than the normal
save/transform/restore pattern.
Related to #4254
* Add a map of relative to absolute paths for assets located outside the app's
source directory
* If a "packages" directory exists, obtain assets from there instead of
using the packages/ prefix to indicate package map lookup
1. Use the primary color brightness to determine the color of the status bar.
The status bar overlaps the toolbar, which has the primary color.
2. Use Roboto for text.
Also:
* Make PaginatedDataTable able to scroll itself horizontally.
* Make drop down buttons support having an explicit text style and icon
size given.
* Fix a bug with drop-down buttons asserting when opened partly
off-screen.
* Make sure to pop the drop-down button's route if the drop-down button
is discarded while the route is up.
* Remove extraneous padding on drop-down buttons. (Couldn't figure out
why it was there, and it breaks alignment when a drop-down is mixed
with other text.)
* Some docs improvements.
* Add Route.isActive
* Add a setState() method to ModalRoutes.
I was also going to implement sorting and emptying the cart but the
current data model doesn't make that easy, so I gave up on that. That's
why the TODOs are moved around though.
* refactor the --resident run option into a separate file
* update daemon to run --resident apps
* re-plumbing daemon start
* send app logs
* update tests
* review changes
* fix test runner
* remove PackageMap.createGlobalInstance; rely on the ctor
* review comments
This fix isn't completely statisfying because it has a scaling limit. The ideal
fix would actually viewport the tiles in the grid. However, this fix is much
easier at the moment.
Fixes#4395
Now that there's a new string_scanner in town, we're having dependency
resolution conflict because of flutter_markdown's tight dependency. This
patch loosens the dependency and resolves the conflict.
Assigning to `size` called our intrinsic sizing functions re-entrantly, which
is a destructive operation on TextPainter. Ideally we'd made that a
non-destructive operation, but in the meantime we can fix the tab fading issue
by grabbing the text size before assigning to `size`.
Fixes#4365