diff --git a/core/input/input.cpp b/core/input/input.cpp index d481acf0055..0e691aaec7f 100644 --- a/core/input/input.cpp +++ b/core/input/input.cpp @@ -473,7 +473,8 @@ void Input::joy_connection_changed(int p_idx, bool p_connected, String p_name, S } joy_names[p_idx] = js; - emit_signal(SNAME("joy_connection_changed"), p_idx, p_connected); + // Ensure this signal is emitted on the main thread, as some platforms (e.g. Linux) call this from a different thread. + call_deferred("emit_signal", SNAME("joy_connection_changed"), p_idx, p_connected); } Vector3 Input::get_gravity() const {