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;

-- 


Reply via email to