entry: wrong viewport value calculation issue fix
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Mon, 21 Apr 2014 03:31:49 +0000 (12:31 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Mon, 21 Apr 2014 03:31:49 +0000 (12:31 +0900)
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

12 files changed:
src/lib/elm_diskselector.c
src/lib/elm_entry.c
src/lib/elm_gengrid.c
src/lib/elm_genlist.c
src/lib/elm_interface_scrollable.c
src/lib/elm_interface_scrollable.eo
src/lib/elm_interface_scrollable.h
src/lib/elm_list.c
src/lib/elm_map.c
src/lib/elm_photocam.c
src/lib/elm_scroller.c
src/lib/elm_toolbar.c

index fa3ed02..b91fa82 100644 (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);
index e662eac..2e21415 100644 (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);
index 3078fab..567d5f8 100644 (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"))
      {
index 760f25f..89f0517 100644 (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"))
      {
index b66881c..c7226de 100644 (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))
index 42efa95..15af4c3 100644 (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;
          }
index fbccd28..6a7345e 100644 (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
index 49f7a87..bbb97cf 100644 (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;
index ddae229..ebf8fd7 100644 (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"))
      {
index 6e733c9..d98c380 100644 (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)
index 9004f67..17eece2 100644 (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))
index 1d83ef2..340a1e8 100644 (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)
      {