X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fevents.c;h=d9ba05860c5c30011bd6591314127116e1766af6;hb=21f34b5bebb5acc7f43a0dff5d4883775591c359;hp=e03f58f9b942b80c3c3f204eb7f2c8af9e71d245;hpb=1b1972065887ca03077a3f0fc1af51f9bdaed9a2;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index e03f58f9..d9ba0586 100644 --- a/src/events.c +++ b/src/events.c @@ -2204,6 +2204,9 @@ void HandleKey(Key key, int key_status) // reset flag to ignore repeated "key pressed" events after key release ignore_repeated_key = FALSE; + // send key release event to global animation event handling + HandleGlobalAnimClicks(-1, -1, KEY_RELEASED, FALSE); + return; } @@ -2614,12 +2617,15 @@ void HandleJoystick(void) int up = joy & JOY_UP; int down = joy & JOY_DOWN; int button = joy & JOY_BUTTON; - int newbutton = (AnyJoystickButton() == JOY_BUTTON_NEW_PRESSED); + int anybutton = AnyJoystickButton(); + int newbutton = (anybutton == JOY_BUTTON_NEW_PRESSED); int dx = (left ? -1 : right ? 1 : 0); int dy = (up ? -1 : down ? 1 : 0); boolean use_delay_value_first = (joytest != joytest_last); + boolean new_button_event = (anybutton == JOY_BUTTON_NEW_PRESSED || + anybutton == JOY_BUTTON_NEW_RELEASED); - if (HandleGlobalAnimClicks(-1, -1, newbutton, FALSE)) + if (new_button_event && HandleGlobalAnimClicks(-1, -1, newbutton, FALSE)) { // do not handle this button event anymore return;