diff options
-rw-r--r-- | ism/extras/wayland_immodule/wayland_imcontext.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/ism/extras/wayland_immodule/wayland_imcontext.c b/ism/extras/wayland_immodule/wayland_imcontext.c index 08a35944..883a3534 100644 --- a/ism/extras/wayland_immodule/wayland_imcontext.c +++ b/ism/extras/wayland_immodule/wayland_imcontext.c @@ -1558,26 +1558,28 @@ set_focus(Ecore_IMF_Context *ctx) ecore_wl2_window_surface_get(imcontext->window)); char *key_rate = getenv ("ISF_KEY_REPEAT_RATE"); + double repeat_rate = 0.0, repeat_delay = 0.0; if (key_rate) { g_desired_key_rate = atof (key_rate); if (g_desired_key_rate > 0.0) { - if (!ecore_wl2_input_keyboard_repeat_get (input, &g_original_key_rate, &g_original_key_delay)) { + if (!ecore_wl2_input_keyboard_repeat_get (input, &repeat_rate, &repeat_delay)) { LOGE ("ecore_wl2_input_keyboard_repeat_get failed"); + } else { + LOGD ("ecore_wl2_input_keyboard_repeat_get rate=%f, delay=%f. Desired rate=%f", + repeat_rate, repeat_delay, g_desired_key_rate); + + if (g_desired_key_rate != repeat_rate && !g_focused) { + g_focused = EINA_TRUE; + if (!ecore_wl2_input_keyboard_repeat_set (input, g_desired_key_rate, repeat_delay)) { + LOGE ("ecore_wl2_input_keyboard_repeat_set failed"); + } else { + g_original_key_rate = repeat_rate; + g_original_key_delay = repeat_delay; + LOGD ("ecore_wl2_input_keyboard_repeat_set(%f, %f), original rate(%f)", + g_desired_key_rate, repeat_delay, g_original_key_rate); + } + } } - else { - LOGD ("ecore_wl2_input_keyboard_repeat_get original rate=%f, delay=%f. Desired rate=%f", - g_original_key_rate, g_original_key_delay, g_desired_key_rate); - } - } - } - - if (g_desired_key_rate > 0.0 && g_original_key_delay > 0.0 && !g_focused) { - g_focused = EINA_TRUE; - if (!ecore_wl2_input_keyboard_repeat_set (input, g_desired_key_rate, g_original_key_delay)) { - LOGE ("ecore_wl2_input_keyboard_repeat_set failed"); - } - else { - LOGD ("ecore_wl2_input_keyboard_repeat_set(%f, %f)", g_desired_key_rate, g_original_key_delay); } } |