From aad52fc36c440b73daba8ad1c21e1003ec445a3e Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Sat, 2 Jan 2021 09:13:07 +1100 Subject: [PATCH] Mobile: Clicking dpad/more shouldn't rotate camera (Thanks TheAwesome98) --- src/Screens.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Screens.c b/src/Screens.c index f540bd011..2bd40e999 100644 --- a/src/Screens.c +++ b/src/Screens.c @@ -2073,6 +2073,7 @@ static void TouchScreen_Render(void* screen, double delta) { static int TouchScreen_PointerDown(void* screen, int id, int x, int y) { struct TouchScreen* s = (struct TouchScreen*)screen; + struct Widget* w; int i; //Chat_Add1("POINTER DOWN: %i", &id); if (Gui.InputGrab) return false; @@ -2080,9 +2081,15 @@ static int TouchScreen_PointerDown(void* screen, int id, int x, int y) { i = Screen_DoPointerDown(screen, id, x, y); if (i < ONSCREEN_MAX_BTNS) return i >= 0; + /* Clicking on other buttons then */ + w = s->widgets[i]; + w->active |= id; + /* Clicking on jump or fly buttons should still move camera */ - s->widgets[i]->active |= id; - return TOUCH_TYPE_GUI | TOUCH_TYPE_CAMERA; + for (i = 0; i < s->numBtns; i++) { + if (w == (struct Widget*)&s->btns[i]) return TOUCH_TYPE_GUI | TOUCH_TYPE_CAMERA; + } + return TOUCH_TYPE_GUI; } static void TouchScreen_PointerUp(void* screen, int id, int x, int y) {