From 2c0446e83d24b945bb5ee52b0832b8b375fcd47b Mon Sep 17 00:00:00 2001 From: Mark Thompson <129641948+NotherNgineer@users.noreply.github.com> Date: Sat, 18 Nov 2023 06:58:38 -0600 Subject: [PATCH] Improved Focus Manager navigation (#1589) * Focus manager navigation fix * Add files via upload --- firmware/common/ui_focus.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/firmware/common/ui_focus.cpp b/firmware/common/ui_focus.cpp index 2ef155a8..c8015a70 100644 --- a/firmware/common/ui_focus.cpp +++ b/firmware/common/ui_focus.cpp @@ -30,6 +30,8 @@ #include #include +#define pow2(x) ((x) * (x)) + namespace ui { Widget* FocusManager::focus_widget() const { @@ -138,12 +140,12 @@ static int32_t rect_distances( switch (direction) { case KeyEvent::Right: case KeyEvent::Left: - return ((std::abs(perpendicular_axis_end - perpendicular_axis_start) + 1) ^ 3) * sqrt((on_axis_distance + 1)); + return pow2(std::abs(perpendicular_axis_end - perpendicular_axis_start) + 1) * (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); + return (std::abs(perpendicular_axis_end - perpendicular_axis_start) + 1) * pow2(on_axis_distance + 1); break; default: