From fc1db575bdd6b3498bd6782b77d217ebb7bd057c Mon Sep 17 00:00:00 2001 From: MysterD Date: Mon, 28 Jun 2021 18:15:59 -0700 Subject: [PATCH] DJUI: Make cursor movement more predictable --- src/pc/djui/djui_cursor.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pc/djui/djui_cursor.c b/src/pc/djui/djui_cursor.c index db0deb35f..28fa2f31b 100644 --- a/src/pc/djui/djui_cursor.c +++ b/src/pc/djui/djui_cursor.c @@ -50,12 +50,12 @@ void djui_cursor_input_controlled_center(struct DjuiBase* base) { } } -static f32 djui_cursor_base_distance(struct DjuiBase* base) { +static f32 djui_cursor_base_distance(struct DjuiBase* base, f32 xScale, f32 yScale) { f32 x, y; djui_cursor_base_hover_location(base, &x, &y); x -= gCursorX; y -= gCursorY; - return sqrtf((x * x) + (y * y)); + return sqrtf((x * x) * xScale + (y * y) * yScale); } static void djui_cursor_move_check(s8 xDir, s8 yDir, struct DjuiBase** pick, struct DjuiBase* base) { @@ -74,8 +74,8 @@ static void djui_cursor_move_check(s8 xDir, s8 yDir, struct DjuiBase** pick, str if (*pick == NULL) { *pick = base; } else { - f32 pickDist = djui_cursor_base_distance(*pick); - f32 baseDist = djui_cursor_base_distance(base); + f32 pickDist = djui_cursor_base_distance(*pick, xDir ? 1.0f : 10.0f, yDir ? 1.0f : 10.0f); + f32 baseDist = djui_cursor_base_distance(base, xDir ? 1.0f : 10.0f, yDir ? 1.0f : 10.0f); if (baseDist < pickDist) { *pick = base; }