From 4fbab113062ba2aff62f8b4261b94d54a3bb7594 Mon Sep 17 00:00:00 2001 From: skymike03 Date: Tue, 9 Sep 2025 14:10:08 +0200 Subject: [PATCH] v2.1.0.2 - refactor language menu event handling and prioritize custom labels in control display --- ports/RGSX/__main__.py | 14 +++++++------- ports/RGSX/config.py | 2 +- ports/RGSX/display.py | 5 +++++ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/ports/RGSX/__main__.py b/ports/RGSX/__main__.py index c826d1a..944d304 100644 --- a/ports/RGSX/__main__.py +++ b/ports/RGSX/__main__.py @@ -330,13 +330,7 @@ async def main(): # Gestion des événements events = pygame.event.get() - for event in events: - # Gestion directe des événements pour le menu de langue - if config.menu_state == "language_select": - if handle_language_menu_events(event, screen): - config.needs_redraw = True - continue - + for event in events: if event.type == pygame.USEREVENT + 1: # Événement de fin de musique logger.debug("Fin de la musique détectée, lecture d'une nouvelle musique aléatoire") current_music = play_random_music(music_files, music_folder, current_music) @@ -388,6 +382,12 @@ async def main(): config.needs_redraw = True continue + if config.menu_state == "language_select": + # Gérer les événements du sélecteur de langue via le système unifié + action = handle_controls(event, sources, joystick, screen) + config.needs_redraw = True + continue + if config.menu_state == "controls_help": action = handle_controls(event, sources, joystick, screen) config.needs_redraw = True diff --git a/ports/RGSX/config.py b/ports/RGSX/config.py index 72ad4dd..a63b419 100644 --- a/ports/RGSX/config.py +++ b/ports/RGSX/config.py @@ -4,7 +4,7 @@ import logging import platform # Version actuelle de l'application -app_version = "2.1.0.1" +app_version = "2.1.0.2" def get_operating_system(): """Renvoie le nom du système d'exploitation.""" diff --git a/ports/RGSX/display.py b/ports/RGSX/display.py index aa8e71b..a336b5d 100644 --- a/ports/RGSX/display.py +++ b/ports/RGSX/display.py @@ -258,6 +258,11 @@ def get_control_display(action, default): control_config = config.controls_config.get(action, {}) control_type = control_config.get('type', '') + # Si un libellé personnalisé est défini dans controls.json, on le privilégie + custom_label = control_config.get('display') + if isinstance(custom_label, str) and custom_label.strip(): + return custom_label + # Générer le nom d'affichage basé sur la configuration réelle if control_type == 'key': key_code = control_config.get('key')