Fixed the mouse focus handling bug of menu btn 61/45061/1
authorHyojung Jo <hj903.jo@samsung.com>
Fri, 31 Jul 2015 05:17:41 +0000 (14:17 +0900)
committerHyojung Jo <hj903.jo@samsung.com>
Fri, 31 Jul 2015 05:17:41 +0000 (14:17 +0900)
Change-Id: I6f1e2859ac5370b6d5209bfcf0bfcd459145d2dd
Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
include/define.h
res/widget/button.edc
src/view/view_base.c

index 406290c..b6bc5bb 100644 (file)
@@ -56,6 +56,7 @@
 #define SIG_FOCUSED "focused"
 #define SIG_UNFOCUSED "unfocused"
 #define SIG_SELECTED "selected"
+#define SIG_UNSELECTED "unselected"
 #define SIG_ITEM_FOCUSED "item_focused"
 #define SIG_ITEM_SELECTED "item_selected"
 #define SIG_SOURCE_EDC "edc"
@@ -65,6 +66,8 @@
 
 /* Signal Source */
 #define SRC_MYAPPS "source.myapps"
+#define SRC_MENU_BTN "source.menu.btn"
+#define SRC_SORT_BTN "source.sort.btn"
 
 /* Font */
 #define FONT_TIZENSANS_REGULAR "TizenSans"
index 8c7cf50..e08d3c2 100644 (file)
@@ -163,69 +163,114 @@ group {
 
        programs{
                program {
+                       name, "load";
+                       signal, "load";
+                       source, "";
+                       script {
+                               set_int(cur_state, STATE_NORMAL);
+                       }
+               }
+
+               program {
                        name, SIG_FOCUSED;
                        signal, "elm,action,focus";
                        source, "elm";
                        script {
                                set_int(cur_state, STATE_NORMAL);
+                               set_state(PART:"part.bottom.line", "focused", 0.0);
                                run_program(PROGRAM:"focused,anim");
                        }
                }
 
                program {
+                       name, "focused,anim";
+                       action, STATE_SET "focused" 0.0;
+                       target, "part.bg";
+                       target, "part.bg.left";
+                       target, "part.bg.right";
+                       target, "elm.text";
+                       transition, TRANSITION_FOCUS;
+               }
+
+               program {
                        name, SIG_UNFOCUSED;
                        signal, "elm,action,unfocus";
                        source, "elm";
                        script {
                                new state;
                                state = get_int(cur_state);
+                               set_int(cur_state, STATE_NORMAL);
                                if (state == STATE_SELECTED) {
-                                       set_state(PART:"part.bg", "selected", 0.0);
-                                       set_state(PART:"part.bg.left", "selected", 0.0);
-                                       set_state(PART:"part.bg.right", "selected", 0.0);
-                                       set_state(PART:"elm.text", "selected", 0.0);
                                        set_state(PART:"part.bottom.line", "selected", 0.0);
+                                       run_program(PROGRAM:"unfocused,sel,anim");
                                } else {
-                                       run_program(PROGRAM:"unfocused,anim");
+                                       set_state(PART:"part.bottom.line", "default", 0.0);
+                                       run_program(PROGRAM:"unfocused,foc,anim");
                                }
                        }
                }
 
                program {
-                       name, "focused,anim";
-                       action, STATE_SET "focused" 0.0;
+                       name, "unfocused,sel,anim";
+                       action, STATE_SET "selected" 0.0;
                        target, "part.bg";
                        target, "part.bg.left";
                        target, "part.bg.right";
                        target, "elm.text";
-                       target, "part.bottom.line";
                        transition, TRANSITION_FOCUS;
                }
 
                program {
-                       name, "unfocused,anim";
+                       name, "unfocused,foc,anim";
                        action, STATE_SET "default" 0.0;
                        target, "part.bg";
                        target, "part.bg.left";
                        target, "part.bg.right";
                        target, "elm.text";
-                       target, "part.bottom.line";
                        transition, TRANSITION_FOCUS;
                }
 
                program {
                        name, SIG_SELECTED;
-                       signal, "selected";
-                       source, "";
+                       signal, SIG_SELECTED;
+                       source, SRC_MENU_BTN;
                        script {
                                set_int(cur_state, STATE_SELECTED);
-                               set_state(PART:"part.bg", "selected", 0.0);
-                               set_state(PART:"part.bg.left", "selected", 0.0);
-                               set_state(PART:"part.bg.right", "selected", 0.0);
-                               set_state(PART:"elm.text", "selected", 0.0);
                                set_state(PART:"part.bottom.line", "selected", 0.0);
+                               run_program(PROGRAM:"selected,anim");
                        }
                }
+
+               program {
+                       name, "selected,anim";
+                       action, STATE_SET "selected" 0.0;
+                       target, "part.bg";
+                       target, "part.bg.left";
+                       target, "part.bg.right";
+                       target, "elm.text";
+                       transition, TRANSITION_FOCUS;
+               }
+
+               program {
+                       name, SIG_UNSELECTED;
+                       signal, SIG_UNSELECTED;
+                       source, SRC_MENU_BTN;
+                       script {
+                               set_int(cur_state, STATE_NORMAL);
+                               set_state(PART:"part.bottom.line", "default", 0.0);
+                               run_program(PROGRAM:"unselected,anim");
+                       }
+               }
+
+               program {
+                       name, "unselected,anim";
+                       action, STATE_SET "default" 0.0;
+                       target, "part.bg";
+                       target, "part.bg.left";
+                       target, "part.bg.right";
+                       target, "elm.text";
+                       transition, TRANSITION_FOCUS;
+               }
        }
 }
 
@@ -458,8 +503,8 @@ group {
 
                program {
                        name, SIG_SELECTED;
-                       signal, "selected";
-                       source, "";
+                       signal, SIG_SELECTED;
+                       source, SRC_SORT_BTN;
                        script {
                                set_int(cur_state, STATE_SELECTED);
                                set_state(PART:"part.bg", "selected", 0.0);
index 8f83f95..fcb744d 100644 (file)
@@ -97,6 +97,10 @@ static void _menu_focused_cb(int id, void *data, Evas_Object *obj,
        if (priv->focused_menu == obj || !priv->grid)
                return;
 
+       if (priv->focused_menu)
+               elm_object_signal_emit(priv->focused_menu,
+                               SIG_UNSELECTED, SRC_MENU_BTN);
+
        switch (id) {
        case MENU_MYAPPS:
                elm_object_signal_emit(priv->base, SIG_VISIBLE, SRC_MYAPPS);
@@ -387,7 +391,7 @@ static void _sort_clicked_cb(int id, void *data, Evas_Object *obj)
                return;
        }
 
-       elm_object_signal_emit(obj, SIG_SELECTED, "");
+       elm_object_signal_emit(obj, SIG_SELECTED, SRC_SORT_BTN);
 }
 
 static void _sort_focused_cb(int id, void *data, Evas_Object *obj,
@@ -439,7 +443,7 @@ static void _grid_focused_cb(int id, void *data, Evas_Object *obj,
        }
        priv = data;
 
-       elm_object_signal_emit(priv->focused_menu, SIG_SELECTED, "");
+       elm_object_signal_emit(priv->focused_menu, SIG_SELECTED, SRC_MENU_BTN);
 
        if (priv->cur_grid_item)
                elm_object_item_focus_set(priv->cur_grid_item, EINA_TRUE);