Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upAdded call to event.PreventDefault on html text inputs and textareas. #8400
Conversation
This change should prevent page scrolling when up/down buttons are pressed.
highfive
commented
Nov 8, 2015
|
Thanks for the pull request, and welcome! The Servo team is excited to review your changes, and you should hear from @jdm (or someone else) soon. |
|
Thanks for the PR! Have you verified that the fix works as expected? |
|
Yep, I made a sample html file with a text input and textarea followed by a huge block of lorem ipsum so that the page will scroll when pressing up/down when the inputs have focus. I applied the fixes and tested again and the issue did not occur. |
|
@bors-servo: r+ |
|
|
Added call to event.PreventDefault on html text inputs and textareas. This change should prevent page scrolling when up/down buttons are pressed within text inputs and textboxes which should resolve issue #8379. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8400) <!-- Reviewable:end -->
|
|
Properly dispatch keypress event <!-- 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](https://github.com/servo/servo/blob/1327ebd52f53f5f6637a12fab6cf0cad0aa0be6f/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 <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14738) <!-- Reviewable:end -->
sylvesterwillis commentedNov 8, 2015
This change should prevent page scrolling when up/down buttons are pressed within text inputs and textboxes which should resolve issue #8379.