[ermine] Fix pointer click-behind issue.

This change fixes the issue where both ermine and child view
are clicked simultaneously. More specifically, if Ask is open on top of the
Settings app, any gesture on top of ask is also applied to the
settings app. The fix is to hittest where the pointer is clicked
to disambiguate the correct interactive surface.

This also changes the use of the pointer capture listener service.
It does not use the pointer_events_listener to inject events from
the service back into flutter app. Instead, ermine uses the events
to perform disambiguation using hittest as mentioned above.

Also fixes a crash found when switching between ermine and child
views. See: http://fxb/56041

Bug: 38173
Bug: 56041

Test: Updated app_model_test. Removed scrim_widget_test, moving its
tests to app_model_test.

Change-Id: I64cf8079187fe7165879e6cd89ad06d4c050a93c
Reviewed-on: https://fuchsia-review.googlesource.com/c/experiences/+/406897
Commit-Queue: Sanjay Chouksey <sanjayc@google.com>
Reviewed-by: Chase Latta <chaselatta@google.com>
Testability-Review: Chase Latta <chaselatta@google.com>
8 files changed
tree: 2d44baee3dcde4031b14b8cbbde5926caa76bc40
  1. base_shells/
  2. benchmarks/
  3. bin/
  4. examples/
  5. lib/
  6. session_shells/
  7. settings/
  8. tests/
  9. .gitignore
  10. analysis_options.yaml
  11. AUTHORS
  12. BUILD.gn
  13. CONTRIBUTING.md
  14. LICENSE
  15. OWNERS
  16. PATENTS
  17. README.md
README.md

Fuchsia Experiences Repository

This is a companion repository to Fuchsia and contains code that either implements or supports user facing code for the Fuchsia platform. The code provides a majority of the user interface for the Workstation product as well as a small set of examples, tests, and benchmarks.

Build & Run

This repository is a “source petal” included in the Fuchsia Platform Source Tree (FPST) checkout. Code in this repository must be built with Fuchsia in order to be functional, see (the guide)[https://fuchsia.dev/fuchsia-src/development/source_code] for instructions on getting the source.

Hardware

Hardware support should be considered experimental. However, NUC's and Pixelbooks are known to work best. For details on hardware setup see: (Install Fuchsia on a Device)[https://fuchsia.dev/fuchsia-src/development/hardware/paving]

Building

Once you have functional checkout you can (configure a build)[https://fuchsia.dev/fuchsia-src/development/build/fx#configure-a-build] targeting Workstation:

    fx set workstation.<board> # For options run: `fx list-boards`
    fx build

See Fuchsia's (build and pave instructions)[https://fuchsia.dev/fuchsia-src/development/build/build_and_pave_quickstart] for detailed instructions.

Running

Once built, standard Fuchsia workflows for paving, running code, and testing apply. See: (fx workflows)[https://fuchsia.dev/fuchsia-src/development/build/fx] for detailed instructions.