summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ism/extras/wayland_immodule/wayland_imcontext.c32
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);
}
}