elm_gengrid: mark cursor_engine_only in data and update state when realized 03/38203/1
authorJaeun Choi <jaeun12.choi@samsung.com>
Tue, 14 Apr 2015 10:20:16 +0000 (19:20 +0900)
committerJaeun Choi <jaeun12.choi@samsung.com>
Tue, 14 Apr 2015 11:25:44 +0000 (20:25 +0900)
@fix

Conflicts:

src/lib/elm_gengrid.c

Change-Id: I772168d4c6bfb6a5bf1e1aea286ff0fcd2ccf4b2
Origin: upstream

src/lib/elm_gen_common.h
src/lib/elm_gengrid.c

index ec36ce9bc481bf0b2c3e6423efca469ae22fbf86..74b13ae01d6e6c537d5048a3d88390ef45410a5d 100644 (file)
@@ -66,6 +66,7 @@ struct Elm_Gen_Item
    Eina_Bool                 decorate_it_set : 1; /**< item uses style mode for highlight/select */
    Eina_Bool                 flipped : 1; /**< a flag that shows the flip status of the item. */
    Eina_Bool                 has_contents : 1; /**< content objs have or previously did exist (size calcs) */
+   Eina_Bool                 cursor_engine_only : 1;
 };
 
 #endif
index f205535352d6b8d6b3f80bf58eea490253b6ffb7..7435e4c4cfda4362b6d3f83d960a95bd607743b6 100644 (file)
@@ -1011,6 +1011,9 @@ _item_realize(Elm_Gen_Item *it)
    if (it->mouse_cursor)
      eo_do(eo_it, elm_wdg_item_cursor_set(it->mouse_cursor));
 
+   if (it->cursor_engine_only)
+     eo_do(eo_it, elm_wdg_item_cursor_engine_only_set(it->cursor_engine_only));
+
    if (eo_it == sd->focused_item)
      {
         const char *focus_raise;
@@ -4410,16 +4413,23 @@ elm_gengrid_item_cursor_style_get(const Elm_Object_Item *it)
 }
 
 EAPI void
-elm_gengrid_item_cursor_engine_only_set(Elm_Object_Item *it,
+elm_gengrid_item_cursor_engine_only_set(Elm_Object_Item *eo_it,
                                         Eina_Bool engine_only)
 {
-   eo_do(it, elm_wdg_item_cursor_engine_only_set(engine_only));
+   ELM_GENGRID_ITEM_DATA_GET(eo_it, it);
+   it->cursor_engine_only = engine_only;
+   if (it->realized)
+     eo_do(eo_it, elm_wdg_item_cursor_engine_only_set(engine_only));
 }
 
 EAPI Eina_Bool
-elm_gengrid_item_cursor_engine_only_get(const Elm_Object_Item *it)
+elm_gengrid_item_cursor_engine_only_get(const Elm_Object_Item *eo_it)
 {
-   return eo_do( it, elm_wdg_item_cursor_engine_only_get());
+   ELM_GENGRID_ITEM_DATA_GET(eo_it, it);
+   Eina_Bool ret;
+   if (it->realized)
+     return eo_do(eo_it, elm_wdg_item_cursor_engine_only_get());
+   else return it->cursor_engine_only;
 }
 
 EAPI void