summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWooHyun Jung <wh0705.jung@samsung.com>2020-05-18 12:39:59 +0900
committerHermet Park <chuneon.park@samsung.com>2020-05-18 12:39:59 +0900
commitf026000c1eb3967ad123c2239aeb7db3ce70dbf6 (patch)
tree2e9b7164cff527a4eb327868e2ef3f07d2cc552c
parentca169ec71505c1d43a1d4ac793d6a0626667c320 (diff)
downloadefl-f026000c1eb3967ad123c2239aeb7db3ce70dbf6.tar.gz
efl_ui_image: fix to call "clicked" smart callback when there is no img
Summary: Some applications have used "clicked" smart callback from elm_image which does not have an image in it. To keep backward compatibility, hit_rect needs to be resized properly to call smart callback function. @fix Reviewers: Hermet, jsuya, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11840
-rw-r--r--src/lib/elementary/efl_ui_image.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c
index 7cb96970b0..4dea543391 100644
--- a/src/lib/elementary/efl_ui_image.c
+++ b/src/lib/elementary/efl_ui_image.c
@@ -181,6 +181,7 @@ _image_sizing_eval(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Object *img)
{
Evas_Coord x = 0, y = 0, w = 1, h = 1;
int ox, oy, ow, oh;
+ Eina_Bool img_no_resize = EINA_FALSE;
evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
if (efl_isa(img, EFL_CANVAS_LAYOUT_CLASS))
@@ -202,9 +203,7 @@ _image_sizing_eval(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Object *img)
//Exception Case
if ((iw == 0) || (ih == 0) || (ow == 0) || (oh == 0))
{
- evas_object_resize(img, 0, 0);
- evas_object_resize(sd->hit_rect, 0, 0);
- return;
+ img_no_resize = EINA_TRUE;
}
iw = ((double)iw) * sd->scale;
@@ -306,7 +305,10 @@ _image_sizing_eval(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Object *img)
}
}
done:
- evas_object_geometry_set(img, x, y, w, h);
+ if (img_no_resize)
+ evas_object_geometry_set(img, 0, 0, 0, 0);
+ else
+ evas_object_geometry_set(img, x, y, w, h);
evas_object_geometry_set(sd->hit_rect, x, y, w, h);
}