From a030859f67493ff853a09e5806c7bafe7067fe21 Mon Sep 17 00:00:00 2001 From: WooHyun Jung Date: Mon, 18 May 2020 12:39:59 +0900 Subject: [PATCH] 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 --- src/lib/elementary/efl_ui_image.c | 10 ++++++---- 1 file 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); }