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:
Carsten Haitzler 2014-04-21 12:31:49 +09:00
parent 200ec7840e
commit 9d55fab418
12 changed files with 112 additions and 63 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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"))
{

View File

@ -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"))
{

View File

@ -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))

View File

@ -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;
}

View File

@ -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

View File

@ -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;

View File

@ -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"))
{

View File

@ -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)

View File

@ -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))

View File

@ -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)
{