[Genlist] Fixes for focus bg size
authorgodlytalias14573465 <godly.talias@samsung.com>
Mon, 30 Dec 2019 13:20:43 +0000 (18:50 +0530)
committerJongmin Lee <jm105.lee@samsung.com>
Mon, 6 Jan 2020 11:27:28 +0000 (20:27 +0900)
Change-Id: I1fcd0102f7ec9bf7ce8df8a5bb98443c72f83043
Signed-off-by: godlytalias14573465 <godly.talias@samsung.com>
src/lib/elementary_tizen/elm_genlist.c

index d67c58e..56d5e5f 100644 (file)
@@ -808,6 +808,25 @@ _elm_genlist_pan_efl_gfx_entity_size_set(Eo *obj, Elm_Genlist_Pan_Data *psd, Ein
                     }
                }
           }
+
+        // TIZEN_ONLY(20170526) - If genlist is resized, focus_bg size should change
+        Evas_Coord content_w = 0, content_h = 0;
+        Evas_Object *content = edje_object_part_swallow_get(wd->resize_obj, "focus_bg_size");
+        if (content && size.w > _elm_config->finger_size)
+          {
+             evas_object_geometry_get(content, NULL, NULL, &content_w, &content_h);
+
+             if (content_w != size.w && size.h > _elm_config->finger_size)
+               {
+                  Evas_Object * rectangle = evas_object_rectangle_add(evas_object_evas_get(psd->wsd->obj));
+                  evas_object_size_hint_min_set(rectangle, size.w, content_h);
+                  evas_object_size_hint_max_set(rectangle, size.w, content_h);
+                  evas_object_color_set(rectangle, 0, 0, 0, 0);
+                  elm_object_part_content_set(psd->wsd->obj, "focus_bg_size", rectangle);
+               }
+          }
+        //
+
         psd->wsd->prev_viewport_w = size.w;
      }
    psd->wsd->viewport_w = size.w;
@@ -1551,6 +1570,7 @@ _focus_bg_show(Elm_Gen_Item *it)
    const Evas_Object *top, *bottom;
    Evas_Object *rectangle;
    const char *focus_bg;
+   Evas_Coord vh;
 
    if (!VIEW(it)) return;
    focus_bg = edje_object_data_get(VIEW(it), "focus_bg");
@@ -1572,6 +1592,12 @@ _focus_bg_show(Elm_Gen_Item *it)
         rectangle_h -= h;
      }
 
+   //TIZEN_ONLY(20170526) - focus bg size should not exceed viewport size
+   evas_object_geometry_get(sd->pan_obj, NULL, NULL, NULL, &vh);
+   if (rectangle_h > vh)
+     rectangle_h = vh;
+   //
+
    rectangle = evas_object_rectangle_add(evas_object_evas_get(WIDGET(it)));
    evas_object_size_hint_min_set(rectangle, w, rectangle_h);
    evas_object_size_hint_max_set(rectangle, w, rectangle_h);