forked from enlightenment/efl
entry: wrong viewport value calculation issue fix
Summary: Issue: As entire scroller edje co-ordinates was being taken instead of the actual viewport value, if in scroller edje more parts are added apart from just "elm.swallow.content", then the viewport value set will be wrong. hence the selection handlers will not hide when they have to hide. solution: Instead of taking scroller edje's geometry, get the actual viewport values. To get viewport x,y a new scrollable interface is also added. signed-off by: Shilpa Singh <shilpa.singh@samsung.com> @fix Test Plan: Selection handlers have to hide correctly when the text is scrolled in a scrolled entry, if the scroller edc of entry has more parts added other than elm.swallow.content, then when we scroll the selection handlers are not hidden correctly. Reviewers: jaehwan, woohyun, seoz, Hermet, raster CC: govi, rajeshps, thiepha Differential Revision: https://phab.enlightenment.org/D674
This commit is contained in:
parent
200ec7840e
commit
9d55fab418
|
@ -292,7 +292,8 @@ _resize_cb(void *data EINA_UNUSED,
|
|||
if ((sd->minw == -1) && (sd->minh == -1))
|
||||
elm_coords_finger_size_adjust(6, &sd->minw, 1, &sd->minh);
|
||||
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
if (sd->items)
|
||||
{
|
||||
Elm_Diskselector_Item *it = sd->items->data;
|
||||
|
@ -1000,7 +1001,8 @@ _scroll_cb(Evas_Object *obj,
|
|||
_string_check(obj);
|
||||
eo_do(obj,
|
||||
elm_interface_scrollable_content_pos_get(&x, &y),
|
||||
elm_interface_scrollable_content_viewport_size_get(&w, &h));
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, &h));
|
||||
if (sd->round)
|
||||
{
|
||||
evas_object_geometry_get(sd->main_box, NULL, NULL, &bw, NULL);
|
||||
|
|
|
@ -394,7 +394,8 @@ _viewport_region_get(Evas_Object *obj)
|
|||
Evas_Object *parent;
|
||||
|
||||
if (sd->scroll)
|
||||
evas_object_geometry_get(sd->scr_edje, &rect->x, &rect->y, &rect->w, &rect->h);
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(&rect->x, &rect->y, &rect->w, &rect->h));
|
||||
else
|
||||
evas_object_geometry_get(sd->entry_edje, &rect->x, &rect->y, &rect->w, &rect->h);
|
||||
|
||||
|
@ -893,7 +894,8 @@ _elm_entry_elm_layout_sizing_eval(Eo *obj, Elm_Entry_Data *sd)
|
|||
{
|
||||
Evas_Coord vw = 0, vh = 0, w = 0, h = 0;
|
||||
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
|
||||
w = sd->ent_mw;
|
||||
h = sd->ent_mh;
|
||||
|
@ -916,7 +918,8 @@ _elm_entry_elm_layout_sizing_eval(Eo *obj, Elm_Entry_Data *sd)
|
|||
|
||||
evas_object_resize(sd->scr_edje, resw, resh);
|
||||
edje_object_size_min_calc(sd->scr_edje, &vmw, &vmh);
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
edje_object_size_min_restricted_calc
|
||||
(sd->entry_edje, &minw, &minh, vw, 0);
|
||||
elm_coords_finger_size_adjust(1, &minw, 1, &minh);
|
||||
|
@ -974,7 +977,8 @@ _elm_entry_elm_layout_sizing_eval(Eo *obj, Elm_Entry_Data *sd)
|
|||
sd->ent_mh = minh;
|
||||
elm_coords_finger_size_adjust(1, &minw, 1, &minh);
|
||||
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
|
||||
if (minw > vw) vw = minw;
|
||||
if (minh > vh) vh = minh;
|
||||
|
@ -3035,7 +3039,8 @@ _elm_entry_resize_internal(Evas_Object *obj)
|
|||
{
|
||||
Evas_Coord vw = 0, vh = 0;
|
||||
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
if (vw < sd->ent_mw) vw = sd->ent_mw;
|
||||
if (vh < sd->ent_mh) vh = sd->ent_mh;
|
||||
evas_object_resize(sd->entry_edje, vw, vh);
|
||||
|
|
|
@ -155,10 +155,12 @@ _item_show_region(void *data)
|
|||
switch (sd->scroll_to_type)
|
||||
{
|
||||
case ELM_GENGRID_ITEM_SCROLLTO_TOP:
|
||||
eo_do(WIDGET(it), elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(WIDGET(it), elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
break;
|
||||
case ELM_GENGRID_ITEM_SCROLLTO_MIDDLE:
|
||||
eo_do(WIDGET(it), elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(WIDGET(it), elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
it_xpos = it_xpos - ((vw - sd->item_width) / 2);
|
||||
it_ypos = it_ypos - ((vh - sd->item_height) / 2);
|
||||
break;
|
||||
|
@ -1921,7 +1923,8 @@ _key_action_move(Evas_Object *obj, const char *params)
|
|||
elm_interface_scrollable_content_pos_get(&x, &y),
|
||||
elm_interface_scrollable_step_size_get(&step_x, &step_y),
|
||||
elm_interface_scrollable_page_size_get(&page_x, &page_y),
|
||||
elm_interface_scrollable_content_viewport_size_get(&v_w, &v_h));
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &v_w, &v_h));
|
||||
|
||||
if (!strcmp(dir, "left"))
|
||||
{
|
||||
|
|
|
@ -403,8 +403,8 @@ _calc_job(void *data)
|
|||
|
||||
evas_object_geometry_get(sd->pan_obj, NULL, NULL, &ow, &sd->h);
|
||||
if (sd->mode == ELM_LIST_COMPRESS)
|
||||
eo_do(sd->obj, elm_interface_scrollable_content_viewport_size_get
|
||||
(&vw, NULL));
|
||||
eo_do(sd->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, NULL));
|
||||
|
||||
if (sd->w != ow) sd->w = ow;
|
||||
|
||||
|
@ -564,7 +564,8 @@ _elm_genlist_elm_layout_sizing_eval(Eo *obj, Elm_Genlist_Data *sd)
|
|||
{
|
||||
Evas_Coord vw = 0, vh = 0;
|
||||
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
if ((vw != 0) && (vw != sd->prev_viewport_w))
|
||||
{
|
||||
Item_Block *itb;
|
||||
|
@ -2248,7 +2249,8 @@ _elm_genlist_pan_evas_smart_calculate(Eo *obj EINA_UNUSED, Elm_Genlist_Pan_Data
|
|||
|
||||
eo_do((sd)->obj,
|
||||
elm_interface_scrollable_content_pos_get(&vx, &vy),
|
||||
elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
|
||||
if (sd->reorder_fast == 1)
|
||||
eo_do((sd)->obj, elm_interface_scrollable_content_region_show(vx, vy - 10, vw, vh));
|
||||
|
@ -2595,7 +2597,8 @@ _key_action_move(Evas_Object *obj, const char *params)
|
|||
elm_interface_scrollable_content_pos_get(&x, &y),
|
||||
elm_interface_scrollable_step_size_get(&step_x, &step_y),
|
||||
elm_interface_scrollable_page_size_get(&page_x, &page_y),
|
||||
elm_interface_scrollable_content_viewport_size_get(&v_w, &v_h));
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &v_w, &v_h));
|
||||
|
||||
if (!strcmp(dir, "left"))
|
||||
{
|
||||
|
|
|
@ -1138,12 +1138,17 @@ _elm_interface_scrollable_content_size_get(Eo *obj EINA_UNUSED, Elm_Scrollable_S
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_elm_interface_scrollable_content_viewport_size_get(Eo *obj EINA_UNUSED, Elm_Scrollable_Smart_Interface_Data *sid, Evas_Coord *w, Evas_Coord *h)
|
||||
_elm_interface_scrollable_content_viewport_geometry_get(Eo *obj EINA_UNUSED,
|
||||
Elm_Scrollable_Smart_Interface_Data *sid,
|
||||
Evas_Coord *x,
|
||||
Evas_Coord *y,
|
||||
Evas_Coord *w,
|
||||
Evas_Coord *h)
|
||||
{
|
||||
if (!sid->pan_obj || !sid->edje_obj) return;
|
||||
|
||||
edje_object_calc_force(sid->edje_obj);
|
||||
evas_object_geometry_get(sid->pan_obj, NULL, NULL, w, h);
|
||||
evas_object_geometry_get(sid->pan_obj, x, y, w, h);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
|
@ -1173,7 +1178,8 @@ _elm_scroll_x_mirrored_get(const Evas_Object *obj,
|
|||
|
||||
if (!sid->pan_obj) return 0;
|
||||
|
||||
eo_do((Eo *)obj, elm_interface_scrollable_content_viewport_size_get(&w, NULL));
|
||||
eo_do((Eo *)obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, NULL));
|
||||
eo_do(sid->pan_obj, elm_obj_pan_content_size_get(&cw, &ch));
|
||||
ret = (cw - (x + w));
|
||||
|
||||
|
@ -1195,8 +1201,8 @@ _elm_scroll_wanted_coordinates_update(Elm_Scrollable_Smart_Interface_Data *sid,
|
|||
|
||||
/* Update wx/y/w/h - and if the requested positions aren't legal
|
||||
* adjust a bit. */
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_size_get
|
||||
(&sid->ww, &sid->wh));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &sid->ww, &sid->wh));
|
||||
if (x < 0)
|
||||
sid->wx = 0;
|
||||
else if ((x + sid->ww) > cw)
|
||||
|
@ -1248,8 +1254,8 @@ _elm_scroll_bounce_x_animator(void *data)
|
|||
{
|
||||
dt = dt / _elm_config->thumbscroll_bounce_friction;
|
||||
odx = sid->down.b2x - sid->down.bx;
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_size_get
|
||||
(&w, NULL));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, NULL));
|
||||
if (!sid->down.momentum_animator && (w > abs(odx)))
|
||||
{
|
||||
pd = (double)odx / (double)w;
|
||||
|
@ -1304,8 +1310,8 @@ _elm_scroll_bounce_y_animator(void *data)
|
|||
{
|
||||
dt = dt / _elm_config->thumbscroll_bounce_friction;
|
||||
ody = sid->down.b2y - sid->down.by;
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_size_get
|
||||
(NULL, &h));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, NULL, &h));
|
||||
if (!sid->down.momentum_animator && (h > abs(ody)))
|
||||
{
|
||||
pd = (double)ody / (double)h;
|
||||
|
@ -1723,7 +1729,8 @@ EOLIAN static void
|
|||
_elm_interface_scrollable_content_region_get(Eo *obj, Elm_Scrollable_Smart_Interface_Data *_pd EINA_UNUSED, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
|
||||
{
|
||||
eo_do(obj, elm_interface_scrollable_content_pos_get(x, y));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(w, h));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, w, h));
|
||||
}
|
||||
|
||||
/* Set should be used for calculated positions, for example, when we move
|
||||
|
@ -1784,8 +1791,8 @@ _elm_scroll_wanted_region_set(Evas_Object *obj)
|
|||
|
||||
if (sid->ww == -1)
|
||||
{
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get
|
||||
(&ww, &wh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &ww, &wh));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1846,7 +1853,8 @@ _elm_scroll_wheel_event_cb(void *data,
|
|||
if (sid->content_info.resized)
|
||||
_elm_scroll_wanted_region_set(sid->obj);
|
||||
}
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
if (sid->pan_obj)
|
||||
eo_do(sid->pan_obj, elm_obj_pan_content_size_get(&cw, &ch));
|
||||
if (!_paging_is_enabled(sid))
|
||||
|
@ -2020,7 +2028,8 @@ _elm_scroll_page_x_get(Elm_Scrollable_Smart_Interface_Data *sid,
|
|||
if (!sid->pan_obj) return 0;
|
||||
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_pos_get(&x, &y));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_size_get(&w, &h));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, &h));
|
||||
eo_do(sid->pan_obj, elm_obj_pan_content_size_get(&cw, &ch));
|
||||
eo_do(sid->pan_obj, elm_obj_pan_pos_min_get(&minx, NULL));
|
||||
|
||||
|
@ -2060,7 +2069,8 @@ _elm_scroll_page_y_get(Elm_Scrollable_Smart_Interface_Data *sid,
|
|||
if (!sid->pan_obj) return 0;
|
||||
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_pos_get(&x, &y));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_size_get(&w, &h));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, &h));
|
||||
eo_do(sid->pan_obj, elm_obj_pan_content_size_get(&cw, &ch));
|
||||
eo_do(sid->pan_obj, elm_obj_pan_pos_min_get(NULL, &miny));
|
||||
|
||||
|
@ -2180,8 +2190,8 @@ _elm_scroll_scroll_to_y(Elm_Scrollable_Smart_Interface_Data *sid,
|
|||
if (t_in <= 0.0)
|
||||
{
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_pos_get(&x, &y));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_size_get
|
||||
(&w, &h));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, &h));
|
||||
y = pos_y;
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_region_set(x, y, w, h));
|
||||
return;
|
||||
|
@ -2223,8 +2233,8 @@ _elm_scroll_scroll_to_x(Elm_Scrollable_Smart_Interface_Data *sid,
|
|||
if (t_in <= 0.0)
|
||||
{
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_pos_get(&x, &y));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_size_get
|
||||
(&w, &h));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, &h));
|
||||
x = pos_x;
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_region_set
|
||||
(x, y, w, h));
|
||||
|
@ -3306,7 +3316,8 @@ _elm_scroll_page_adjust(Elm_Scrollable_Smart_Interface_Data *sid)
|
|||
|
||||
if (!_paging_is_enabled(sid)) return;
|
||||
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_size_get(&w, &h));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, &h));
|
||||
|
||||
x = _elm_scroll_page_x_get(sid, 0, EINA_TRUE);
|
||||
y = _elm_scroll_page_y_get(sid, 0, EINA_TRUE);
|
||||
|
@ -3615,8 +3626,8 @@ _elm_scroll_pan_resized_cb(void *data,
|
|||
|
||||
if (sid->cb_func.content_viewport_resize)
|
||||
{
|
||||
eo_do(sid->obj,
|
||||
elm_interface_scrollable_content_viewport_size_get(&w, &h));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, &h));
|
||||
sid->cb_func.content_viewport_resize(sid->obj, w, h);
|
||||
}
|
||||
}
|
||||
|
@ -4190,7 +4201,8 @@ _elm_interface_scrollable_page_show(Eo *obj, Elm_Scrollable_Smart_Interface_Data
|
|||
sid->current_page.x = _elm_scroll_page_x_get(sid, 0, EINA_FALSE);
|
||||
sid->current_page.y = _elm_scroll_page_y_get(sid, 0, EINA_FALSE);
|
||||
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_size_get(&w, &h));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, &h));
|
||||
if (pagenumber_h >= 0) x = sid->pagesize_h * pagenumber_h;
|
||||
if (pagenumber_v >= 0) y = sid->pagesize_v * pagenumber_v;
|
||||
|
||||
|
@ -4219,7 +4231,8 @@ _elm_interface_scrollable_page_bring_in(Eo *obj, Elm_Scrollable_Smart_Interface_
|
|||
sid->current_page.x = _elm_scroll_page_x_get(sid, 0, EINA_FALSE);
|
||||
sid->current_page.y = _elm_scroll_page_y_get(sid, 0, EINA_FALSE);
|
||||
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_size_get(&w, &h));
|
||||
eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, &h));
|
||||
if (pagenumber_h >= 0) x = sid->pagesize_h * pagenumber_h;
|
||||
if (pagenumber_v >= 0) y = sid->pagesize_v * pagenumber_v;
|
||||
if (_elm_scroll_content_region_show_internal(obj, &x, &y, w, h))
|
||||
|
|
|
@ -434,11 +434,13 @@ mixin Elm_Interface_Scrollable(Evas_Scrollable_Interface, Evas_Smart)
|
|||
int pagenumber_v;
|
||||
}
|
||||
}
|
||||
content_viewport_size {
|
||||
content_viewport_geometry {
|
||||
get {
|
||||
/*@ No description supplied by the EAPI. */
|
||||
}
|
||||
values {
|
||||
Evas_Coord x;
|
||||
Evas_Coord y;
|
||||
Evas_Coord w;
|
||||
Evas_Coord h;
|
||||
}
|
||||
|
|
|
@ -184,7 +184,7 @@ enum
|
|||
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_SET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_GET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_SIZE_GET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_VIEWPORT_SIZE_GET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_VIEWPORT_GEOMETRY_GET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_MIN_LIMIT,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_STEP_SIZE_SET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_STEP_SIZE_GET,
|
||||
|
@ -575,16 +575,18 @@ enum
|
|||
#define elm_scrollable_interface_content_size_get(w, h) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_SIZE_GET), EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h)
|
||||
|
||||
/**
|
||||
* @def elm_scrollable_interface_content_viewport_size_get
|
||||
* @since 1.8
|
||||
* @def elm_scrollable_interface_content_viewport_geometry_get
|
||||
* @since 1.10
|
||||
*
|
||||
* No description supplied by the EAPI.
|
||||
*
|
||||
* @param[out] x
|
||||
* @param[out] y
|
||||
* @param[out] w
|
||||
* @param[out] h
|
||||
*
|
||||
*/
|
||||
#define elm_scrollable_interface_content_viewport_size_get(w, h) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_VIEWPORT_SIZE_GET), EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h)
|
||||
#define elm_scrollable_interface_content_viewport_geometry_get(x, y) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_VIEWPORT_GEOMETRY_GET), EO_TYPECHECK(Evas_Coord *, x), EO_TYPECHECK(Evas_Coord *, y), EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h)
|
||||
|
||||
/**
|
||||
* @def elm_scrollable_interface_content_min_limit
|
||||
|
|
|
@ -342,13 +342,15 @@ _elm_list_elm_widget_event_direction(Evas_Object *obj, Elm_Focus_Direction dir,
|
|||
if ((dir == ELM_FOCUS_LEFT) || (dir == ELM_FOCUS_RIGHT))
|
||||
{
|
||||
eo_do(obj,
|
||||
elm_interface_scrollable_content_viewport_size_get(&v, NULL),
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &v, NULL),
|
||||
elm_interface_scrollable_content_size_get(&min, NULL));
|
||||
}
|
||||
else
|
||||
{
|
||||
eo_do(obj,
|
||||
elm_interface_scrollable_content_viewport_size_get(NULL, &v),
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, NULL, &v),
|
||||
elm_interface_scrollable_content_size_get(NULL, &min));
|
||||
}
|
||||
|
||||
|
@ -427,7 +429,8 @@ static Eina_Bool _key_action_move(Evas_Object *obj, const char *params)
|
|||
elm_interface_scrollable_content_pos_get(&x, &y),
|
||||
elm_interface_scrollable_step_size_get(&step_x, &step_y),
|
||||
elm_interface_scrollable_page_size_get(&page_x, &page_y),
|
||||
elm_interface_scrollable_content_viewport_size_get(&v_w, &v_h));
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &v_w, &v_h));
|
||||
|
||||
/* TODO: fix logic for horizontal mode */
|
||||
if (!strcmp(dir, "left"))
|
||||
|
@ -635,7 +638,8 @@ _elm_list_elm_layout_sizing_eval(Eo *obj, Elm_List_Data *sd)
|
|||
evas_object_size_hint_max_get(sd->box, &maxw, &maxh);
|
||||
evas_object_size_hint_weight_get(sd->box, &xw, &yw);
|
||||
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
if (xw > 0.0)
|
||||
{
|
||||
if ((minw > 0) && (vw < minw)) vw = minw;
|
||||
|
|
|
@ -493,7 +493,8 @@ _viewport_coord_get(Elm_Map_Data *sd,
|
|||
EINA_SAFETY_ON_NULL_RETURN(sd);
|
||||
|
||||
eo_do(sd->obj, elm_interface_scrollable_content_pos_get(&x, &y));
|
||||
eo_do(sd->obj, elm_interface_scrollable_content_viewport_size_get(&w, &h));
|
||||
eo_do(sd->obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &w, &h));
|
||||
|
||||
if (w > sd->size.w) x -= ((w - sd->size.w) / 2);
|
||||
if (h > sd->size.h) y -= ((h - sd->size.h) / 2);
|
||||
|
@ -3827,7 +3828,8 @@ _key_action_move(Evas_Object *obj, const char *params)
|
|||
elm_interface_scrollable_content_pos_get(&x, &y),
|
||||
elm_interface_scrollable_step_size_get(&step_x, &step_y),
|
||||
elm_interface_scrollable_page_size_get(&page_x, &page_y),
|
||||
elm_interface_scrollable_content_viewport_size_get(NULL, &vh));
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, NULL, &vh));
|
||||
|
||||
if (!strcmp(dir, "left"))
|
||||
{
|
||||
|
|
|
@ -707,7 +707,8 @@ _zoom_do(Evas_Object *obj,
|
|||
|
||||
sd->size.w = (sd->size.ow * (1.0 - t)) + (sd->size.nw * t);
|
||||
sd->size.h = (sd->size.oh * (1.0 - t)) + (sd->size.nh * t);
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&ow, &oh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &ow, &oh));
|
||||
xx = (sd->size.spos.x * sd->size.w) - (ow / 2);
|
||||
yy = (sd->size.spos.y * sd->size.h) - (oh / 2);
|
||||
if (xx < 0) xx = 0;
|
||||
|
@ -929,7 +930,8 @@ _key_action_move(Evas_Object *obj, const char *params)
|
|||
elm_interface_scrollable_content_pos_get(&x, &y),
|
||||
elm_interface_scrollable_step_size_get(&step_x, &step_y),
|
||||
elm_interface_scrollable_page_size_get(&page_x, &page_y),
|
||||
elm_interface_scrollable_content_viewport_size_get(NULL, &v_h));
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, NULL, &v_h));
|
||||
|
||||
if (!strcmp(dir, "left"))
|
||||
{
|
||||
|
@ -1079,7 +1081,8 @@ _g_layer_zoom_do(Evas_Object *obj,
|
|||
sd->size.ow = sd->size.w;
|
||||
sd->size.oh = sd->size.h;
|
||||
eo_do(obj, elm_interface_scrollable_content_pos_get(&rx, &ry));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&rw, &rh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &rw, &rh));
|
||||
if ((rw <= 0) || (rh <= 0)) return;
|
||||
|
||||
sd->size.nw = (double)sd->size.imw / sd->zoom;
|
||||
|
@ -1141,7 +1144,8 @@ _g_layer_zoom_start_cb(void *data,
|
|||
eo_do(obj, elm_interface_scrollable_freeze_set(EINA_TRUE));
|
||||
|
||||
elm_photocam_image_region_get(obj, &x, &y, &w, &h);
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&rw, &rh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &rw, &rh));
|
||||
|
||||
if (rw > sd->size.nw)
|
||||
marginx = (rw - sd->size.nw) / 2;
|
||||
|
@ -1178,7 +1182,8 @@ _g_layer_zoom_end_cb(void *data,
|
|||
ELM_PHOTOCAM_DATA_GET(obj, sd);
|
||||
Evas_Coord rw, rh;
|
||||
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&rw, &rh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &rw, &rh));
|
||||
sd->g_layer_start = 1.0;
|
||||
|
||||
if (sd->g_layer_zoom.imx || sd->g_layer_zoom.imy)
|
||||
|
@ -1604,7 +1609,8 @@ _elm_photocam_zoom_set(Eo *obj, Elm_Photocam_Data *sd, double zoom)
|
|||
sd->size.ow = sd->size.w;
|
||||
sd->size.oh = sd->size.h;
|
||||
eo_do(obj, elm_interface_scrollable_content_pos_get(&rx, &ry));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&rw, &rh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &rw, &rh));
|
||||
if ((rw <= 0) || (rh <= 0)) return;
|
||||
|
||||
if (sd->mode == ELM_PHOTOCAM_ZOOM_MODE_MANUAL)
|
||||
|
@ -1846,7 +1852,8 @@ _elm_photocam_image_region_get(Eo *obj, Elm_Photocam_Data *sd, int *x, int *y, i
|
|||
Evas_Coord sx, sy, sw, sh;
|
||||
|
||||
eo_do((Eo *)obj, elm_interface_scrollable_content_pos_get(&sx, &sy));
|
||||
eo_do((Eo *)obj, elm_interface_scrollable_content_viewport_size_get(&sw, &sh));
|
||||
eo_do((Eo *)obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &sw, &sh));
|
||||
if (sd->size.w > 0)
|
||||
{
|
||||
if (x)
|
||||
|
|
|
@ -82,7 +82,8 @@ _key_action_move(Evas_Object *obj, const char *params)
|
|||
elm_interface_scrollable_content_pos_get(&x, &y),
|
||||
elm_interface_scrollable_step_size_get(&step_x, &step_y),
|
||||
elm_interface_scrollable_page_size_get(&page_x, &page_y),
|
||||
elm_interface_scrollable_content_viewport_size_get(&v_w, &v_h));
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &v_w, &v_h));
|
||||
eo_do(sd->content,
|
||||
evas_obj_position_get(&c_x, &c_y),
|
||||
evas_obj_size_get(&max_x, &max_y));
|
||||
|
@ -243,7 +244,8 @@ _elm_scroller_elm_widget_activate(Eo *obj, Elm_Scroller_Data *_pd EINA_UNUSED, E
|
|||
eo_do(obj,
|
||||
elm_interface_scrollable_content_pos_get(&x, &y),
|
||||
elm_interface_scrollable_page_size_get(&page_x, &page_y),
|
||||
elm_interface_scrollable_content_viewport_size_get(&v_w, &v_h));
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &v_w, &v_h));
|
||||
|
||||
if (act == ELM_ACTIVATE_UP)
|
||||
{
|
||||
|
@ -295,7 +297,8 @@ _elm_scroller_elm_layout_sizing_eval(Eo *obj, Elm_Scroller_Data *sd)
|
|||
evas_object_size_hint_weight_get(sd->content, &xw, &yw);
|
||||
}
|
||||
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
if (xw > 0.0)
|
||||
{
|
||||
if ((minw > 0) && (vw < minw))
|
||||
|
|
|
@ -303,7 +303,8 @@ _elm_toolbar_item_coordinates_calc(Elm_Toolbar_Item *item,
|
|||
ELM_TOOLBAR_DATA_GET(WIDGET(item), sd);
|
||||
|
||||
eo_do(WIDGET(item),
|
||||
elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
evas_object_geometry_get(sd->bx, &bx, &by, NULL, NULL);
|
||||
evas_object_geometry_get(VIEW(item), &ix, &iy, &iw, &ih);
|
||||
|
||||
|
@ -356,7 +357,8 @@ _resize_job(void *data)
|
|||
ELM_TOOLBAR_DATA_GET(obj, sd);
|
||||
|
||||
sd->resize_job = NULL;
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
evas_object_size_hint_min_get(sd->bx, &mw, &mh);
|
||||
evas_object_geometry_get(sd->bx, NULL, NULL, &w, &h);
|
||||
|
||||
|
@ -1274,7 +1276,8 @@ _sizing_eval(Evas_Object *obj)
|
|||
evas_object_resize(wd->resize_obj, w, h);
|
||||
|
||||
evas_object_size_hint_min_get(sd->bx, &minw_bx, &minh_bx);
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_size_get(&vw, &vh));
|
||||
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
|
||||
(NULL, NULL, &vw, &vh));
|
||||
|
||||
if (sd->shrink_mode == ELM_TOOLBAR_SHRINK_NONE)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue