evas: we should always sync the canvas before destroying the object.
authorCedric BAIL <cedric@osg.samsung.com>
Thu, 5 Apr 2018 18:27:44 +0000 (11:27 -0700)
committerWonki Kim <wonki_.kim@samsung.com>
Tue, 10 Apr 2018 13:25:59 +0000 (22:25 +0900)
src/lib/evas/canvas/evas_canvas.eo
src/lib/evas/canvas/evas_main.c

index ef5d4eb..4afdade 100644 (file)
@@ -983,6 +983,7 @@ class Evas.Canvas (Efl.Object, Efl.Canvas, Efl.Animator, Efl.Input.Interface,
    implements {
       Efl.Object.constructor;
       Efl.Object.destructor;
+      Efl.Object.invalidate;
       Efl.Object.event_thaw;
       Efl.Object.event_freeze;
       Efl.Object.provider_find;
index 33893e9..7d8072a 100644 (file)
@@ -266,11 +266,18 @@ evas_free(Evas *eo_e)
    MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS);
    return;
    MAGIC_CHECK_END();
-   evas_sync(eo_e);
    efl_unref(eo_e);
 }
 
 EOLIAN static void
+_evas_canvas_efl_object_invalidate(Eo *eo_e, Evas_Public_Data *e EINA_UNUSED)
+{
+   evas_sync(eo_e);
+
+   efl_invalidate(efl_super(eo_e, MY_CLASS));
+}
+
+EOLIAN static void
 _evas_canvas_efl_object_destructor(Eo *eo_e, Evas_Public_Data *e)
 {
    Eina_Rectangle *r;