Ecore_Event_Handler *dbus_init_done_h;
Eina_List *hdlrs;
+ Eina_List *hooks;
Eina_List *reg_wins;
Eina_Bool tc_running;
E_TEST_HELPER_SIGNAL_WINDOW_ROTATION_CHANGED,
E_TEST_HELPER_SIGNAL_FOCUS_CHANGED,
E_TEST_HELPER_SIGNAL_RENDER,
+ E_TEST_HELPER_AUX_HINT_CHANGED,
};
static const Eldbus_Signal signals[] = {
ELDBUS_ARGS({"u", "window id for tracing rendering"}),
0
},
+ [E_TEST_HELPER_AUX_HINT_CHANGED] =
+ {
+ "AuxHintChanged",
+ ELDBUS_ARGS({"uuss", "window id, aux_hint id, aux_hint key, aux_hint value"}),
+ 0
+ },
{ }
};
eldbus_service_signal_send(th_data->iface, signal);
}
+static void
+_e_test_helper_send_aux_hint_change(Ecore_Window win, int hint_id, const char *hint_key, const char *hint_val)
+{
+ Eldbus_Message *signal;
+
+ EINA_SAFETY_ON_NULL_RETURN(th_data);
+
+ signal = eldbus_service_signal_new(th_data->iface, E_TEST_HELPER_AUX_HINT_CHANGED);
+ eldbus_message_arguments_append(signal, "uuss", win, hint_id, hint_key, hint_val);
+ eldbus_service_signal_send(th_data->iface, signal);
+}
+
static Test_Helper_Reg_Win *
_e_test_helper_find_win_on_reg_list(Ecore_Window win)
{
return ECORE_CALLBACK_DONE;
}
+static void
+_e_test_helper_hook_cb_client_aux_hint_change(void *data EINA_UNUSED, E_Client *ec)
+{
+ Ecore_Window win = 0;
+ E_Comp_Wl_Client_Data *cdata = e_client_cdata_get(ec);
+ Eina_List *l, *ll;
+ E_Comp_Wl_Aux_Hint *hint;
+
+ EINA_SAFETY_ON_NULL_RETURN(th_data);
+ if (!th_data->tc_running) return;
+
+ win = e_pixmap_res_id_get(ec->pixmap);
+ if (!_e_test_helper_find_win_on_reg_list(win)) return;
+
+ if (win)
+ {
+ EINA_LIST_FOREACH_SAFE(cdata->aux_hint.hints, l, ll, hint)
+ {
+ if (hint->changed)
+ {
+ _e_test_helper_send_aux_hint_change(win, hint->id, hint->hint, hint->val);
+ }
+ }
+ }
+}
+
/* externally accessible functions */
EINTERN int
e_test_helper_init(void)
E_LIST_HANDLER_APPEND(th_data->hdlrs, E_EVENT_COMP_OBJECT_IMG_RENDER,
_e_test_helper_cb_img_render, NULL);
+ E_LIST_HOOK_APPEND(th_data->hooks, E_CLIENT_HOOK_AUX_HINT_CHANGE,
+ _e_test_helper_hook_cb_client_aux_hint_change, NULL);
+
return 1;
err: