[FIX] Mouse click events are not invoked by disabled elements 53/62353/1
authorMichal Skorupinski <m.skorupinsk@samsung.com>
Mon, 14 Mar 2016 14:25:58 +0000 (15:25 +0100)
committerMichal Skorupinski <m.skorupinsk@samsung.com>
Tue, 15 Mar 2016 13:07:59 +0000 (14:07 +0100)
 * Changed the 'mouse_down' callbacks to 'clicked'.
 * Fix in 'style.base.button' and 'style.option.button' button styles.
The fix is required to use the 'clicked' callback. Previous the 'mouse_down'
callback was used and it ignores the button enable state.

Change-Id: I75a544de97650a16a8f830d210b70a50579d263e
Signed-off-by: Michal Skorupinski <m.skorupinsk@samsung.com>
res/widget/button.edc
src/layout/layout_channel.c
src/layout/layout_network.c

index b511766..0d554b2 100644 (file)
@@ -312,6 +312,7 @@ group {
                part {
                        name, "part.inside.line.up";
                        type, RECT;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -335,6 +336,7 @@ group {
                part {
                        name, "part.inside.line.left";
                        type, RECT;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -361,6 +363,7 @@ group {
                part {
                        name, "part.inside.line.right";
                        type, RECT;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -384,6 +387,7 @@ group {
                part {
                        name, "part.inside.line.down";
                        type, RECT;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -410,6 +414,7 @@ group {
                part {
                        name, "padding.text.left";
                        type, SPACER;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -427,6 +432,7 @@ group {
                part {
                        name, "padding.text.right";
                        type, SPACER;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -444,6 +450,7 @@ group {
                part {
                        name, "elm.text";
                        type, TEXT;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -498,6 +505,11 @@ group {
                        target, "elm.text";
                        transition, TRANSITION_FOCUS;
                }
+               program {
+                       signal: "mouse,clicked,1";
+                       source: "part.bg";
+                       action: SIGNAL_EMIT "elm,action,click" "elm";
+               }
        }
 }
 
@@ -998,6 +1010,7 @@ group {
                part {
                        name, "part.inside.line.up";
                        type, RECT;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -1026,6 +1039,7 @@ group {
                part {
                        name, "part.inside.line.left";
                        type, RECT;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -1057,6 +1071,7 @@ group {
                part {
                        name, "part.inside.line.right";
                        type, RECT;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -1085,6 +1100,7 @@ group {
                part {
                        name, "part.inside.line.down";
                        type, RECT;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -1150,6 +1166,7 @@ group {
                part {
                        name, "elm.text";
                        type, TEXT;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -1203,6 +1220,7 @@ group {
                part {
                        name, "part.arrow";
                        type, IMAGE;
+                       repeat_events, 1;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -1302,6 +1320,12 @@ group {
                                set_state(PART:"part.arrow", "selected", 0.0);
                        }
                }
+
+               program {
+                       signal: "mouse,clicked,1";
+                       source: "part.bg";
+                       action: SIGNAL_EMIT "elm,action,click" "elm";
+               }
        }
 }
 
index 251ef1f..bd2d56a 100644 (file)
@@ -65,7 +65,7 @@ static void _update(void *layout_data, int update_type, void *data);
 static void _mouse_move_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Move *ev);
 static void _popup_clicked_cb(int id, void *data, Evas_Object *obj);
 static void _key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev);
-static void _mouse_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Down *ev);
+static void _mouse_clicked_cb(int id, void *data, Evas_Object *obj);
 static void _focused(int id, void *data, Evas_Object *obj, Elm_Object_Item *item);
 static void _stop_popup_show(struct _priv *priv);
 static void _stop_popup_create(struct _priv *priv);
@@ -82,7 +82,7 @@ static layout_class _lclass = {
 static input_handler _input_handler = {
        .mouse_move = _mouse_move_cb,
        .key_down = _key_down_cb,
-       .mouse_down = _mouse_down_cb,
+       .clicked = _mouse_clicked_cb,
        .focused = _focused
 };
 
@@ -359,8 +359,6 @@ static void _button_selected(struct _priv *priv)
 static void _key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
                Evas_Event_Key_Down *ev)
 {
-       struct _priv *priv;
-
        _INFO("[%s:%s:%d]", __FILE__, __FUNCTION__, __LINE__);
 
        if (!data || !ev || !obj) {
@@ -368,16 +366,14 @@ static void _key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
                return;
        }
 
-       priv = data;
-
        if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_ESC))
                viewmgr_update_view(VIEW_BASE, UPDATE_FOCUS, NULL);
-       else if (!strcmp(ev->keyname, KEY_ENTER))
-               _button_selected(priv);
 }
 
-static void _mouse_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Down *ev)
+static void _mouse_clicked_cb(int id, void *data, Evas_Object *obj)
 {
+       _INFO("Mouse clicked");
+
        struct _priv *priv = data;
        _button_selected(priv);
 }
index d0861f7..50fe12f 100644 (file)
@@ -242,12 +242,11 @@ static void _draw_network_type_popup(struct _priv *priv)
        priv->network_type_popup = ctxpopup;
 }
 
-static void _network_type_mouse_down_cb(int id, void *data, Evas *e,
-               Evas_Object *obj, Evas_Event_Mouse_Down *ev)
+static void _network_type_clicked_cb(int id, void *data, Evas_Object *obj)
 {
        struct _priv *priv;
 
-       if (!data || !ev) {
+       if (!data) {
                _ERR("Invalid argument.");
                return;
        }
@@ -259,19 +258,14 @@ static void _network_type_mouse_down_cb(int id, void *data, Evas *e,
 static void _network_type_key_down_cb(int id, void *data, Evas *e,
                Evas_Object *obj, Evas_Event_Key_Down *ev)
 {
-       struct _priv *priv;
-
        if (!data || !ev) {
                _ERR("Invalid argument.");
                return;
        }
-       priv = data;
 
        if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_ESC)
                        || !strcmp(ev->keyname, KEY_UP))
                viewmgr_update_view(VIEW_BASE, UPDATE_FOCUS, NULL);
-       else if (!strcmp(ev->keyname, KEY_ENTER))
-               _draw_network_type_popup(priv);
 }
 
 static void _update_wired_network_status(struct _priv *priv)
@@ -375,34 +369,34 @@ static void _retry_wireless_network(struct _priv *priv)
        }
 }
 
+static void _action_key_clicked_cb(int id, void *data, Evas_Object *obj)
+{
+       struct _priv *priv = data;
+
+       switch (priv->cur_type) {
+       case TYPE_WIRELESS:
+               _retry_wireless_network(priv);
+               break;
+       case TYPE_WIRED:
+       case TYPE_NEW_NETWORK:
+               _retry_wired_network(priv);
+               break;
+       default:
+               break;
+       }
+}
+
 static void _action_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
                Evas_Event_Key_Down *ev)
 {
-       struct _priv *priv;
-
        if (!data || !ev) {
                _ERR("Invalid argument.");
                return;
        }
-       priv = data;
 
        if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_ESC)
                        || !strcmp(ev->keyname, KEY_UP)) {
                viewmgr_update_view(VIEW_BASE, UPDATE_FOCUS, NULL);
-       } else if (!strcmp(ev->keyname, KEY_ENTER)) {
-               switch (priv->cur_type) {
-               case TYPE_WIRELESS:
-                       _retry_wireless_network(priv);
-                       break;
-
-               case TYPE_WIRED:
-               case TYPE_NEW_NETWORK:
-                       _retry_wired_network(priv);
-                       break;
-
-               default:
-                       break;
-               }
        }
 }
 
@@ -442,7 +436,7 @@ static void _focused(int id, void *data, Evas_Object *obj, Elm_Object_Item *item
 
 static input_handler _network_type_input_handler = {
        .mouse_move = _mouse_move_cb,
-       .mouse_down = _network_type_mouse_down_cb,
+       .clicked = _network_type_clicked_cb,
        .key_down = _network_type_key_down_cb,
        .focused = _focused
 };
@@ -450,6 +444,7 @@ static input_handler _network_type_input_handler = {
 static input_handler _action_input_handler = {
        .mouse_move = _mouse_move_cb,
        .key_down = _action_key_down_cb,
+       .clicked = _action_key_clicked_cb,
        .focused = _focused
 };