diff options
author | Inhong Han <inhong1.han@samsung.com> | 2024-02-21 13:13:19 +0900 |
---|---|---|
committer | Inhong Han <inhong1.han@samsung.com> | 2024-02-21 13:54:24 +0900 |
commit | 1159913b1499401b5aef058e327f014a95228401 (patch) | |
tree | 0ecacfff77d365a8a2dc7b6679a7843290da3e84 | |
parent | 6c96abcad893143cc816348fab5eb0ca9d65f17a (diff) | |
download | isf-1159913b1499401b5aef058e327f014a95228401.tar.gz isf-1159913b1499401b5aef058e327f014a95228401.tar.bz2 isf-1159913b1499401b5aef058e327f014a95228401.zip |
Modified to not to set keyboard repeat rate twice
Change-Id: Icc0a794f830cfbbd379b4659f0cd78661041e73a
-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); } } |