From ec23dd8edfcce7c523a0c33b931253d9959dd93c Mon Sep 17 00:00:00 2001 From: Arjan Onwezen Date: Sun, 30 Jan 2022 05:12:46 -0500 Subject: [PATCH] some improvements to screen navigation --- firmware/common/ui_focus.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/firmware/common/ui_focus.cpp b/firmware/common/ui_focus.cpp index 61f37a0bc..1b7e23dc4 100644 --- a/firmware/common/ui_focus.cpp +++ b/firmware/common/ui_focus.cpp @@ -142,7 +142,23 @@ static int32_t rect_distances( return -1; } - return (std::abs(perpendicular_axis_end - perpendicular_axis_start) + 1) * (on_axis_distance + 1); + + switch(direction) { + case KeyEvent::Right: + case KeyEvent::Left: + return ((std::abs(perpendicular_axis_end - perpendicular_axis_start) + 1) ^ 3) * sqrt((on_axis_distance + 1)); + break; + + case KeyEvent::Up: + case KeyEvent::Down: + return (sqrt(std::abs(perpendicular_axis_end - perpendicular_axis_start) + 1)) * ((on_axis_distance + 1) ^ 3); + break; + + default: + return 0; + } + + } void FocusManager::update(