From: Jae Hwan Kim <jae.hwan.kim@samsung.com>
Subject: [E-devel] [Patch] els_scroller - elm_smart_scroller_child_region_show I have some issue in scroller. Sometimes the scroller move to wrong region when the child get first focus. It use "scroller -> layout -> button". So I checked the code and found a suspected thing in elm_smart_scroller_child_region_show. Please refer following pictures. In the pictures, the rect which be written "x, y, w, h" is the area which be made with the parameters of "elm_smart_scroller_child_region_show". The rect which be written "Pan" is the pan area of the scroller. If the situation is 1) or 2) and the function is called, the result have to be 7). In case of 3) or 4), it have to be 8). In case of 5) or 6), it have to remain as it is. Is it right?? But if the situation is 6) and the function is called, the result will be 7) in current code. I think it is wrong. I attached patch code. please find it below the pictures. 1) --------------- | | | x, y, w, h | | | --------------- --------------------- | | | | | | | Pan | | | | | | | --------------------- 2) --------------- | | | x, y, w, h | --------------------- | | | | | --------------- | | | | Pan | | | | | | | --------------------- 3) --------------------- | | | | | | | Pan | | | | --------------- | | | | | --------------------- | x, y, w, h | | | --------------- 4) --------------------- | | | | | | | Pan | | | | | | | --------------------- --------------- | | | x, y, w, h | | | --------------- 5) --------------------- | | | --------------- | | | | | | | x, y, w, h | | | | | | | --------------- | | Pan | --------------------- 6) --------------- | | --------------------- <---Pan | | | | | | x, y, w, h | | | | | | --------------------- | | --------------- 7) --------------------- | | | | | | x, y, w, h | | | | | | | --------------- | | | | Pan | | | --------------------- 8) --------------------- | | | Pan | | | | --------------- | | | | | | | x, y, w, h | | | | | | --------------------- SVN revision: 56579
This commit is contained in:
parent
4c33d6b63e
commit
1bfd549a08
|
@ -1213,19 +1213,11 @@ elm_smart_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y,
|
|||
sd->pan_func.get(sd->pan_obj, &px, &py);
|
||||
|
||||
nx = px;
|
||||
if (x < px) nx = x;
|
||||
else if ((x + w) > (px + (cw - mx)))
|
||||
{
|
||||
nx = x + w - (cw - mx);
|
||||
if (nx > x) nx = x;
|
||||
}
|
||||
if ((x < px) && ((x + w) < (px + (cw - mx)))) nx = x;
|
||||
else if ((x > px) && ((x + w) > (px + (cw - mx)))) nx = x + w - (cw - mx);
|
||||
ny = py;
|
||||
if (y < py) ny = y;
|
||||
else if ((y + h) > (py + (ch - my)))
|
||||
{
|
||||
ny = y + h - (ch - my);
|
||||
if (ny > y) ny = y;
|
||||
}
|
||||
if ((y < py) && ((y + h) < (py + (ch - my)))) ny = y;
|
||||
else if ((y > py) && ((y + h) > (py + (ch - my)))) ny = y + h - (ch - my);
|
||||
if ((nx == px) && (ny == py)) return;
|
||||
if ((sd->down.bounce_x_animator) || (sd->down.bounce_y_animator) ||
|
||||
(sd->scrollto.x.animator) || (sd->scrollto.y.animator))
|
||||
|
|
Loading…
Reference in New Issue