window->input_region = NULL;
//
+ if (window->wm_rot.available_rots) free(window->wm_rot.available_rots);
+ window->wm_rot.available_rots = NULL;
+
display->windows =
eina_inlist_remove(display->windows, EINA_INLIST_GET(window));
EAPI void
ecore_wl2_window_available_rotations_set(Ecore_Wl2_Window *window, const int *rots, unsigned int count)
{
+ unsigned int i = 0;
EINA_SAFETY_ON_NULL_RETURN(window);
// TIZEN_ONLY
_tizen_rotation_available_angles_set(window, rots, count);
//
+
+ if (window->wm_rot.available_rots)
+ {
+ free(window->wm_rot.available_rots);
+ window->wm_rot.available_rots = NULL;
+ }
window->wm_rot.count = count;
- window->wm_rot.available_rots = (int *)rots;
+
+ if (count >= 1)
+ {
+ window->wm_rot.available_rots = calloc(count, sizeof(int));
+ if (!window->wm_rot.available_rots) return;
+
+ for (; i < count; i++)
+ window->wm_rot.available_rots[i] = ((int *)rots)[i];
+ }
}
EAPI Eina_Bool