input = data;
if (!input || !input->repeat.timer) return ECORE_CALLBACK_CANCEL;
-// TIZEN_ONLY(20160610): fix key repeat condition.
-/*
- window = input->focus.keyboard;
- if (!window) goto out;
-*/
+ //A bit slow...
+ double cur_time = ecore_time_get();
+ if (cur_time > input->repeat.intime)
+ {
+ input->repeat.intime = cur_time + (cur_time - input->repeat.intime) + 0.0166;
+ ecore_timer_interval_set(input->repeat.timer, cur_time - input->repeat.intime);
+ return ECORE_CALLBACK_RENEW;
+ }
+ input->repeat.intime = (cur_time + input->repeat.delay + 0.0166);
+
input->repeat.time += (int)(input->repeat.rate * 1000.0);
-//
_ecore_wl2_input_key_send(input, input->repeat_win,
input->repeat.sym, input->repeat.sym_name,
input->repeat.repeating = EINA_TRUE;
}
return ECORE_CALLBACK_RENEW;
-
-// TIZEN_ONLY(20160610): fix key repeat condition.
-/*
-out:
- input->repeat.sym = 0;
- input->repeat.key = 0;
- input->repeat.time = 0;
- return ECORE_CALLBACK_CANCEL;
-*/
-//
}
/* from weston/clients/window.c */
if (!input->repeat.timer)
{
input->repeat.repeating = EINA_FALSE;
- input->repeat.timer =
- ecore_timer_add(input->repeat.delay, _keyboard_cb_repeat, input);
+ input->repeat.timer = ecore_timer_add(input->repeat.delay, _keyboard_cb_repeat, input);
+ input->repeat.intime = (ecore_time_get() + input->repeat.delay + 0.0166);
}
}
}