discomfitor pushed a commit to branch enlightenment-0.20.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=ac2249d1525bc558d4138a503d73a35f34bc91c5

commit ac2249d1525bc558d4138a503d73a35f34bc91c5
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