forked from enlightenment/efl
Fix item alignment in Gengrid.
When the item was bigger than the grid it was not being correctly positioned. SVN revision: 54906
This commit is contained in:
parent
b1846a536c
commit
8fb7daa582
|
@ -1022,8 +1022,6 @@ _item_place(Elm_Gengrid_Item *item, Evas_Coord cx, Evas_Coord cy)
|
||||||
item->x = cx;
|
item->x = cx;
|
||||||
item->y = cy;
|
item->y = cy;
|
||||||
evas_object_geometry_get(item->wd->pan_smart, &ox, &oy, &vw, &vh);
|
evas_object_geometry_get(item->wd->pan_smart, &ox, &oy, &vw, &vh);
|
||||||
evas_output_viewport_get(evas_object_evas_get(item->wd->self),
|
|
||||||
&cvx, &cvy, &cvw, &cvh);
|
|
||||||
|
|
||||||
/* Preload rows/columns at each side of the Gengrid */
|
/* Preload rows/columns at each side of the Gengrid */
|
||||||
cvx = ox - PRELOAD * item->wd->item_width;
|
cvx = ox - PRELOAD * item->wd->item_width;
|
||||||
|
@ -1047,11 +1045,9 @@ _item_place(Elm_Gengrid_Item *item, Evas_Coord cx, Evas_Coord cy)
|
||||||
if (item->wd->count % items_visible)
|
if (item->wd->count % items_visible)
|
||||||
columns++;
|
columns++;
|
||||||
|
|
||||||
if (item->wd->minw < vw)
|
tcw = item->wd->item_width * columns;
|
||||||
{
|
alignw = (vw - tcw) * item->wd->align_x;
|
||||||
tcw = item->wd->item_width * columns;
|
|
||||||
alignw = (vw - tcw) * item->wd->align_x;
|
|
||||||
}
|
|
||||||
items_row = items_visible;
|
items_row = items_visible;
|
||||||
if (items_row > item->wd->count)
|
if (items_row > item->wd->count)
|
||||||
items_row = item->wd->count;
|
items_row = item->wd->count;
|
||||||
|
@ -1071,11 +1067,9 @@ _item_place(Elm_Gengrid_Item *item, Evas_Coord cx, Evas_Coord cy)
|
||||||
if (item->wd->count % items_visible)
|
if (item->wd->count % items_visible)
|
||||||
rows++;
|
rows++;
|
||||||
|
|
||||||
if (item->wd->minh < vh)
|
tch = item->wd->item_height * rows;
|
||||||
{
|
alignh = (vh - tch) * item->wd->align_y;
|
||||||
tch = item->wd->item_height * rows;
|
|
||||||
alignh = (vh - tch) * item->wd->align_y;
|
|
||||||
}
|
|
||||||
items_col = items_visible;
|
items_col = items_visible;
|
||||||
if (items_col > item->wd->count)
|
if (items_col > item->wd->count)
|
||||||
items_col = item->wd->count;
|
items_col = item->wd->count;
|
||||||
|
@ -1289,6 +1283,20 @@ _pan_max_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y)
|
||||||
*y = (oh < sd->wd->minh) ? sd->wd->minh - oh : 0;
|
*y = (oh < sd->wd->minh) ? sd->wd->minh - oh : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_pan_min_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y)
|
||||||
|
{
|
||||||
|
Pan *sd = evas_object_smart_data_get(obj);
|
||||||
|
Evas_Coord mx, my;
|
||||||
|
|
||||||
|
if (!sd) return;
|
||||||
|
_pan_max_get(obj, &mx, &my);
|
||||||
|
if (x)
|
||||||
|
*x = -mx * sd->wd->align_x;
|
||||||
|
if (y)
|
||||||
|
*y = -my * sd->wd->align_y;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_pan_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
_pan_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
||||||
{
|
{
|
||||||
|
@ -1469,8 +1477,8 @@ elm_gengrid_add(Evas_Object *parent)
|
||||||
}
|
}
|
||||||
|
|
||||||
elm_smart_scroller_extern_pan_set(wd->scr, wd->pan_smart,
|
elm_smart_scroller_extern_pan_set(wd->scr, wd->pan_smart,
|
||||||
_pan_set, _pan_get,
|
_pan_set, _pan_get, _pan_max_get,
|
||||||
_pan_max_get, _pan_child_size_get);
|
_pan_min_get, _pan_child_size_get);
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue