elm_bg: restore legacy bg sizing_eval to keep backward compatibility
authorYeongjong Lee <yj34.lee@samsung.com>
Wed, 27 May 2020 06:17:45 +0000 (15:17 +0900)
committerJongmin Lee <jm105.lee@samsung.com>
Mon, 1 Jun 2020 04:46:00 +0000 (13:46 +0900)
In tizen 4.0, elm_bg size is always (0, 0). only internal image object had size
as file image size.

To keep legacy size policy, elm_bg override `elm_layout_sizing_eval` to
resize internal image and `efl_canvas_group_calculate` to prevent resize elm_bg.

Note that if you don't set any size to elm_bg, elm_bg size is (0, 0) by default
even though its child have size.

@tizen_fix

Change-Id: I54677a1024078ba1f157b8fd495e00dce713cce6

src/lib/elementary/efl_ui_bg.c
src/lib/elementary/efl_ui_bg_legacy_eo.c

index 225cb85..dce755e 100644 (file)
@@ -344,4 +344,28 @@ elm_bg_add(Evas_Object *parent)
    return elm_legacy_add(EFL_UI_BG_LEGACY_CLASS, parent);
 }
 
+//TIZEN_ONLY(20200527): restore legacy bg sizing_eval to keep backward compatibility
+void
+_efl_ui_bg_legacy_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED)
+{
+   //Do nothing to keep backward compatibility
+}
+
+void
+_efl_ui_bg_legacy_elm_layout_sizing_eval(Eo *obj, void *_pd EINA_UNUSED)
+{
+   EFL_UI_BG_DATA_GET_OR_RETURN(obj, sd);
+   const char *p;
+
+   if ((!sd->img) || (!sd->file)) return;
+   if (((p = strrchr(sd->file, '.'))) && (!strcasecmp(p, ".edj"))) return;
+
+   Evas_Coord iw = 0, ih = 0;
+   elm_image_object_size_get(sd->img, &iw, &ih);
+   evas_object_size_hint_min_set(sd->img, iw, ih);
+   evas_object_size_hint_max_set(sd->img, iw, ih);
+   evas_object_resize(sd->img, iw, ih);
+}
+//
+
 #include "efl_ui_bg_legacy_eo.c"
index ea7bffc..61762fd 100644 (file)
@@ -1,6 +1,11 @@
 
 Efl_Object *_efl_ui_bg_legacy_efl_object_constructor(Eo *obj, void *pd);
 
+//TIZEN_ONLY(20200527): restore legacy bg sizing_eval to keep backward compatibility
+void _efl_ui_bg_legacy_efl_canvas_group_group_calculate(Eo *obj, void *pd);
+
+void _efl_ui_bg_legacy_elm_layout_sizing_eval(Eo *obj, void *pd);
+//
 
 static Eina_Bool
 _efl_ui_bg_legacy_class_initializer(Efl_Class *klass)
@@ -15,6 +20,10 @@ _efl_ui_bg_legacy_class_initializer(Efl_Class *klass)
 
    EFL_OPS_DEFINE(ops,
       EFL_OBJECT_OP_FUNC(efl_constructor, _efl_ui_bg_legacy_efl_object_constructor),
+//TIZEN_ONLY(20200527): restore legacy bg sizing_eval to keep backward compatibility
+      EFL_OBJECT_OP_FUNC(efl_canvas_group_calculate, _efl_ui_bg_legacy_efl_canvas_group_group_calculate),
+      EFL_OBJECT_OP_FUNC(elm_layout_sizing_eval, _efl_ui_bg_legacy_elm_layout_sizing_eval),
+//
       EFL_UI_BG_LEGACY_EXTRA_OPS
    );
    opsp = &ops;