discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=982a4d249bb7922de9c42e1d9ce9547a6b113438
commit 982a4d249bb7922de9c42e1d9ce9547a6b113438 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Thu Dec 10 11:53:56 2015 -0500 move comp canvas resize callback to monitor elm win geometry elm win intercepts this callback in order to maintain internal sizing for use with elm widgets on the compositor canvas, so it's necessary to get the callback from this object in order to accurately update the canvas during resizes --- src/bin/e_comp.c | 12 ++++++++++++ src/bin/e_comp_canvas.c | 8 -------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index fb5a883..1c38f48 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -989,6 +989,17 @@ _e_comp_act_redirect_toggle_go(E_Object * obj EINA_UNUSED, const char *params EI ////////////////////////////////////////////////////////////////////////// +static void +_e_comp_resize(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + int w, h; + + evas_object_geometry_get(obj, NULL, NULL, &w, &h); + if ((w == e_comp->w) && (h == e_comp->h)) return; + e_randr2_screens_setup(w, h); + e_comp_canvas_update(); +} + EINTERN Eina_Bool e_comp_init(void) { @@ -1131,6 +1142,7 @@ out: e_screensaver_update(); } e_comp->elm = elm_win_fake_add(e_comp->ee); + evas_object_event_callback_add(e_comp->elm, EVAS_CALLBACK_RESIZE, _e_comp_resize, NULL); elm_win_fullscreen_set(e_comp->elm, 1); evas_object_show(e_comp->elm); e_util_env_set("HYBRIS_EGLPLATFORM", NULL); diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index a3d8401..518f6b6 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -218,13 +218,6 @@ _e_comp_canvas_cb_zone_sort(const void *data1, const void *data2) } static void -_e_comp_canvas_resize(Ecore_Evas *ee EINA_UNUSED) -{ - e_randr2_screens_setup(e_comp->w, e_comp->h); - e_comp_canvas_update(); -} - -static void _e_comp_canvas_prerender(Ecore_Evas *ee EINA_UNUSED) { E_Comp_Cb cb; @@ -292,7 +285,6 @@ e_comp_canvas_init(int w, int h) E_LIST_HANDLER_APPEND(handlers, E_EVENT_SCREENSAVER_OFF, _e_comp_cb_screensaver_off, NULL); ecore_evas_callback_pre_render_set(e_comp->ee, _e_comp_canvas_prerender); - ecore_evas_callback_resize_set(e_comp->ee, _e_comp_canvas_resize); ecore_evas_resize(e_comp->ee, w, h); return EINA_TRUE; --