servo/components/script
bors-servo 68fb9ebc41 Auto merge of #11950 - jdm:keylayout2, r=emilio
Support non-QWERTY keyboards

Using the ReceivedCharacter event from glutin, we can obtain the actual key characters that the user is pressing and releasing. This gets passed to the script thread along with the physical key data, since KeyboardEvent needs both pieces of information, where they get merged into a single logical key that gets processed by clients like TextInput without any special changes.

Tested by switching my macbook keyboard to dvorak and looking at the output of keypress/keyup/keydown event listeners, as well as playing with tests/html/textarea.html. Non-content keybindings like reload work as expected, too - the remapped keybinding triggers the reload action.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #4144
- [X] These changes do not require tests because I can't think of a way to test remapped keyboard input

Fixes  #11991.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11950)
<!-- Reviewable:end -->
2016-07-06 02:51:50 -07:00
..
docs
dom Auto merge of #11950 - jdm:keylayout2, r=emilio 2016-07-06 02:51:50 -07:00
parse Replace HTMLScriptElement::mark_script_already_started by set_script_already_started 2016-06-03 01:31:52 +02:00
task_source Add Miscellaneous event type to DOM task source 2016-07-05 13:46:01 +05:30
bluetooth_blacklist.rs Add WebBluetooth Blacklist support 2016-05-31 17:05:45 +02:00
build.rs
Cargo.toml Upgrade rust-selectors. 2016-07-05 18:03:40 -07:00
clipboard_provider.rs Remove ConstellationChan. 2016-05-19 17:13:44 +02:00
devtools.rs Switch to using the new rooted!/RootedGuard API for rooting. 2016-07-04 20:59:01 +03:00
document_loader.rs change load blocker drop assert to debug_assert 2016-06-30 18:13:01 -06:00
layout_wrapper.rs Remove get_attr from TElement. \o/ 2016-07-05 18:03:41 -07:00
lib.rs Use a stack guard and a macro for RootedVec instead of return_address. 2016-07-04 20:59:06 +03:00
makefile.cargo
mem.rs
network_listener.rs Test fixes; update for changes in spec 2016-06-10 20:55:25 +05:30
origin.rs Make script origins sendable and immutable. 2016-05-27 17:16:13 +02:00
script_runtime.rs Refactor util::prefs operations to be methods on static struct. 2016-07-02 16:43:39 -04:00
script_thread.rs Make textinput handle actual key values. Don't restrict character values to a single byte. 2016-07-06 00:10:24 -04:00
textinput.rs Make textinput handle actual key values. Don't restrict character values to a single byte. 2016-07-06 00:10:24 -04:00
timers.rs Auto merge of #11872 - eddyb:back-to-roots, r=Ms2ger 2016-07-04 11:03:35 -07:00
unpremultiplytable.rs
webdriver_handlers.rs Move webdriver_msg to script_traits. 2016-07-05 09:02:46 +02:00