diff --git a/src/lib/elementary/efl_ui_box_layout.c b/src/lib/elementary/efl_ui_box_layout.c index bc9ea63c86..c66a1a8c2e 100644 --- a/src/lib/elementary/efl_ui_box_layout.c +++ b/src/lib/elementary/efl_ui_box_layout.c @@ -199,5 +199,8 @@ _efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Evas_Object_Box_Data *bd) want[1] += (box_calc[1].margin[0] + box_calc[1].margin[1]) + (box_calc[1].pad * (count - 1)); + if (want[0] < box_calc[0].min) want[0] = box_calc[0].min; + if (want[1] < box_calc[1].min) want[1] = box_calc[1].min; + efl_gfx_hint_size_min_set(ui_box, EINA_SIZE2D(want[0], want[1])); } diff --git a/src/lib/elementary/efl_ui_container_layout.c b/src/lib/elementary/efl_ui_container_layout.c index e8c5979dd0..4fbdc07b91 100644 --- a/src/lib/elementary/efl_ui_container_layout.c +++ b/src/lib/elementary/efl_ui_container_layout.c @@ -112,10 +112,14 @@ _efl_ui_container_layout_init(Eo* obj, Efl_Ui_Container_Layout_Calc *calc) { Eina_Rect geom; Eina_Bool pad_scalable; + Eina_Size2D min; geom = efl_gfx_entity_geometry_get(obj); efl_gfx_hint_margin_get(obj, &calc[0].margin[0], &calc[0].margin[1], &calc[1].margin[0], &calc[1].margin[1]); + min = efl_gfx_hint_size_combined_min_get(obj); + calc[0].min = min.w; + calc[1].min = min.h; calc[0].scale = calc[1].scale = efl_gfx_entity_scale_get(obj); efl_pack_padding_get(obj, &calc[0].pad, &calc[1].pad, &pad_scalable); diff --git a/src/lib/elementary/efl_ui_container_layout.h b/src/lib/elementary/efl_ui_container_layout.h index 097abee13b..85d3695e9d 100644 --- a/src/lib/elementary/efl_ui_container_layout.h +++ b/src/lib/elementary/efl_ui_container_layout.h @@ -28,6 +28,7 @@ struct _Efl_Ui_Container_Layout_Calc { int pos; int size; + int min; int margin[2]; double align; double scale; diff --git a/src/lib/elementary/efl_ui_table_layout.c b/src/lib/elementary/efl_ui_table_layout.c index b3009e9f7c..f017b33b9d 100644 --- a/src/lib/elementary/efl_ui_table_layout.c +++ b/src/lib/elementary/efl_ui_table_layout.c @@ -368,6 +368,11 @@ _efl_ui_table_custom_layout(Efl_Ui_Table *ui_table, Efl_Ui_Table_Data *pd) + (table_calc.layout_calc[1].pad * table_calc.cell_calc[1][rows - 1].index); + if (table_calc.want[0] < table_calc.layout_calc[0].min) + table_calc.want[0] = table_calc.layout_calc[0].min; + if (table_calc.want[1] < table_calc.layout_calc[1].min) + table_calc.want[1] = table_calc.layout_calc[1].min; + efl_gfx_hint_size_min_set(ui_table, EINA_SIZE2D(table_calc.want[0], table_calc.want[1])); } diff --git a/src/tests/elementary/efl_ui_test_box.c b/src/tests/elementary/efl_ui_test_box.c index af4eab0874..ee6532226c 100644 --- a/src/tests/elementary/efl_ui_test_box.c +++ b/src/tests/elementary/efl_ui_test_box.c @@ -187,6 +187,7 @@ static void btn_hint_set(Eo *btn, Hint *hint) { efl_gfx_entity_size_set(layout, hint->layout_size); + efl_gfx_hint_size_min_set(layout, hint->layout_size); efl_gfx_hint_size_max_set(btn, hint->max); efl_gfx_hint_size_min_set(btn, hint->min); efl_gfx_hint_weight_set(btn, hint->weightx, hint->weighty); diff --git a/src/tests/elementary/efl_ui_test_table.c b/src/tests/elementary/efl_ui_test_table.c index 467208e651..66443efa6b 100644 --- a/src/tests/elementary/efl_ui_test_table.c +++ b/src/tests/elementary/efl_ui_test_table.c @@ -212,6 +212,7 @@ static void btn_hint_set(Eo *btn, Hint *hint) { efl_gfx_entity_size_set(layout, hint->layout_size); + efl_gfx_hint_size_min_set(layout, hint->layout_size); efl_gfx_hint_size_max_set(btn, hint->max); efl_gfx_hint_size_min_set(btn, hint->min); efl_gfx_hint_margin_set(btn, hint->marginl, hint->marginr,