From 0cc7f1bc88179195a43a64b1d27e09340d8273c8 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Tue, 20 Jan 2026 22:56:27 +0100 Subject: [PATCH] fix: invert bottom left/right buttons on landscape ccw When reading on Landscape Counter ClockWise mode, the left/right button appear inverted: the upper button (left) goes down and the lower button (right) goes up. Discussion: #449 --- src/MappedInputManager.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/MappedInputManager.cpp b/src/MappedInputManager.cpp index 1b03844..6976be7 100644 --- a/src/MappedInputManager.cpp +++ b/src/MappedInputManager.cpp @@ -5,12 +5,13 @@ decltype(InputManager::BTN_BACK) MappedInputManager::mapButton(const Button button) const { const auto frontLayout = static_cast(SETTINGS.frontButtonLayout); const auto sideLayout = static_cast(SETTINGS.sideButtonLayout); + const bool is_landscape_ccw = SETTINGS.orientation == CrossPointSettings::ORIENTATION::LANDSCAPE_CCW; switch (button) { case Button::Back: switch (frontLayout) { case CrossPointSettings::LEFT_RIGHT_BACK_CONFIRM: - return InputManager::BTN_LEFT; + return is_landscape_ccw ? InputManager::BTN_RIGHT : InputManager::BTN_LEFT; case CrossPointSettings::LEFT_BACK_CONFIRM_RIGHT: return InputManager::BTN_CONFIRM; case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT: @@ -20,9 +21,9 @@ decltype(InputManager::BTN_BACK) MappedInputManager::mapButton(const Button butt case Button::Confirm: switch (frontLayout) { case CrossPointSettings::LEFT_RIGHT_BACK_CONFIRM: - return InputManager::BTN_RIGHT; + return is_landscape_ccw ? InputManager::BTN_LEFT : InputManager::BTN_RIGHT; case CrossPointSettings::LEFT_BACK_CONFIRM_RIGHT: - return InputManager::BTN_LEFT; + return is_landscape_ccw ? InputManager::BTN_RIGHT : InputManager::BTN_LEFT; case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT: default: return InputManager::BTN_CONFIRM; @@ -34,7 +35,7 @@ decltype(InputManager::BTN_BACK) MappedInputManager::mapButton(const Button butt return InputManager::BTN_BACK; case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT: default: - return InputManager::BTN_LEFT; + return is_landscape_ccw ? InputManager::BTN_RIGHT : InputManager::BTN_LEFT; } case Button::Right: switch (frontLayout) { @@ -43,7 +44,7 @@ decltype(InputManager::BTN_BACK) MappedInputManager::mapButton(const Button butt case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT: case CrossPointSettings::LEFT_BACK_CONFIRM_RIGHT: default: - return InputManager::BTN_RIGHT; + return is_landscape_ccw ? InputManager::BTN_LEFT : InputManager::BTN_RIGHT; } case Button::Up: return InputManager::BTN_UP;