ecore_evas_wayland: Make resize code common

Brings resize code into the common implementation - there is a functional
change.  There appears to have been a bug in the egl resize where it
used the same w, h order for portrait evases as for landscape.  This was
fixed in shm.  I've used the shm variant for the common code.
This commit is contained in:
Derek Foreman 2016-11-02 07:41:33 -05:00
parent b23797c55a
commit 4260d5d3a2
4 changed files with 21 additions and 78 deletions

View File

@ -1790,21 +1790,32 @@ _ecore_evas_wl_common_screen_dpi_get(const Ecore_Evas *ee EINA_UNUSED, int *xdpi
if (ydpi) *ydpi = dpi;
}
static void
_ecore_evas_wayland_resize_edge_set(Ecore_Evas *ee, int edge)
{
Evas_Engine_Info_Wayland *einfo;
if ((einfo = (Evas_Engine_Info_Wayland *)evas_engine_info_get(ee->evas)))
einfo->info.edges = edge;
}
static void
_ecore_evas_wayland_resize(Ecore_Evas *ee, int location)
{
Ecore_Evas_Engine_Wl_Data *wdata;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (!ee) return;
if (!strcmp(ee->driver, "wayland_shm"))
wdata = ee->engine.data;
if (wdata->win)
{
#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
_ecore_evas_wayland_shm_resize(ee, location);
#endif
}
else if (!strcmp(ee->driver, "wayland_egl"))
{
#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
_ecore_evas_wayland_egl_resize(ee, location);
#endif
_ecore_evas_wayland_resize_edge_set(ee, location);
if (ECORE_EVAS_PORTRAIT(ee))
ecore_wl2_window_resize(wdata->win, ee->w, ee->h, location);
else
ecore_wl2_window_resize(wdata->win, ee->h, ee->w, location);
}
}

View File

@ -442,33 +442,4 @@ conn_err:
return NULL;
}
void
_ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location)
{
Ecore_Evas_Engine_Wl_Data *wdata;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (!ee) return;
wdata = ee->engine.data;
if (wdata->win)
{
_ecore_evas_wayland_egl_resize_edge_set(ee, location);
if (ECORE_EVAS_PORTRAIT(ee))
ecore_wl2_window_resize(wdata->win, ee->w, ee->h, location);
else
ecore_wl2_window_resize(wdata->win, ee->w, ee->h, location);
}
}
void
_ecore_evas_wayland_egl_resize_edge_set(Ecore_Evas *ee, int edge)
{
Evas_Engine_Info_Wayland *einfo;
if ((einfo = (Evas_Engine_Info_Wayland *)evas_engine_info_get(ee->evas)))
einfo->info.edges = edge;
}
#endif

View File

@ -110,14 +110,4 @@ void _ecore_evas_wl_common_pointer_xy_get(const Ecore_Evas *ee, Evas_Coord *x, E
extern Eina_List *ee_list;
#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
void _ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location);
void _ecore_evas_wayland_shm_resize_edge_set(Ecore_Evas *ee, int edge);
#endif
#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
void _ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location);
void _ecore_evas_wayland_egl_resize_edge_set(Ecore_Evas *ee, int edge);
#endif
#endif /* _ECORE_EVAS_WAYLAND_PRIVATE_H_ */

View File

@ -371,33 +371,4 @@ conn_err:
return NULL;
}
void
_ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location)
{
Ecore_Evas_Engine_Wl_Data *wdata;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (!ee) return;
wdata = ee->engine.data;
if (wdata->win)
{
_ecore_evas_wayland_shm_resize_edge_set(ee, location);
if (ECORE_EVAS_PORTRAIT(ee))
ecore_wl2_window_resize(wdata->win, ee->w, ee->h, location);
else
ecore_wl2_window_resize(wdata->win, ee->h, ee->w, location);
}
}
void
_ecore_evas_wayland_shm_resize_edge_set(Ecore_Evas *ee, int edge)
{
Evas_Engine_Info_Wayland *einfo;
if ((einfo = (Evas_Engine_Info_Wayland *)evas_engine_info_get(ee->evas)))
einfo->info.edges = edge;
}
#endif