Skip to content

Laptop touchpads are seen as gamepads #59250

@thomaslenzi

Description

@thomaslenzi

Godot version

4.0-alpha4

System information

Linux - Manjaro 21.2.5

Issue description

In Godot 4.0-alpha4, my laptop's touchpads are seen as gamepads. When no actual controllers are attached to my laptop, functions and signals such as Input.get_connected_joypads() and Input.joy_connection_changed.connect see two existing devices. When I add real controllers, they are assigned device ids from 2 and up. In contrast, this is not the case in Godot 3.4.3.

Godot 3 output at start
[blank]
Godot 3 output when I connect a Xbox 360
0 Xbox 360 Controller

Godot 4 output at start
0 SYNA8008:00 06CB:CE58 Touchpad
1 ELAN901C:00 04F3:2C29
Godot 4 output when I connect a Xbox 360
2 Xbox 360 Controller

Note that if the Xbox controller is connected when I launch the "game", it is seen with device id = 0.

A tool such as gamepad-tool yields the same results as Godot 3 (no additional devices detected).

Steps to reproduce

Create an empty project with a single Node2D and the following script attached

extends Node2D

func _ready():
	Input.joy_connection_changed.connect(self._on_joy_connection_changed)
	for device in Input.get_connected_joypads():
		print(device, " ", Input.get_joy_name(device))

func _on_joy_connection_changed(device, connected):
	print(device, " ", Input.get_joy_name(device))

Minimal reproduction project

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions