summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/action.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/apps/action.c b/apps/action.c
index 80053e7646..d9f04a8c89 100644
--- a/apps/action.c
+++ b/apps/action.c
@@ -34,6 +34,9 @@ static int last_button = BUTTON_NONE;
34static int last_action = ACTION_NONE; 34static int last_action = ACTION_NONE;
35static bool repeated = false; 35static bool repeated = false;
36 36
37#define REPEAT_WINDOW_TICKS HZ/10
38static int last_action_tick = 0;
39
37/* software keylock stuff */ 40/* software keylock stuff */
38#ifndef HAS_BUTTON_HOLD 41#ifndef HAS_BUTTON_HOLD
39static bool keys_locked = false; 42static bool keys_locked = false;
@@ -186,13 +189,15 @@ static int get_action_worker(int context, int timeout,
186 return ACTION_REDRAW; 189 return ACTION_REDRAW;
187 } 190 }
188#endif 191#endif
189 if (ret == last_action) 192 if ((current_tick - last_action_tick < REPEAT_WINDOW_TICKS)
193 && (ret == last_action))
190 repeated = true; 194 repeated = true;
191 else 195 else
192 repeated = false; 196 repeated = false;
193 197
194 last_button = button; 198 last_button = button;
195 last_action = ret; 199 last_action = ret;
200 last_action_tick = current_tick;
196 return ret; 201 return ret;
197} 202}
198 203