commit | 05e053f3aece950d379f1fe874c1cf37d089ee80 | [log] [tgz] |
---|---|---|
author | Antonio Gomes <tonikitoo@igalia.com> | Wed Dec 13 12:11:46 2017 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Dec 13 12:11:46 2017 |
tree | 1eb6543be771c2450878f0ecc3a7de4c9900442a | |
parent | d6d2e794493949fe18482657e513691397ee9e95 [diff] |
[ozone/wayland] use KeyboardEvDev for keyboard handling In WaylandKeyboard::Key's body, we deliberately duplicate some of the logic in KeyboardEvdev::DispatchKey. The idea was to use the bits of KeyboardEvDev needed for proper keyboard input handling. It turns out that features like key repeat and specific cases involving modifiers would need more duplication to get working. Instead of continuing to duplicate stable and existing logic, this CL adopts the use of KeyboardEvDev from WaylandKeyboard, fixing these issues and being able to do some code clean ups (follow ups). The CL also changes the KeyboardLayoutManager instantiation order in OzonePlatformWayland::InitializeUI, so that it happens prior to WaylandConnection instantiation. Reason: once WaylandConnection creates WaylandKeyboard and (implicitly) KeyboardEvDev, the later needs the KeyboardLayoutEngine properly set. CL also reset modifiers upon ::Leave, for when alt+tab is supported to change window focus (external window mode), where modifiers need to be updated accordingly. Last but not least, WaylandKeyboard::RepeatInfo sends delay and rate information that is usefull for KeyboardEvdev. Thus, desired repeating settings can be set. What is more, wayland documentation says if rate is send as 0, then auto repeat should be turned off. BUG=578890 Change-Id: I8ca392da7b10ba6c62f703e1e4b571c1e3d310a1 Reviewed-on: https://chromium-review.googlesource.com/822871 Commit-Queue: Antonio Gomes <tonikitoo@igalia.com> Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Cr-Commit-Position: refs/heads/master@{#523750}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .