handler->on_event_key_clicked(key_event_desc);
events->destroy_timer(id);
+
+ /* We have to reset multitap button state when MULTITAP timer expired */
+ sclboolean ended = FALSE;
+ sclwindow window = windows->get_nth_window_in_Z_order_list(SCL_WINDOW_Z_TOP);
+ for (int loop = 0;loop < MAX_KEY && !ended;loop++) {
+ SclButtonContext *button_context = cache->get_cur_button_context(window, loop);
+ if (button_context) {
+ if (!(button_context->used)) {
+ ended = TRUE;
+ } else {
+ const SclLayoutKeyCoordinate *coordinate = cache->get_cur_layout_key_coordinate(window, loop);
+ if (coordinate && coordinate->button_type == BUTTON_TYPE_MULTITAP) {
+ button_context->multitap_index = 0;
+ }
+ }
+ }
+ }
+
return FALSE;
}
break;