diff options
Diffstat (limited to 'apps/plugins/lua/rocklib_events.c')
-rw-r--r-- | apps/plugins/lua/rocklib_events.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/apps/plugins/lua/rocklib_events.c b/apps/plugins/lua/rocklib_events.c index 91e217169e..dc15c363a4 100644 --- a/apps/plugins/lua/rocklib_events.c +++ b/apps/plugins/lua/rocklib_events.c | |||
@@ -272,7 +272,8 @@ static void rev_timer_isr(void) | |||
272 | { | 272 | { |
273 | evt = ev_data.cb[i]; | 273 | evt = ev_data.cb[i]; |
274 | 274 | ||
275 | if ((i == ACTEVENT || i == BTNEVENT) && rb->button_queue_count()) | 275 | if ((i == ACTEVENT || i == BTNEVENT) && |
276 | (rb->button_queue_count() || rb->button_status() || evt->id)) | ||
276 | ev_flag |= event_flag(i); /* any buttons ready? */ | 277 | ev_flag |= event_flag(i); /* any buttons ready? */ |
277 | else if(evt->ticks > 0 && TIME_AFTER(curr_tick, evt->next_tick)) | 278 | else if(evt->ticks > 0 && TIME_AFTER(curr_tick, evt->next_tick)) |
278 | ev_flag |= event_flag(i); | 279 | ev_flag |= event_flag(i); |
@@ -315,23 +316,15 @@ static void event_thread(void) | |||
315 | { | 316 | { |
316 | /* only send ACTION_NONE once */ | 317 | /* only send ACTION_NONE once */ |
317 | if (evt->id == ACTION_NONE || rb->button_status() != 0) | 318 | if (evt->id == ACTION_NONE || rb->button_status() != 0) |
318 | { | ||
319 | evt->ticks = 0; | ||
320 | continue; /* check next event */ | 319 | continue; /* check next event */ |
321 | } | ||
322 | } | 320 | } |
323 | evt->ticks = EV_TICKS; /* poll release event */ | ||
324 | evt->id = action; | 321 | evt->id = action; |
325 | break; | 322 | break; |
326 | case BTNEVENT: | 323 | case BTNEVENT: |
327 | evt->id = rb->button_get(false); | 324 | evt->id = rb->button_get(false); |
328 | /* only send BUTTON_NONE once */ | 325 | /* only send BUTTON_NONE once */ |
329 | if (evt->id == BUTTON_NONE) | 326 | if (evt->id == BUTTON_NONE) |
330 | { | ||
331 | evt->ticks = 0; | ||
332 | continue; /* check next event */ | 327 | continue; /* check next event */ |
333 | } | ||
334 | evt->ticks = EV_TICKS; /* poll release event */ | ||
335 | break; | 328 | break; |
336 | case CUSTOMEVENT: | 329 | case CUSTOMEVENT: |
337 | case PLAYBKEVENT: | 330 | case PLAYBKEVENT: |
@@ -592,7 +585,7 @@ static int rockev_register(lua_State *L) | |||
592 | case ACTEVENT: | 585 | case ACTEVENT: |
593 | /* fall through */ | 586 | /* fall through */ |
594 | case BTNEVENT: | 587 | case BTNEVENT: |
595 | event_ticks = 0; /* button events not triggered by timeout but release is*/ | 588 | event_ticks = 0; /* button events not triggered by timeout */ |
596 | break; | 589 | break; |
597 | case CUSTOMEVENT: | 590 | case CUSTOMEVENT: |
598 | event_ticks = luaL_optinteger(L, 3, EV_TICKS); | 591 | event_ticks = luaL_optinteger(L, 3, EV_TICKS); |