forked from enlightenment/efl
ui.box, ui.table: respect parent hint size min
Summary: This patch fixes issue that parent hint size min is ignored when it is greater than children hint size min sum. Thanks to segfaultxavi for reporting this. Test Plan: 1. make check 2. 'hello-gui' or 'texteditor' example in examples.git Reviewers: segfaultxavi, zmike Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8098
This commit is contained in:
parent
40bc81ae2b
commit
e013480e7a
|
@ -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]));
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -28,6 +28,7 @@ struct _Efl_Ui_Container_Layout_Calc
|
|||
{
|
||||
int pos;
|
||||
int size;
|
||||
int min;
|
||||
int margin[2];
|
||||
double align;
|
||||
double scale;
|
||||
|
|
|
@ -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]));
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue