aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2014-09-06 15:08:17 +0200
committerCedric BAIL <cedric@osg.samsung.com>2014-09-06 15:15:10 +0200
commit6a373caca071e66ff3258b4932a34bc4cddcd115 (patch)
tree150ef14de3b21d15a6858b2c33ed15972fb05e3f
parentedje embryo stop_program() should stop pending actions (diff)
downloadefl-6a373caca071e66ff3258b4932a34bc4cddcd115.tar.gz
evas: let's freeze the canvas, shall we ?
This is a critical performance issue that was introduced during our move to eo2. This code was still eo1 style so I guess it was just forgotten. The result is that canvas with large numbers of widget were slower after the migration. @fix
-rw-r--r--src/lib/evas/canvas/evas_canvas.eo2
-rw-r--r--src/lib/evas/canvas/evas_events.c10
2 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/evas/canvas/evas_canvas.eo b/src/lib/evas/canvas/evas_canvas.eo
index 2ebf152361..5c45c21c6e 100644
--- a/src/lib/evas/canvas/evas_canvas.eo
+++ b/src/lib/evas/canvas/evas_canvas.eo
@@ -1761,6 +1761,8 @@ class Evas.Canvas (Eo.Base, Evas.Common_Interface)
implements {
Eo.Base.constructor;
Eo.Base.destructor;
+ Eo.Base.event_thaw;
+ Eo.Base.event_freeze;
Evas.Common_Interface.evas.get;
}
diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c
index d18245d5e1..aff9989460 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -945,16 +945,15 @@ evas_event_thaw(Evas *eo_e)
eo_do(eo_e, eo_event_thaw());
}
-void
-_canvas_event_freeze(Eo *eo_e, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN void
+_evas_canvas_eo_base_event_freeze(Eo *eo_e, Evas_Public_Data *e)
{
eo_do_super(eo_e, EVAS_CANVAS_CLASS, eo_event_freeze());
- Evas_Public_Data *e = _pd;
e->is_frozen = EINA_TRUE;
}
-void
-_canvas_event_thaw(Eo *eo_e, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN void
+_evas_canvas_eo_base_event_thaw(Eo *eo_e, Evas_Public_Data *e)
{
int fcount = -1;
eo_do_super(eo_e, EVAS_CANVAS_CLASS,
@@ -963,7 +962,6 @@ _canvas_event_thaw(Eo *eo_e, void *_pd, va_list *list EINA_UNUSED)
fcount = eo_event_freeze_count_get());
if (0 == fcount)
{
- Evas_Public_Data *e = _pd;
Evas_Layer *lay;
e->is_frozen = EINA_FALSE;