input = data;
if (!input || !input->repeat.timer) return ECORE_CALLBACK_CANCEL;
- //A bit slow...
- double cur_time = ecore_time_get();
- if (cur_time > input->repeat.intime)
+ if (!input->repeat.repeating)
{
- input->repeat.intime = cur_time + (cur_time - input->repeat.intime) + 0.0166;
- ecore_timer_interval_set(input->repeat.timer, input->repeat.intime - cur_time);
- return ECORE_CALLBACK_RENEW;
+ //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, input->repeat.intime - cur_time);
+ return ECORE_CALLBACK_RENEW;
+ }
+
+ ecore_timer_interval_set(input->repeat.timer, input->repeat.rate);
+ input->repeat.repeating = EINA_TRUE;
}
- input->repeat.intime = (cur_time + input->repeat.delay + 0.0166);
input->repeat.time += (int)(input->repeat.rate * 1000.0);
WL_KEYBOARD_KEY_STATE_PRESSED,
input->repeat.time, EINA_FALSE);
- if (!input->repeat.repeating)
- {
- ecore_timer_interval_set(input->repeat.timer, input->repeat.rate);
- input->repeat.repeating = EINA_TRUE;
- }
return ECORE_CALLBACK_RENEW;
}