summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2015-05-28 15:35:35 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2015-05-28 15:37:00 -0400
commit75c44e28aeeaf6e095f07ad1cc263bebf3d34033 (patch)
treefb82748269847a38e3fc840f40a165521fd0911f
parent8052d9d4e38fafc4dddb40a19412ff4be867afc6 (diff)
downloadelementary-75c44e28aeeaf6e095f07ad1cc263bebf3d34033.tar.gz
glview: preserved changed state when altering render mode
fixes the case where glview is marked changed and then the render policy is modified prior to the render callback executing @fix
-rw-r--r--src/lib/elm_glview.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lib/elm_glview.c b/src/lib/elm_glview.c
index 0792cc99f..9c012d9b0 100644
--- a/src/lib/elm_glview.c
+++ b/src/lib/elm_glview.c
@@ -169,6 +169,8 @@ _set_render_policy_callback(Evas_Object *obj)
switch (sd->render_policy)
{
case ELM_GLVIEW_RENDER_POLICY_ON_DEMAND:
+ if (sd->render_idle_enterer)
+ evas_object_image_pixels_dirty_set(wd->resize_obj, EINA_TRUE);
// Delete idle_enterer if it for some reason is around
ELM_SAFE_FREE(sd->render_idle_enterer, ecore_idle_enterer_del);
@@ -180,6 +182,8 @@ _set_render_policy_callback(Evas_Object *obj)
break;
case ELM_GLVIEW_RENDER_POLICY_ALWAYS:
+ if (evas_object_image_pixels_dirty_get(wd->resize_obj))
+ sd->render_idle_enterer = ecore_idle_enterer_before_add((Ecore_Task_Cb)_render_cb, obj);
// Unset the pixel getter callback if set already
evas_object_image_pixels_get_callback_set
(wd->resize_obj, NULL, NULL);