9_input: fix to insert ECORE_KEY event with no window id given 00/323200/1
authorduna.oh <duna.oh@samsung.com>
Thu, 24 Apr 2025 04:36:41 +0000 (13:36 +0900)
committerduna.oh <duna.oh@samsung.com>
Thu, 24 Apr 2025 04:38:21 +0000 (13:38 +0900)
Change-Id: I4f3e5b55301c4223b1f78048b878a4ea44e79b9f

src/e_test_event.cpp
src/testcase/0009_input.cpp

index bacba87eda9ffe925035c56dd1b1109add8e8c32..7cb5aa37d948e0e87bd03febcd5ed8f78cfdd7ac 100644 (file)
@@ -2554,6 +2554,7 @@ _cb_ecore_key_down(void *data, int type, void *event)
    Ecore_Event_Key *ev = (Ecore_Event_Key *)event;
    etRunner *runner = (etRunner *)data;
 
+   DBG("[%s] Ecore Key Down cb (%s)", __func__, ev->keyname);
    if (runner->ev.key.name == NULL) return ECORE_CALLBACK_PASS_ON;
 
    if (!strncmp(runner->ev.key.name, ev->keyname, strlen(ev->keyname)))
@@ -2574,6 +2575,7 @@ _cb_ecore_key_up(void *data, int type, void *event)
    Ecore_Event_Key *ev = (Ecore_Event_Key *)event;
    etRunner *runner = (etRunner *)data;
 
+   DBG("[%s] Ecore Key Up cb (%s)", __func__, ev->keyname);
    if (runner->ev.key.name == NULL) return ECORE_CALLBACK_PASS_ON;
 
    if (!strncmp(runner->ev.key.name, ev->keyname, strlen(ev->keyname)))
@@ -2583,7 +2585,12 @@ _cb_ecore_key_up(void *data, int type, void *event)
           {
              runner->ev.key.ecore_state = EINA_FALSE;
              if (checkEcoreDeviceInfo(ev->dev))
-               runner->insertEventQueue(ev->window, E_TC_EVENT_TYPE_INPUT_ECORE_KEY);
+               {
+                  DBG("[%s] Ecore Key Up cb. insert event", __func__);
+                  // Since a client with no window can receive ECORE_KEY event using keygrab,
+                  // insert event with no window id given
+                  runner->insertEventQueue(0, E_TC_EVENT_TYPE_INPUT_ECORE_KEY);
+               }
              else
                ERR("[Error] Ecore Key Up cb. device info is empty");
           }
@@ -2611,7 +2618,7 @@ _cb_ecore_mouse_button_down(void *data, int type, void *event)
           {
             if (checkEcoreDeviceInfo(ev->dev))
               {
-                 DBG("Mouse button DOWN cb. insert event");
+                 DBG("Mouse button DOWN cb. insert event ev->window:%d", ev->window);
                  runner->ev.mouse.ecore_state = EINA_TRUE;
                  runner->insertEventQueue(ev->window, E_TC_EVENT_TYPE_INPUT_ECORE_MOUSE);
               }
@@ -2642,7 +2649,7 @@ _cb_ecore_mouse_button_up(void *data, int type, void *event)
           {
              if (checkEcoreDeviceInfo(ev->dev))
                {
-                  DBG("Mouse button UP cb. insert event");
+                  DBG("Mouse button UP cb. insert event ev->window:%d", ev->window);
                   runner->ev.mouse.ecore_state = EINA_FALSE;
                   runner->insertEventQueue(ev->window, E_TC_EVENT_TYPE_INPUT_ECORE_MOUSE);
                }
@@ -2668,7 +2675,7 @@ _cb_ecore_mouse_move(void *data, int type, void *event)
           {
              if (checkEcoreDeviceInfo(ev->dev))
                {
-                  DBG("Mouse MOVE cb. insert event");
+                  DBG("Mouse MOVE cb. insert event ev->window:%d", ev->window);
                   runner->insertEventQueue(ev->window, E_TC_EVENT_TYPE_INPUT_ECORE_MOUSE);
                }
              else
@@ -2694,7 +2701,7 @@ _cb_ecore_mouse_relative_move(void *data, int type, void *event)
           {
              if (checkEcoreDeviceInfo(ev->dev))
                {
-                  DBG("Mouse Relative Move cb. insert event");
+                  DBG("Mouse Relative Move cb. insert event ev->window:%d", ev->window);
                   runner->insertEventQueue(ev->window, E_TC_EVENT_TYPE_INPUT_ECORE_MOUSE_RELATIVE_MOVE);
                }
              else
@@ -2713,6 +2720,7 @@ _cb_evas_key_down(void *data, Evas * evas, Evas_Object * obj, void * event_info)
    etRunner *runner = (etRunner *)data;
 
    ev = (Evas_Event_Key_Down *)event_info;
+   DBG("[%s] Evas Key Down cb (%s)", __func__, ev->keyname);
 
    if (!strncmp(runner->ev.key.name, ev->keyname, strlen(ev->keyname)))
      {
@@ -2732,6 +2740,7 @@ _cb_evas_key_up(void * data, Evas * evas, Evas_Object * obj, void * event_info)
    etRunner *runner = (etRunner *)data;
 
    ev = (Evas_Event_Key_Up *)event_info;
+   DBG("[%s] Evas Key Up cb (%s)", __func__, ev->keyname);
 
    if (!strncmp(runner->ev.key.name, ev->keyname, strlen(ev->keyname)))
      {
@@ -2832,6 +2841,7 @@ _cb_gesture_tap(void *data, int type, void *event)
    efl_util_event_gesture_tap_s *ev =
      (efl_util_event_gesture_tap_s *)event;
 
+   DBG("Tab cb fingers:%d, repeats:%d", ev->fingers, ev->repeats);
    if ((ev->fingers == (unsigned int)runner->ev.gesture.tap.fingers) &&
        (ev->repeats == (unsigned int)runner->ev.gesture.tap.repeats))
      {
@@ -2900,6 +2910,7 @@ _cb_gesture_edge_swipe(void *data, int type, void *event)
    efl_util_event_gesture_edge_swipe_s *ev =
      (efl_util_event_gesture_edge_swipe_s *)event;
 
+   DBG("Edge Swipe cb fingers:%d, edge:%d (%d, %d)", ev->fingers, ev->edge, ev->sx, ev->sy);
    if ((ev->fingers == (unsigned int)runner->ev.gesture.edge.fingers) &&
        (ev->edge == (unsigned int)runner->ev.gesture.edge.edge))
      {
@@ -3033,6 +3044,7 @@ _cb_gesture_edge_drag(void *data, int type, void *event)
    efl_util_event_gesture_edge_drag_s *ev =
      (efl_util_event_gesture_edge_drag_s *)event;
 
+   DBG("Edge Drag cb fingers:%d, edge:%d m:%d (%d, %d)", ev->fingers, ev->edge, ev->mode, ev->cx, ev->cy);
    if ((ev->fingers == (unsigned int)runner->ev.gesture.edge.fingers) &&
        (ev->edge == (unsigned int)runner->ev.gesture.edge.edge) &&
        (ev->mode == EFL_UTIL_GESTURE_MODE_END))
index 03d005d8e12555face938ab18d380ac717a1d196..3c34e1d1217ea8faa3c2833096b5721c665deadb 100644 (file)
@@ -50,6 +50,7 @@ TEST_F(etTestInput, keygrab_nowin_shared)
    inputgen_h->generateKeyEvent(key_name, 0.3);
    ev_result = etRunner::get().waitEvent(NULL, E_TC_EVENT_TYPE_INPUT_ECORE_KEY);
    ASSERT_NE(ev_result, nullptr);
+   ASSERT_TRUE(ev_result->result);
 
    ret = ecore_wl2_window_keygrab_unset(NULL, "XF86Menu", 0, 0);
    ASSERT_TRUE(ret);
@@ -68,6 +69,7 @@ TEST_F(etTestInput, keygrab_nowin_orexcl)
    inputgen_h->generateKeyEvent(key_name, 0.3);
    ev_result = etRunner::get().waitEvent(NULL, E_TC_EVENT_TYPE_INPUT_ECORE_KEY);
    ASSERT_NE(ev_result, nullptr);
+   ASSERT_TRUE(ev_result->result);
 
    ret = ecore_wl2_window_keygrab_unset(NULL, "XF86Menu", 0, 0);
    ASSERT_TRUE(ret);
@@ -86,6 +88,7 @@ TEST_F(etTestInput, keygrab_nowin_excl)
    inputgen_h->generateKeyEvent(key_name, 0.3);
    ev_result = etRunner::get().waitEvent(NULL, E_TC_EVENT_TYPE_INPUT_ECORE_KEY);
    ASSERT_NE(ev_result, nullptr);
+   ASSERT_TRUE(ev_result->result);
 
    ret = ecore_wl2_window_keygrab_unset(NULL, "XF86Menu", 0, 0);
    ASSERT_TRUE(ret);
@@ -373,6 +376,7 @@ TEST_F(etTestInput, keygrab_list)
    inputgen_h->generateKeyEvent(key_name, 0.3);
    ev_result = etRunner::get().waitEvent(NULL, E_TC_EVENT_TYPE_INPUT_ECORE_KEY);
    ASSERT_NE(ev_result, nullptr);
+   ASSERT_TRUE(ev_result->result);
 
    keygrab_result_list = ecore_wl2_window_keygrab_list_unset(NULL, keygrab_list);
    error_count = eina_list_count(keygrab_result_list);