From 22ac1ab400d9b8f6169001e1f0fbf3b30fe015b9 Mon Sep 17 00:00:00 2001 From: OleSTEEP Date: Tue, 2 Jan 2024 04:02:55 +0300 Subject: [PATCH] Hide onscreen controls when physical gamepad connected --- www/js/porting/jscontrols.js | 38 ++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/www/js/porting/jscontrols.js b/www/js/porting/jscontrols.js index 7769191..7f75e84 100644 --- a/www/js/porting/jscontrols.js +++ b/www/js/porting/jscontrols.js @@ -266,10 +266,36 @@ function setupKey(id, key, keyCode) { } window.addEventListener('load', () => { - create_control_buttons(); - create_dpad_buttons(); - create_show_button(); - create_switch_button(); - setupButtons(); - setupDpad(); + if (navigator.getGamepads().length == 0) { + create_control_buttons(); + create_dpad_buttons(); + create_show_button(); + create_switch_button(); + setupButtons(); + setupDpad(); + } }); + +window.addEventListener('gamepadconnected', () => { + var DivBMain = document.getElementById("gamepad-div"); + var DivB_LB = document.getElementById("buttonW"); + var DivB_RB = document.getElementById("buttonQ"); + var DivDMain = document.getElementById("dpad-div"); + var DivJoy = document.getElementById("joyDiv"); + var ShowB = document.getElementById("switch"); + + if (DivBMain !== null) { + DivBMain.remove(); + DivB_LB.remove(); + DivB_RB.remove(); + ShowB.remove(); + switch (currentControlElement) { + case "dpad": + DivDMain.remove(); + break; + case "joystick": + DivJoy.remove(); + break; + } + } +}); \ No newline at end of file