gecko-dev/servo/components/atoms
Ravi Shankar 09c2667a16 servo: Merge #14738 - Properly dispatch keypress event (from Wafflespeanut:keypress); r=jdm
<!-- Please describe your changes on the following line: -->

This was an attempt to fix #14659. It turned out that the problem wasn't what I thought it was. So, I didn't fix that. On the brighter side, this fixes two related issues.

- Previously, we were unable to launch `keypress` events from `input` and `textarea` elements, because [we'd been cancelling](1327ebd52f/components/script/dom/htmlinputelement.rs (L1120-L1124)) the key events, so that they don't trigger window navigation - #8400). I've introduced an enum to represent an additional state to an event's cancellation.
- [According to the spec](https://w3c.github.io/uievents/#keypress-event-order), `keypress` (if available) should be dispatched immediately after `keydown`, and it should be followed by `input`. Canceling `keypress` should also cancel `input`. But, we'd been dispatching `input` before `keypress`. We now dispatch `input` once the `keypress` event is on the respective elements.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors

<!-- Either: -->
- [x] These changes do not require tests because it's a refactor?

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

r? @jdm or anyone interested

Source-Repo: https://github.com/servo/servo
Source-Revision: 6f9ff7b8bf66cbeb7d539c6728db05f05aa8f85c
2017-01-04 10:52:06 -08:00
..
Cargo.toml servo: Merge #14381 - Move to Cargo workspaces (from servo:workspaces); r=SimonSapin 2016-11-28 01:44:40 -08:00
build.rs servo: Merge #14043 - Update to string-cache 0.3 (from servo:string-cache-up); r=nox 2016-11-03 11:19:44 -05:00
lib.rs servo: Merge #14043 - Update to string-cache 0.3 (from servo:string-cache-up); r=nox 2016-11-03 11:19:44 -05:00
static_atoms.txt servo: Merge #14738 - Properly dispatch keypress event (from Wafflespeanut:keypress); r=jdm 2017-01-04 10:52:06 -08:00