musicplayer: don't bring in the item if the list has a focus 05/44505/2
authorMinkyu Kang <mk7.kang@samsung.com>
Thu, 23 Jul 2015 00:54:27 +0000 (09:54 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Thu, 23 Jul 2015 01:44:04 +0000 (10:44 +0900)
Change-Id: I0a523128878ba26050463e3d87474a8356cf326a
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
include/define.h
src/view/mplayer.c

index 8608add..64d7cca 100644 (file)
@@ -68,7 +68,9 @@
 #define SIG_BTN_UNSELECTED "btn,unselected"
 #define SIG_ITEM_SELECTED "item,selected"
 #define SIG_ITEM_UNSELECTED "item,unselected"
+#define SIG_ELM_UNFOCUSED "elm,state,unfocused"
 #define SIG_SOURCE_EDC "edc"
+#define SIG_SOURCE_ELM "elm"
 #define SIG_SOURCE_SRC "src"
 
 #endif /* __AIR_MEDIAHUB_DEFINE_H__ */
index c5c77f8..5cb99ef 100644 (file)
@@ -93,7 +93,11 @@ static void _draw_playlist(struct _priv *priv)
                return;
        }
 
-       elm_genlist_item_bring_in(ld->item, ELM_GENLIST_ITEM_SCROLLTO_IN);
+       if (!elm_object_focus_get(priv->list)) {
+               elm_genlist_item_bring_in(ld->item,
+                               ELM_GENLIST_ITEM_SCROLLTO_IN);
+       }
+
        elm_genlist_realized_items_update(priv->list);
 }
 
@@ -538,6 +542,15 @@ static void _list_realized(int id, void *data,
        }
 }
 
+static void _list_unrealized(int id, void *data,
+               Evas_Object *obj, Elm_Object_Item *it)
+{
+       if (!it)
+               return;
+
+       elm_object_item_signal_emit(it, SIG_ELM_UNFOCUSED, SIG_SOURCE_ELM);
+}
+
 static void _list_mouse_move(int id, void *data, Evas *e, Evas_Object *obj,
                        Evas_Event_Mouse_Move *ev)
 {
@@ -558,6 +571,7 @@ static void _list_mouse_move(int id, void *data, Evas *e, Evas_Object *obj,
 
 static input_handler _list_handler = {
        .realized = _list_realized,
+       .unrealized = _list_unrealized,
        .selected = _list_selected,
        .mouse_move = _list_mouse_move,
        .key_down = _key_down,