InitGlobalAnim_Clicked(-1, -1, ANIM_CLICKED_RESET);
}
-boolean HandleGlobalAnimClicks(int mx, int my, int button)
+boolean HandleGlobalAnimClicks(int mx, int my, int button, boolean force_click)
{
static boolean click_consumed = FALSE;
static int last_button = 0;
boolean release_event;
boolean click_consumed_current = click_consumed;
+ if (button != 0 && force_click)
+ last_button = 0;
+
// check if button state has changed since last invocation
press_event = (button != 0 && last_button == 0);
release_event = (button == 0 && last_button != 0);
void InitGlobalAnimations(void);
void DrawGlobalAnimations(int, int);
-boolean HandleGlobalAnimClicks(int, int, int);
+boolean HandleGlobalAnimClicks(int, int, int, boolean);
#endif
!virtual_button_pressed));
#endif
- if (HandleGlobalAnimClicks(mx, my, button))
+ if (HandleGlobalAnimClicks(mx, my, button, FALSE))
{
// do not handle this button event anymore
return; // force mouse event not to be handled at all
if (HandleGlobalAnimClicks(-1, -1, (key == KSYM_space ||
key == KSYM_Return ||
- key == KSYM_Escape)))
+ key == KSYM_Escape), TRUE))
{
// do not handle this key event anymore
if (key != KSYM_Escape) // always allow ESC key to be handled
int dy = (up ? -1 : down ? 1 : 0);
boolean use_delay_value_first = (joytest != joytest_last);
- if (HandleGlobalAnimClicks(-1, -1, newbutton))
+ if (HandleGlobalAnimClicks(-1, -1, newbutton, FALSE))
{
// do not handle this button event anymore
return;