forked from enlightenment/efl
ecore_wl2_window: copy available rotation info.
Summary: ecore_wl2_window doesn't copy rotation information. If passed pointer is destroyed, rotation information disappears. So add memory allocating for managing information. Reviewers: CHAN, devilhorns Reviewed By: devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11891
This commit is contained in:
parent
28d41f4e6c
commit
d6ce6a8cd5
|
@ -739,6 +739,9 @@ ecore_wl2_window_free(Ecore_Wl2_Window *window)
|
||||||
if (window->class) eina_stringshare_del(window->class);
|
if (window->class) eina_stringshare_del(window->class);
|
||||||
if (window->role) eina_stringshare_del(window->role);
|
if (window->role) eina_stringshare_del(window->role);
|
||||||
|
|
||||||
|
if (window->wm_rot.available_rots) free(window->wm_rot.available_rots);
|
||||||
|
window->wm_rot.available_rots = NULL;
|
||||||
|
|
||||||
display->windows =
|
display->windows =
|
||||||
eina_inlist_remove(display->windows, EINA_INLIST_GET(window));
|
eina_inlist_remove(display->windows, EINA_INLIST_GET(window));
|
||||||
|
|
||||||
|
@ -1252,9 +1255,24 @@ ecore_wl2_window_preferred_rotation_get(Ecore_Wl2_Window *window)
|
||||||
EAPI void
|
EAPI void
|
||||||
ecore_wl2_window_available_rotations_set(Ecore_Wl2_Window *window, const int *rots, unsigned int count)
|
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);
|
EINA_SAFETY_ON_NULL_RETURN(window);
|
||||||
|
|
||||||
|
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.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
|
EAPI Eina_Bool
|
||||||
|
|
Loading…
Reference in New Issue