e_test_helper: Added iconic state changed signal 15/258215/4
authorJunseok, Kim <juns.kim@samsung.com>
Wed, 12 May 2021 08:44:57 +0000 (17:44 +0900)
committerJunseok, Kim <juns.kim@samsung.com>
Thu, 13 May 2021 04:44:08 +0000 (13:44 +0900)
send iconic state changed signal when iconic state changed of test client.
it contains native window(uint) id and iconic state(Eina_Bool).

Change-Id: I33c687f32b8a7bab1e4d5e4031bc3c2447a1117d
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
src/bin/e_test_helper.c

index 959fc4a..6e0d77e 100644 (file)
@@ -77,6 +77,7 @@ enum
    E_TEST_HELPER_SIGNAL_FOCUS_CHANGED,
    E_TEST_HELPER_SIGNAL_RENDER,
    E_TEST_HELPER_AUX_HINT_CHANGED,
+   E_TEST_HELPER_SIGNAL_ICONIC_STATE_CHANGED,
 };
 
 static const Eldbus_Signal signals[] = {
@@ -116,6 +117,12 @@ static const Eldbus_Signal signals[] = {
           ELDBUS_ARGS({"uuss", "window id, aux_hint id, aux_hint key, aux_hint value"}),
           0
        },
+     [E_TEST_HELPER_SIGNAL_ICONIC_STATE_CHANGED] =
+       {
+          "IconicStateChanged",
+          ELDBUS_ARGS({"ub", "window id, iconic state"}),
+          0
+       },
        { }
 };
 
@@ -1695,6 +1702,31 @@ _e_test_helper_hook_cb_client_aux_hint_change(void *data EINA_UNUSED, E_Client *
      }
 }
 
+static Eina_Bool
+_e_test_helper_cb_client_iconic_state_changed(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
+{
+   E_Event_Client *ev = event;
+   E_Client *ec;
+   Eldbus_Message *sig;
+   Ecore_Window win;
+
+   if (!th_data->tc_running) return ECORE_CALLBACK_PASS_ON;
+
+   ec = ev->ec;
+   if (!ec) return ECORE_CALLBACK_PASS_ON;
+
+   win = e_pixmap_res_id_get(ec->pixmap);
+   if (!win) return ECORE_CALLBACK_PASS_ON;
+
+   if (!_e_test_helper_find_win_on_reg_list(win)) return ECORE_CALLBACK_PASS_ON;
+
+   sig = eldbus_service_signal_new(th_data->iface, E_TEST_HELPER_SIGNAL_ICONIC_STATE_CHANGED);
+   eldbus_message_arguments_append(sig, "ub", win, ec->iconic);
+   eldbus_service_signal_send(th_data->iface, sig);
+
+   return ECORE_CALLBACK_PASS_ON;
+}
+
 /* externally accessible functions */
 EINTERN int
 e_test_helper_init(void)
@@ -1726,6 +1758,10 @@ e_test_helper_init(void)
                          _e_test_helper_cb_client_focus_changed, NULL);
    E_LIST_HANDLER_APPEND(th_data->hdlrs, E_EVENT_COMP_OBJECT_IMG_RENDER,
                           _e_test_helper_cb_img_render, NULL);
+   E_LIST_HANDLER_APPEND(th_data->hdlrs, E_EVENT_CLIENT_ICONIFY,
+                          _e_test_helper_cb_client_iconic_state_changed, NULL);
+   E_LIST_HANDLER_APPEND(th_data->hdlrs, E_EVENT_CLIENT_UNICONIFY,
+                          _e_test_helper_cb_client_iconic_state_changed, NULL);
 
    E_LIST_HOOK_APPEND(th_data->hooks, E_CLIENT_HOOK_AUX_HINT_CHANGE,
                       _e_test_helper_hook_cb_client_aux_hint_change, NULL);