X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fevents.c;h=0fa609aa4b8146850fe1bb10c1fba0e3ca6156fd;hp=ee5e492c93c0d94f786af2d20e3a239a92ae2b82;hb=453e58ce94fd8f1257b08c6ee273382ede528f1a;hpb=9db7595a83420f029dd52a462d766d4ac585e9c7 diff --git a/src/events.c b/src/events.c index ee5e492c..0fa609aa 100644 --- a/src/events.c +++ b/src/events.c @@ -686,6 +686,7 @@ static struct SDL_FingerID finger_id; int counter; Key key; + byte action; } touch_info[NUM_TOUCH_FINGERS]; static void HandleFingerEvent_VirtualButtons(FingerEvent *event) @@ -814,6 +815,9 @@ static void HandleFingerEvent_VirtualButtons(FingerEvent *event) { HandleKey(touch_info[i].key, KEY_RELEASED); + // undraw previous grid button when moving finger away + overlay.grid_button_action &= ~touch_info[i].action; + Error(ERR_DEBUG, "=> key == '%s', key_status == '%s' [slot %d] [2]", getKeyNameFromKey(touch_info[i].key), "KEY_RELEASED", i); } @@ -831,6 +835,7 @@ static void HandleFingerEvent_VirtualButtons(FingerEvent *event) touch_info[i].finger_id = event->fingerId; touch_info[i].counter = Counter(); touch_info[i].key = key; + touch_info[i].action = grid_button_action; } else { @@ -846,6 +851,7 @@ static void HandleFingerEvent_VirtualButtons(FingerEvent *event) touch_info[i].finger_id = 0; touch_info[i].counter = 0; touch_info[i].key = 0; + touch_info[i].action = JOY_NO_ACTION; } } }