diff options
author | Daniel Adams <70986246+msub2@users.noreply.github.com> | 2024-02-17 08:42:31 -1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-17 18:42:31 +0000 |
commit | c999d4546c7dbfee670da38553dd95929c05b82b (patch) | |
tree | ef81c5b69dc4068ea63c5570c383d541e9dd7d11 /components/script/dom/gamepadlist.rs | |
parent | 1cc546c4fc509142a0a3e796036bee604be243ab (diff) | |
download | servo-c999d4546c7dbfee670da38553dd95929c05b82b.tar.gz servo-c999d4546c7dbfee670da38553dd95929c05b82b.zip |
Implement non-XR Gamepad discovery and input (#31200)
* Create embedder event to send to constellation
* Handle gamepad message in constellation, send to script thread
* Handle GamepadEvent in script thread and dispatch event to document
* Add missing Clones, fix event
* Add gamepad task source
* Adjust GamepadIndex type, remove unused imports
* Add internal getter for gamepads list
* Update gamepad new methods
* Handle gamepad connect and disconnect events
* Proto will be none, no need for HandleObject
* Initialize buttons and axes to standard mapping
* Adjust update type index types
* Update GamepadButton update function
* Adjust Gamepad mapping comments to match spec, add update logic
* Amend comment
* Update button and axis inputs on Updated event
* Add GilRs as gamepad backend in servoshell
* Add spec links, queue gamepad updates on task source
* ./mach fmt
* Fix comment length
* Split out button init, update spec comments
* Move gamepad event handling from document to global
* Map and normalize axes/button values
* Use std::time for gamepad timestamp
* Adjust gamepad handling in event loop
* Move button press/touch check into map+normalize function
- Small change but is more in line with spec
* ./mach fmt
* Update comment spec links and warning messages
* Doc comments -> regular comments
* Add window event handlers for gamepad connect/disconnect
* Adjust gamepad disconnect behavior
* Add missing TODO's, adjust gamepad/gamepadbutton list methods and formatting
* Update button handling from gilrs, add comments
* Enable gamepad pref during WPT tests and update expectations
* Update WPT expectations in meta-legacy-layout
Diffstat (limited to 'components/script/dom/gamepadlist.rs')
-rw-r--r-- | components/script/dom/gamepadlist.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/components/script/dom/gamepadlist.rs b/components/script/dom/gamepadlist.rs index d293281389b..4f373e24d96 100644 --- a/components/script/dom/gamepadlist.rs +++ b/components/script/dom/gamepadlist.rs @@ -18,8 +18,6 @@ pub struct GamepadList { list: DomRefCell<Vec<Dom<Gamepad>>>, } -// TODO: support gamepad discovery -#[allow(dead_code)] impl GamepadList { fn new_inherited(list: &[&Gamepad]) -> GamepadList { GamepadList { @@ -46,6 +44,10 @@ impl GamepadList { } } } + + pub fn remove_gamepad(&self, index: usize) { + self.list.borrow_mut().remove(index); + } } impl GamepadListMethods for GamepadList { |