diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/efx_private.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/efx_private.h b/src/lib/efx_private.h index 9ab13f5..0c89a6f 100644 --- a/src/lib/efx_private.h +++ b/src/lib/efx_private.h | |||
@@ -98,11 +98,12 @@ void efx_fade_reclip(void *efd); | |||
98 | 98 | ||
99 | #define EFX_QUEUE_CHECK(X) do \ | 99 | #define EFX_QUEUE_CHECK(X) do \ |
100 | { \ | 100 | { \ |
101 | Eina_Bool run; \ | ||
102 | EFX *ee = (X)->e; \ | 101 | EFX *ee = (X)->e; \ |
103 | run = efx_queue_complete((X)->e, (X)); \ | 102 | evas_object_ref(ee->obj); \ |
104 | if ((X)->cb) (X)->cb((X)->data, &(X)->e->map_data, (X)->e->obj); \ | 103 | if ((X)->cb) (X)->cb((X)->data, &(X)->e->map_data, (X)->e->obj); \ |
105 | if (run) efx_queue_process(ee); \ | 104 | if (efx_queue_complete((X)->e, (X))) \ |
105 | efx_queue_process(ee); \ | ||
106 | evas_object_unref(ee->obj); \ | ||
106 | } while (0) | 107 | } while (0) |
107 | Eina_Bool efx_queue_complete(EFX *e, void *effect_data); | 108 | Eina_Bool efx_queue_complete(EFX *e, void *effect_data); |
108 | void efx_queue_process(EFX *e); | 109 | void efx_queue_process(EFX *e); |