Prevent calling _focus_widget when keyboard is on top 22/317722/1
authorYoungsun Suh <youngsun.suh@samsung.com>
Fri, 31 May 2024 04:50:40 +0000 (13:50 +0900)
committerSeoyeon Kim <seoyeon2.kim@samsung.com>
Tue, 7 Jan 2025 05:09:43 +0000 (14:09 +0900)
We don't want to call _focus_widget on keyboard as it won't initiate context switch thus it finds an object from the below context.

Change-Id: I94e0e0171694328860755ebbe8e65a1fb70e69e3

src/navigator.c

index a0468d0b39db3c55ba71d29935a905027eddafbc..cc71134765b189699e413bd11e7bea429e5a205f 100644 (file)
@@ -2315,11 +2315,12 @@ TIZEN_PROD_STATIC void on_gesture_detected(void *data, const Eldbus_Message *msg
                                return;
                        }
                        nd->last_hover_event_time = info->state != 1 ? -1 : info->event_time;
-                       _focus_widget(nd, info);
 
                        keyboard_status = keyboard_event_status(nd->keyboard_tracker_data, info->resource_id);
                        if (keyboard_status) {
                                keyboard_signal_emit(nd->keyboard_tracker_data, info->type, info->x_end, info->y_end);
+                       } else {
+                               _focus_widget(nd, info);
                        }
                }
                break;
@@ -2373,11 +2374,11 @@ TIZEN_PROD_STATIC void on_gesture_detected(void *data, const Eldbus_Message *msg
        case ONE_FINGER_SINGLE_TAP:
                if (info->state == 2 && nd->prepared)
                        nd->prepared = false;
-               if (!nd->prepared)
-                       _focus_widget(nd, info);
                keyboard_status = keyboard_event_status(nd->keyboard_tracker_data, info->resource_id);
                if (keyboard_status) {
                        keyboard_signal_emit(nd->keyboard_tracker_data, info->type, info->x_end, info->y_end);
+               } else if (!nd->prepared) {
+                       _focus_widget(nd, info);
                }
                break;
        case ONE_FINGER_DOUBLE_TAP: