Remove the Widgets framework's PointerEventListener definition now that
the Rendering layer has one. It was previously clashing in files that
imported both, which would result in it being hidden. Turns out
MineDigger is the only example that this affects.
This change ensures that we only store the results of a hit
test on the initial pointer down event. Moreover, we perform
new hit tests each time a hovering pointer moves. This is
important to ensure correct behavior of input devices which can
hover, such as mice.
Previously the first hover movement after releasing a mouse
button would cause a new pointer state to be recorded along with
hit test results for wherever the pointer happened to be which
caused the following pointer down event to be delivered to the
wrong place.
Fixes issue #1189.
Remove view manager from consideration for now.
Although we could also remove the dependency on surfaces, it makes
sense to keep it for a little while longer since the replacement
for view manager will likely depend on it or a similar compositor.
This adds a new placeholder dart package updater in sky/packages. This is built
into a snapshot and compiled into the Sky engine binary using the same
mechanism as the Dart isolate.
I also added a SkyHeadless class, similar to SkyView, used for running Dart
code without a view.
- Remove the unique objects used as slots since we decided 'null' was
fine after all
- Rename 'slot' to 'newSlot' when it's used as an argument to change the
_slot field, to clarify which variable has the newer value
- Remove the RenderObject registry since we'll do listeners a different
way. This also removes handleEvent for the same reason.
- Remove the TODOs for mount/unmount becoming didMount/didUnmount since
the methods do in fact do the mounting/unmounting.
In the old world, we had two ways to bind a Widget tree to a
RenderObject node, one way for RenderView and one mostly untested way
for other cases (it's only tested by the spinning_mixed.dart demo). For
fn3, I made these the same code path.
This patch also introduces GlobalKey, though the GlobalKey logic isn't
hooked in yet.
This is Hello World in the new world:
```dart
import 'package:sky/src/fn3.dart';
void main() {
runApp(new Text('Hello World!'));
}
```