diff options
author | WooHyun Jung <wh0705.jung@samsung.com> | 2020-05-18 12:39:59 +0900 |
---|---|---|
committer | Hermet Park <chuneon.park@samsung.com> | 2020-05-18 12:39:59 +0900 |
commit | f026000c1eb3967ad123c2239aeb7db3ce70dbf6 (patch) | |
tree | 2e9b7164cff527a4eb327868e2ef3f07d2cc552c | |
parent | ca169ec71505c1d43a1d4ac793d6a0626667c320 (diff) | |
download | efl-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.c | 10 |
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); } |