if (!ec->ignored)
_e_client_event_add(ec);
e_comp_object_client_add(ec);
- if (ec->frame)
+ if (!ec->frame)
{
- _e_client_view_init(ec);
- evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_SHOW, _e_client_cb_evas_show, ec);
- evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_HIDE, _e_client_cb_evas_hide, ec);
- evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_MOVE, _e_client_cb_evas_move, ec);
- evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_RESIZE, _e_client_cb_evas_resize, ec);
- evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_RESTACK, _e_client_cb_evas_restack, ec);
+ ERR("Failed to create frame object for ec(%p)", ec);
+ e_object_del(E_OBJECT(ec));
+ return NULL;
+ }
- if (e_input_thread_check_client_cloning_needed())
- {
- Evas_Coord x, y, w, h;
- E_Input_Thread_Request_EClient_Data ec_data;
- memset(&ec_data, 0, sizeof(E_Input_Thread_Request_EClient_Data));
- e_view_client_geometry_get(PRI(ec)->view_client, &x, &y, &w, &h);
- ec_data.ec = ec;
- ec_data.eo_geometry.x = x;
- ec_data.eo_geometry.y = y;
- ec_data.eo_geometry.w = w;
- ec_data.eo_geometry.h = h;
-
- ICINF("[%s] ec(%p), eo.x(%d), eo.y(%d), eo.w(%d), eo.h(%d)\n", __func__, ec, x, y, w, h);
-
- e_input_backend_thread_safe_call(_e_client_input_thread_eo_geometry_set, &ec_data, sizeof(E_Input_Thread_Request_EClient_Data));
- }
+ _e_client_view_init(ec);
+ evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_SHOW, _e_client_cb_evas_show, ec);
+ evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_HIDE, _e_client_cb_evas_hide, ec);
+ evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_MOVE, _e_client_cb_evas_move, ec);
+ evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_RESIZE, _e_client_cb_evas_resize, ec);
+ evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_RESTACK, _e_client_cb_evas_restack, ec);
+
+ if (e_input_thread_check_client_cloning_needed())
+ {
+ Evas_Coord x, y, w, h;
+ E_Input_Thread_Request_EClient_Data ec_data;
+ memset(&ec_data, 0, sizeof(E_Input_Thread_Request_EClient_Data));
+ e_view_client_geometry_get(PRI(ec)->view_client, &x, &y, &w, &h);
+ ec_data.ec = ec;
+ ec_data.eo_geometry.x = x;
+ ec_data.eo_geometry.y = y;
+ ec_data.eo_geometry.w = w;
+ ec_data.eo_geometry.h = h;
+
+ ICINF("[%s] ec(%p), eo.x(%d), eo.y(%d), eo.w(%d), eo.h(%d)\n", __func__, ec, x, y, w, h);
+
+ e_input_backend_thread_safe_call(_e_client_input_thread_eo_geometry_set, &ec_data, sizeof(E_Input_Thread_Request_EClient_Data));
}
_e_client_hook_call(E_CLIENT_HOOK_NEW_CLIENT_POST, ec);