X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fevents.c;h=32f7177964af22b746b8c6727cd23d207f96a5da;hb=f73405762b7a66ebed17c0f6fa56e909d7e5626f;hp=eaa87c00989d9ed5379db662e3276071df20998d;hpb=71664f429ff6b802e1826ce51688ce81914ada0d;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index eaa87c00..32f71779 100644 --- a/src/events.c +++ b/src/events.c @@ -653,6 +653,7 @@ void HandleWindowEvent(WindowEvent *event) video.display_height = new_display_height; SDLSetScreenProperties(); + SetGadgetsPosition_OverlayTouchButtons(); // check if screen orientation has changed (should always be true here) if (nr != GRID_ACTIVE_NR()) @@ -1680,6 +1681,14 @@ void HandleButton(int mx, int my, int button, int button_nr) strEqual(setup.touch.control_type, TOUCH_CONTROL_FOLLOW_FINGER) || (strEqual(setup.touch.control_type, TOUCH_CONTROL_VIRTUAL_BUTTONS) && !CheckVirtualButtonPressed(mx, my, button))); + + // always recognize potentially releasing already pressed gadgets + if (button == MB_RELEASED) + handle_gadgets = TRUE; + + // always recognize pressing or releasing overlay touch buttons + if (CheckPosition_OverlayTouchButtons(mx, my, button) && !motion_status) + handle_gadgets = TRUE; #endif if (HandleGlobalAnimClicks(mx, my, button, FALSE))