static void
_e_tizen_rotation_destroy(struct wl_resource *resource)
{
- Policy_Ext_Rotation *rot;
+ Policy_Ext_Rotation *ext_rot;
- rot = wl_resource_get_user_data(resource);
- EINA_SAFETY_ON_NULL_RETURN(rot);
+ ext_rot = wl_resource_get_user_data(resource);
+ EINA_SAFETY_ON_NULL_RETURN(ext_rot);
- rot->rotation_list = eina_list_remove(rot->rotation_list, resource);
+ ext_rot->rotation_list = eina_list_remove(ext_rot->rotation_list, resource);
+
+ /* if there's no connected client of tizen_rotation */
+ if (!ext_rot->rotation_list)
+ {
+ _e_client_rotation_list_remove(ext_rot->ec);
+ if (rot.async_list) rot.async_list = eina_list_remove(rot.async_list, ext_rot->ec);
+
+ ext_rot->angle_change_done = EINA_TRUE;
+ }
}
static void