From 73a68dca390b6b7c22cb48af00a225219d41f768 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Thu, 1 Oct 2020 23:07:48 +1000 Subject: [PATCH] Add some touch padding to the right of the inventory scrollbar This way if you touch your finger a little bit to the right of the scrollbar, it still activates it instead of closing the inventory. (this was quite easy to do on accident) --- src/Widgets.c | 9 ++++++++- src/Widgets.h | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Widgets.c b/src/Widgets.c index 51996baea..94ed3e4e5 100644 --- a/src/Widgets.c +++ b/src/Widgets.c @@ -304,7 +304,7 @@ static int ScrollbarWidget_PointerDown(void* widget, int id, int x, int y) { int posY, height; if (w->draggingId == id) return true; - if (x < w->x || x >= w->x + w->width) return false; + if (x < w->x || x >= w->x + w->width + w->padding) return false; /* only intercept pointer that's dragging scrollbar */ if (w->draggingId) return false; @@ -378,6 +378,13 @@ void ScrollbarWidget_Create(struct ScrollbarWidget* w) { w->scrollingAcc = 0.0f; w->draggingId = 0; w->dragOffset = 0; + +#ifdef CC_BUILD_TOUCH + /* It's easy to accidentally touch a bit to the right of the */ + /* scrollbar with your finger, so just add some padding */ + if (!Input_TouchMode) return; + w->padding = Display_ScaleX(15); +#endif } diff --git a/src/Widgets.h b/src/Widgets.h index 14ff1e28b..1f832206d 100644 --- a/src/Widgets.h +++ b/src/Widgets.h @@ -54,7 +54,7 @@ struct ScrollbarWidget { int topRow, rowsTotal, rowsVisible; float scrollingAcc; int dragOffset; - int draggingId; + int draggingId, padding; int borderX, borderY; int nubsWidth, offsets[3]; };