diff --git a/legacy/elementary/src/lib/elm_entry.c b/legacy/elementary/src/lib/elm_entry.c index 54512a5d36..8afc58f104 100644 --- a/legacy/elementary/src/lib/elm_entry.c +++ b/legacy/elementary/src/lib/elm_entry.c @@ -263,7 +263,6 @@ elm_entry_add(Evas_Object *parent) edje_object_signal_callback_add(wd->ent, "anchor,mouse,out,*", "elm.text", _signal_anchor_out, obj); edje_object_signal_callback_add(wd->ent, "entry,key,enter", "elm.text", _signal_key_enter, obj); elm_widget_resize_object_set(obj, wd->ent); - evas_object_propagate_events_set(obj, 0); return obj; } diff --git a/legacy/elementary/src/lib/elm_widget.c b/legacy/elementary/src/lib/elm_widget.c index 16b99c2c1a..1136faec1b 100644 --- a/legacy/elementary/src/lib/elm_widget.c +++ b/legacy/elementary/src/lib/elm_widget.c @@ -61,8 +61,19 @@ static void _sub_obj_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) { Smart_Data *sd = data; - if (obj == sd->resize_obj) - elm_widget_focus_set(sd->obj, 1); + Evas_Object *op, *op2; + + op = elm_widget_parent_get(obj); + while (op) + { + op2 = elm_widget_parent_get(op); + if (!op2) break; + op = op2; + } + printf("focus off %p\n", op); + if (op) elm_widget_focused_object_clear(op); + printf("focus %p\n", sd->obj); + elm_widget_focus_set(sd->obj, 0); } /* externally accessible functions */ diff --git a/legacy/elementary/src/lib/els_scroller.c b/legacy/elementary/src/lib/els_scroller.c index e298ab76fc..9dce2b5d0b 100644 --- a/legacy/elementary/src/lib/els_scroller.c +++ b/legacy/elementary/src/lib/els_scroller.c @@ -617,6 +617,7 @@ _smart_event_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info) sd = data; ev = event_info; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; elm_smart_scroller_child_pos_get(sd->smart_obj, &x, &y); sd->pan_func.max_get(sd->pan_obj, &mx, &my); evas_object_geometry_get(sd->pan_obj, NULL, NULL, &vw, &vh);