1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-05 12:10:55 +00:00

[Web] Poll controllers only if at least one is detected

Keeps the spirit of #105601
This commit is contained in:
Adam Scott
2025-06-26 08:33:25 -04:00
parent 722accc5c8
commit c56d131876
2 changed files with 13 additions and 2 deletions

View File

@@ -829,6 +829,12 @@ void DisplayServerWeb::gamepad_callback(int p_index, int p_connected, const char
}
void DisplayServerWeb::_gamepad_callback(int p_index, int p_connected, const String &p_id, const String &p_guid) {
if (p_connected) {
DisplayServerWeb::get_singleton()->gamepad_count += 1;
} else {
DisplayServerWeb::get_singleton()->gamepad_count -= 1;
}
Input *input = Input::get_singleton();
if (p_connected) {
input->joy_connection_changed(p_index, true, p_id, p_guid);
@@ -1432,9 +1438,12 @@ DisplayServer::VSyncMode DisplayServerWeb::window_get_vsync_mode(WindowID p_vsyn
void DisplayServerWeb::process_events() {
process_keys();
Input::get_singleton()->flush_buffered_events();
if (gamepad_count > 0) {
if (godot_js_input_gamepad_sample() == OK) {
process_joypads();
}
}
}
void DisplayServerWeb::process_keys() {

View File

@@ -104,6 +104,8 @@ private:
bool swap_cancel_ok = false;
NativeMenu *native_menu = nullptr;
int gamepad_count = 0;
MouseMode mouse_mode_base = MOUSE_MODE_VISIBLE;
MouseMode mouse_mode_override = MOUSE_MODE_VISIBLE;
bool mouse_mode_override_enabled = false;