summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInhong Han <inhong1.han@samsung.com>2024-02-21 13:13:19 +0900
committerInhong Han <inhong1.han@samsung.com>2024-02-21 13:54:24 +0900
commit1159913b1499401b5aef058e327f014a95228401 (patch)
tree0ecacfff77d365a8a2dc7b6679a7843290da3e84
parent6c96abcad893143cc816348fab5eb0ca9d65f17a (diff)
downloadisf-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.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);
}
}