forked from enlightenment/efl
Ecore_Evas (wayland): Fix ecore_evas egl windows to properly resize
from the top when asked too (this is akin to the wayland_shm resize fix). Also, when we update the ecore_wl_window size, we should be sure to call the buffer attach function so that server size allocation can be kept in sync with the window allocation. SVN revision: 75214
This commit is contained in:
parent
1b96e67e75
commit
a5df8468b0
|
@ -492,7 +492,7 @@ _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ee->engine.wl.frame)
|
if (ee->engine.wl.frame)
|
||||||
evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
|
evas_object_resize(ee->engine.wl.frame, w, h);
|
||||||
|
|
||||||
/* set new engine destination */
|
/* set new engine destination */
|
||||||
/* evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); */
|
/* evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); */
|
||||||
|
@ -503,7 +503,10 @@ _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
|
||||||
/* ecore_wl_flush(); */
|
/* ecore_wl_flush(); */
|
||||||
|
|
||||||
if (ee->engine.wl.win)
|
if (ee->engine.wl.win)
|
||||||
ecore_wl_window_update_size(ee->engine.wl.win, ee->w, ee->h);
|
{
|
||||||
|
ecore_wl_window_update_size(ee->engine.wl.win, w, h);
|
||||||
|
ecore_wl_window_buffer_attach(ee->engine.wl.win, NULL, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (ee->func.fn_resize) ee->func.fn_resize(ee);
|
if (ee->func.fn_resize) ee->func.fn_resize(ee);
|
||||||
}
|
}
|
||||||
|
@ -859,6 +862,15 @@ _ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location)
|
||||||
if (!ee) return;
|
if (!ee) return;
|
||||||
if (ee->engine.wl.win)
|
if (ee->engine.wl.win)
|
||||||
{
|
{
|
||||||
|
Evas_Engine_Info_Wayland_Egl *einfo;
|
||||||
|
|
||||||
|
if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
|
||||||
|
{
|
||||||
|
einfo->info.edges = location;
|
||||||
|
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
||||||
|
ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
|
||||||
|
}
|
||||||
|
|
||||||
ee->engine.wl.win->resizing = EINA_TRUE;
|
ee->engine.wl.win->resizing = EINA_TRUE;
|
||||||
ecore_wl_window_resize(ee->engine.wl.win, ee->w, ee->h, location);
|
ecore_wl_window_resize(ee->engine.wl.win, ee->w, ee->h, location);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue