ec->comp_data->evas_init = EINA_TRUE;
}
+static void
+_e_comp_wl_client_evas_deinit(E_Client *ec)
+{
+ if (!ec || !ec->comp_data) return;
+ if (!ec->comp_data->evas_init) return;
+
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_SHOW, _e_comp_wl_evas_cb_show);
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_HIDE, _e_comp_wl_evas_cb_hide);
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_MOVE, _e_comp_wl_evas_cb_move);
+
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_MOUSE_IN, _e_comp_wl_evas_cb_mouse_in);
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_MOUSE_OUT, _e_comp_wl_evas_cb_mouse_out);
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_MOUSE_MOVE, _e_comp_wl_evas_cb_mouse_move);
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_MOUSE_DOWN, _e_comp_wl_evas_cb_mouse_down);
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_MOUSE_UP, _e_comp_wl_evas_cb_mouse_up);
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_MOUSE_WHEEL, _e_comp_wl_evas_cb_mouse_wheel);
+
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_MULTI_DOWN, _e_comp_wl_evas_cb_multi_down);
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_MULTI_UP, _e_comp_wl_evas_cb_multi_up);
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_MULTI_MOVE, _e_comp_wl_evas_cb_multi_move);
+
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_FOCUS_IN, _e_comp_wl_evas_cb_focus_in);
+ evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_FOCUS_OUT, _e_comp_wl_evas_cb_focus_out);
+
+ if (!ec->override)
+ {
+ evas_object_smart_callback_del(ec->frame, "client_resize", _e_comp_wl_evas_cb_resize);
+ evas_object_smart_callback_del(ec->frame, "maximize_done", _e_comp_wl_evas_cb_state_update);
+ evas_object_smart_callback_del(ec->frame, "unmaximize_done", _e_comp_wl_evas_cb_state_update);
+ evas_object_smart_callback_del(ec->frame, "maximize_pre", _e_comp_wl_evas_cb_maximize_pre);
+ evas_object_smart_callback_del(ec->frame, "unmaximize_pre", _e_comp_wl_evas_cb_maximize_pre);
+ evas_object_smart_callback_del(ec->frame, "fullscreen", _e_comp_wl_evas_cb_state_update);
+ evas_object_smart_callback_del(ec->frame, "unfullscreen", _e_comp_wl_evas_cb_state_update);
+ }
+
+ evas_object_smart_callback_del(ec->frame, "delete_request", _e_comp_wl_evas_cb_delete_request);
+ evas_object_smart_callback_del(ec->frame, "kill_request", _e_comp_wl_evas_cb_kill_request);
+
+ evas_object_smart_callback_del(ec->frame, "ping", _e_comp_wl_evas_cb_ping);
+ evas_object_smart_callback_del(ec->frame, "color_set", _e_comp_wl_evas_cb_color_set);
+
+ ec->comp_data->evas_init = EINA_FALSE;
+}
+
static Eina_Bool
_e_comp_wl_cb_randr_change(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED)
{
e_presentation_time_container_finish(&ec->comp_data->presentation_container);
+ _e_comp_wl_client_evas_deinit(ec);
+
e_pixmap_cdata_set(ec->pixmap, NULL);
E_FREE_FUNC(ec->comp_data->on_focus_timer, ecore_timer_del);