summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2014-01-24 16:41:21 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2014-02-07 17:33:17 +0900
commit712566939dfb86339a8cb34cb5cac2fbe6bbffc8 (patch)
tree4221a2e8ad8f4f4e55f4ca8aece94e123cc86384 /src
parent95550feb3015dda2e077f8eed3e3deba1f099b56 (diff)
Evas filters: Add proxy source only once
If the proxy has already been added to the list of proxy sources, don't add it again. This is for the filters case where unset isn't even called :)
Diffstat (limited to 'src')
-rw-r--r--src/lib/evas/canvas/evas_object_image.c5
-rw-r--r--src/lib/evas/filters/evas_filter.c3
2 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index 043ad92b3b..4524768ac9 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -3231,8 +3231,9 @@ _proxy_set(Evas_Object *eo_proxy, Evas_Object *eo_src)
3231 3231
3232 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src_write) 3232 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src_write)
3233 { 3233 {
3234 proxy_src_write->proxies = eina_list_append(proxy_src_write->proxies, 3234 if (!eina_list_data_find(proxy_src_write->proxies, eo_proxy))
3235 eo_proxy); 3235 proxy_src_write->proxies = eina_list_append(proxy_src_write->proxies,
3236 eo_proxy);
3236 proxy_src_write->redraw = EINA_TRUE; 3237 proxy_src_write->redraw = EINA_TRUE;
3237 } 3238 }
3238 EINA_COW_WRITE_END(evas_object_proxy_cow, src->proxy, proxy_src_write); 3239 EINA_COW_WRITE_END(evas_object_proxy_cow, src->proxy, proxy_src_write);
diff --git a/src/lib/evas/filters/evas_filter.c b/src/lib/evas/filters/evas_filter.c
index cfaa1fc730..8bf7b475ed 100644
--- a/src/lib/evas/filters/evas_filter.c
+++ b/src/lib/evas/filters/evas_filter.c
@@ -148,7 +148,8 @@ evas_filter_context_proxy_bind(Evas_Filter_Context *ctx, Evas_Object *eo_proxy,
148 148
149 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, source->proxy, Evas_Object_Proxy_Data, proxy_src_write) 149 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, source->proxy, Evas_Object_Proxy_Data, proxy_src_write)
150 { 150 {
151 proxy_src_write->proxies = eina_list_append(proxy_src_write->proxies, eo_proxy); 151 if (!eina_list_data_find(source->proxy->proxies, eo_proxy))
152 proxy_src_write->proxies = eina_list_append(proxy_src_write->proxies, eo_proxy);
152 proxy_src_write->redraw = EINA_TRUE; 153 proxy_src_write->redraw = EINA_TRUE;
153 } 154 }
154 EINA_COW_WRITE_END(evas_object_proxy_cow, source->proxy, proxy_src_write); 155 EINA_COW_WRITE_END(evas_object_proxy_cow, source->proxy, proxy_src_write);