From dd093c2360abac46404b6e77f76568b0c95ee473 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Wed, 13 May 2026 11:31:33 +0200 Subject: [PATCH] fix: Mute and Min Interesting key codes were always assigned as Min Interesting --- tuxbox/gui/control_editor.py | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/tuxbox/gui/control_editor.py b/tuxbox/gui/control_editor.py index 8480b1e..675f2ca 100644 --- a/tuxbox/gui/control_editor.py +++ b/tuxbox/gui/control_editor.py @@ -87,8 +87,8 @@ # Build reverse lookup: evdev keycode int -> KEY_* name string _EVDEV_CODE_TO_NAME = {} for _code, _name in e.bytype[e.EV_KEY].items(): - if isinstance(_name, tuple): - _name = _name[0] + if isinstance(_name, (tuple, list)): + _name = sorted(list(_name), key=len)[0] if _name.startswith('KEY_'): _EVDEV_CODE_TO_NAME[_code] = _name @@ -644,10 +644,9 @@ def get_action(self) -> str: elif self.special_key_combo.currentText() != "None": key_name = self.special_key_combo.currentText() if SPECIAL_KEYS.get(key_name): - for name, code in e.__dict__.items(): - if name.startswith('KEY_') and code == SPECIAL_KEYS[key_name]: - parts.append(name) - break + code = SPECIAL_KEYS[key_name] + if code in _EVDEV_CODE_TO_NAME: + parts.append(_EVDEV_CODE_TO_NAME[code]) return "+".join(parts) if parts else "none" @@ -913,10 +912,9 @@ def get_action(self) -> str: elif self.special_key_combo.currentText() != "None": key_name = self.special_key_combo.currentText() if SPECIAL_KEYS.get(key_name): - for name, code in e.__dict__.items(): - if name.startswith('KEY_') and code == SPECIAL_KEYS[key_name]: - parts.append(name) - break + code = SPECIAL_KEYS[key_name] + if code in _EVDEV_CODE_TO_NAME: + parts.append(_EVDEV_CODE_TO_NAME[code]) return "+".join(parts) if parts else "" @@ -1716,10 +1714,9 @@ def _build_action_string(self) -> str: elif self.special_key_combo.currentText() != "None": key_name = self.special_key_combo.currentText() if SPECIAL_KEYS.get(key_name): - for name, code in e.__dict__.items(): - if name.startswith('KEY_') and code == SPECIAL_KEYS[key_name]: - parts.append(name) - break + code = SPECIAL_KEYS[key_name] + if code in _EVDEV_CODE_TO_NAME: + parts.append(_EVDEV_CODE_TO_NAME[code]) return "+".join(parts) if parts else "none"