Fixes#4622
Previously, when the edit point was being clamped leftward by a shortened
line, it would be placed one one character too far to the left instead of
at the very end.
The "if" removed here was introduced in f686943eb40aa25e0a06837eeae6a907d9617d2b to fix a crash, but the underlying reason for the crash was the incorrect "- 1", which has been there since the beginning ( 80764f65e3e4895d3a012d6bc1d3bb8183ae15da ).
Source-Repo: https://github.com/servo/servo
Source-Revision: 9844ec907e61793eee442d0f18c80c7c6e9534b2
Please bear with me. This is the first Rust code I've ever written and the first systems programming language I've ever used.
I've added unit tests for all methods of TextInput ( - except `handle_keydown`). I probably didn't cover all cases - I don't know if this is a real requirement until we have some coverage tools which identify all missing cases easily.
If someone could show me how to create a `KeyboardEvent` easily I could add another test for `handle_keydown`.
Other questions:
1. Running `$ time ./mach test-unit -c script test_textinput` takes `3m29.536s` on my MacBook Pro (2012). Any hints on speeding this up?
2. Who is responsible for the feedback of the unit tests? It would be nice if the output could be colored (e.g. make `11 passed;` green, `0 failed;` red and so on.)
Source-Repo: https://github.com/servo/servo
Source-Revision: e7d79842a85dfa8eaee8c2f441977edbf061bbed
Fixes#4573 Replaces the boolean argument of TextInput::adjust[horizontal | vertical] with enum to self document the code
Source-Repo: https://github.com/servo/servo
Source-Revision: 3e8cab758e3154d0df91aa4c4e1f8a22093ddeb2
`str::to_string()` goes through a `Formatter`, `str::into_string()` is a direct copy and is apparently 5× faster.
This is a rebase of the boring and bitrot-prone parts of #4366.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9857ea26cb9ee262654bee97322dbbf373486bff
Fixes#4411.
I didn't find any tests for the text control functionality so I didn't write any for this, let me know if I should.
Source-Repo: https://github.com/servo/servo
Source-Revision: 71b9f17b6b1695c08036f688249b486fa58c25c9
We can reset `<input type=text>` fields! I wish I could've done something with checkboxes, but unfortunately, that's it for now.
In addition to that, this PR implements `HTMLInputAttribute.defaultValue`, updates wpt-test to expect passing tests as a result of that implementation, and fixes an index error crash with text inputs.
edit: also includes an html example where one may lazily watch form resets in action: ` tests/html/form_reset_handsfree.html`
Source-Repo: https://github.com/servo/servo
Source-Revision: 5951056973fc0e08e70224214740a274ca8ef20f
This attempts to implement a bunch of the DOM Level 3 Events spec by implementing the KeyboardEvent interface, the document focus context, and dispatching keyup/keydown/keypress events appropriately. There's also some support for multiline text input that's untested.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2ffa845cf463b14b19322d477a77ffd20efa89a9