return reply;
}
+static void
+_e_info_server_input_thread_key_repeat_set(void *data)
+{
+ FILE *log_fp;
+ int delay = 0;
+ int rate = 0;
+ E_Input_Thread_Request_Key_Repeat_Data key_repeat_data;
+
+ memcpy(&key_repeat_data, data, sizeof(E_Input_Thread_Request_Key_Repeat_Data));
+
+ delay = key_repeat_data.delay;
+ rate = key_repeat_data.rate;
+
+ if (strlen(key_repeat_data.path) > 0)
+ {
+ log_fp = fopen(key_repeat_data.path, "a");
+ EINA_SAFETY_ON_NULL_RETURN(log_fp);
+
+ fprintf(log_fp, "\tkeyboard repeat info\n");
+ fprintf(log_fp, "\t\trate: %d (ms), delay: %d (ms)\n", e_comp_input_key->kbd.repeat_rate, e_comp_input_key->kbd.repeat_delay);
+ fclose(log_fp);
+ log_fp = NULL;
+ }
+ else
+ {
+ if (delay <= 0) delay = e_comp_input_key->kbd.repeat_delay;
+ if (rate <= 0) rate = e_comp_input_key->kbd.repeat_rate;
+
+ e_comp_wl_input_keyboard_repeat_set(delay, rate);
+ }
+}
+
static Eldbus_Message *
_e_info_server_cb_key_repeat(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
{
Eldbus_Message *reply = eldbus_message_method_return_new(msg);
const char *path = NULL;
int rate = 0, delay = 0;
- FILE *log_fp;
if (!eldbus_message_arguments_get(msg, "sii", &path, &delay, &rate))
{
}
if (!e_comp_wl) return reply;
+ E_Input_Thread_Request_Key_Repeat_Data key_repeat_data = { 0 };
if (path && strlen(path) > 0)
- {
- log_fp = fopen(path, "a");
- EINA_SAFETY_ON_NULL_RETURN_VAL(log_fp, reply);
+ strncpy(key_repeat_data.path, path, strlen(path));
- fprintf(log_fp, "\tkeyboard repeat info\n");
- fprintf(log_fp, "\t\trate: %d (ms), delay: %d (ms)\n", e_comp_wl->kbd.repeat_rate, e_comp_wl->kbd.repeat_delay);
- fclose(log_fp);
- log_fp = NULL;
- }
- else
- {
- if (delay <= 0) delay = e_comp_wl->kbd.repeat_delay;
- if (rate <= 0) rate = e_comp_wl->kbd.repeat_rate;
+ key_repeat_data.delay = delay;
+ key_repeat_data.rate = rate;
- e_comp_wl_input_keyboard_repeat_set(delay, rate);
- }
+ e_input_thread_safe_call(_e_info_server_input_thread_key_repeat_set, &key_repeat_data, sizeof(E_Input_Thread_Request_Key_Repeat_Data));
return reply;
}