loop bryce autosize recalc when gadget site has not yet calculated its size
fixes moving of autosizing bryces
This commit is contained in:
parent
fb94f1e069
commit
41f5a3e1fd
|
@ -218,20 +218,31 @@ _bryce_autosize(Bryce *b)
|
|||
}
|
||||
else
|
||||
evas_object_geometry_get(b->parent, NULL, NULL, &maxw, &maxh);
|
||||
if (b->size_changed)
|
||||
do
|
||||
{
|
||||
evas_object_geometry_get(b->bryce, NULL, NULL, &w, &h);
|
||||
elm_object_content_unset(b->scroller);
|
||||
if (b->orient == E_GADGET_SITE_ORIENT_HORIZONTAL)
|
||||
evas_object_resize(b->bryce, w * b->size * e_scale / h, b->size * e_scale);
|
||||
else if (b->orient == E_GADGET_SITE_ORIENT_VERTICAL)
|
||||
evas_object_resize(b->bryce, b->size * e_scale, h * b->size * e_scale / w);
|
||||
evas_object_smart_need_recalculate_set(b->site, 1);
|
||||
evas_object_size_hint_min_set(b->site, -1, -1);
|
||||
evas_object_smart_calculate(b->site);
|
||||
elm_object_content_set(b->scroller, b->site);
|
||||
if (b->size_changed)
|
||||
{
|
||||
evas_object_geometry_get(b->bryce, NULL, NULL, &w, &h);
|
||||
elm_object_content_unset(b->scroller);
|
||||
if (b->orient == E_GADGET_SITE_ORIENT_HORIZONTAL)
|
||||
{
|
||||
evas_object_resize(b->bryce, w * b->size * e_scale / h, b->size * e_scale);
|
||||
evas_object_resize(b->site, w * b->size * e_scale / h, b->size * e_scale);
|
||||
}
|
||||
else if (b->orient == E_GADGET_SITE_ORIENT_VERTICAL)
|
||||
{
|
||||
evas_object_resize(b->bryce, b->size * e_scale, h * b->size * e_scale / w);
|
||||
evas_object_resize(b->site, b->size * e_scale, h * b->size * e_scale / w);
|
||||
}
|
||||
evas_object_smart_need_recalculate_set(b->site, 1);
|
||||
evas_object_size_hint_min_set(b->site, -1, -1);
|
||||
evas_object_smart_calculate(b->site);
|
||||
elm_object_content_set(b->scroller, b->site);
|
||||
}
|
||||
evas_object_size_hint_min_get(b->site, &sw, &sh);
|
||||
if ((!sw) && (!sh)) b->size_changed = 1;
|
||||
}
|
||||
evas_object_size_hint_min_get(b->site, &sw, &sh);
|
||||
while ((!sw) && (!sh));
|
||||
edje_object_size_min_calc(elm_layout_edje_get(b->layout), &lw, &lh);
|
||||
_bryce_position(b, lw + sw, lh + sh, &x, &y);
|
||||
if (b->orient == E_GADGET_SITE_ORIENT_HORIZONTAL)
|
||||
|
|
Loading…
Reference in New Issue