atspi: Fix object is completely on screen function 04/132704/3
authorJunsuChoi <jsuya.choi@samsung.com>
Wed, 7 Jun 2017 07:56:31 +0000 (16:56 +0900)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Thu, 15 Jun 2017 00:14:42 +0000 (00:14 +0000)
   is_complete variable has been modified to function correctly.

Change-Id: I2ed25f96ed51baac0873d82e985ccf445a4f6482

src/lib/elm_widget.c

index c10a4c2322a54542776c4f93508ff8ab95af7826..6f936dc365c5f6d785f3dc1af69ca1f58aa9e99d 100644 (file)
@@ -6364,7 +6364,7 @@ _accessible_object_on_screen_is(Eo *obj, Evas_Coord x, Evas_Coord y, Evas_Coord
 
    Evas_Object *target = obj;
    Evas_Object *parent = NULL;
-   Evas_Coord px, py, sx, sy, sw, sh;
+   Evas_Coord px, py, sx, sy, sw, sh, ox, oy, ow, oh;
 
    if (elm_widget_is(target))
      parent = elm_widget_parent_get(target);
@@ -6376,14 +6376,18 @@ _accessible_object_on_screen_is(Eo *obj, Evas_Coord x, Evas_Coord y, Evas_Coord
         if (eo_isa(parent, ELM_INTERFACE_SCROLLABLE_MIXIN))
           {
              evas_object_geometry_get(parent, &sx, &sy, &sw, &sh);
-             px = x;
-             py = y;
-             x = x > sx ? (is_complete ? x : x + w) : sx;
-             y = y > sy ? (is_complete ? y : y + h) : sy;
-             w = px + w < sx + sw ? px + w - x : sx + sw - x;
-             h = py + h < sy + sh ? py + h - y : sy + sh - y;
+             px = ox = x;
+             py = oy = y;
+             ow = w;
+             oh = h;
+             ox = is_complete ? ox : ox + ow;
+             oy = is_complete ? oy : oy + oh;
+             ox = ox > sx ? ox : sx;
+             oy = oy > sy ? oy : sy;
+             ow = px + ow < sx + sw ? px + ow - ox : sx + sw - ox;
+             oh = py + oh < sy + sh ? py + oh - oy : sy + sh - oy;
           }
-        if (w <= 0 || h <= 0)
+        if (ow <= 0 || oh <= 0)
           return EINA_FALSE;
 
         parent = elm_widget_parent_get(parent);