forked from enlightenment/efl
elementary/focus : Now, widget itself is the object which gets mouse_up event for stealing focus from another object.
By this change, a widget with scroller interface can change its focus state before adding parent class. SVN revision: 82853
This commit is contained in:
parent
4ca57974cd
commit
1e2e63d899
|
@ -910,3 +910,7 @@
|
||||||
2013-01-16 WooHyun Jung
|
2013-01-16 WooHyun Jung
|
||||||
|
|
||||||
* elm_plug should call elm_widget_can_focus_set after adding parent class.
|
* elm_plug should call elm_widget_can_focus_set after adding parent class.
|
||||||
|
|
||||||
|
2013-01-16 WooHyun Jung
|
||||||
|
|
||||||
|
* Now, widget itself is the object which gets mouse_up event for stealing focus from another object. By this change, a widget with scroller interface can change its focus state before mouse_up of hit_rect.
|
||||||
|
|
|
@ -485,10 +485,10 @@ _elm_widget_focus_direction_manager_is(const Evas_Object *obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_sub_obj_mouse_down(void *data,
|
_obj_mouse_down(void *data,
|
||||||
Evas *e __UNUSED__,
|
Evas *e __UNUSED__,
|
||||||
Evas_Object *obj __UNUSED__,
|
Evas_Object *obj __UNUSED__,
|
||||||
void *event_info)
|
void *event_info)
|
||||||
{
|
{
|
||||||
Elm_Widget_Smart_Data *sd = data;
|
Elm_Widget_Smart_Data *sd = data;
|
||||||
Evas_Event_Mouse_Down *ev = event_info;
|
Evas_Event_Mouse_Down *ev = event_info;
|
||||||
|
@ -497,10 +497,10 @@ _sub_obj_mouse_down(void *data,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_sub_obj_mouse_move(void *data,
|
_obj_mouse_move(void *data,
|
||||||
Evas *e __UNUSED__,
|
Evas *e __UNUSED__,
|
||||||
Evas_Object *obj,
|
Evas_Object *obj,
|
||||||
void *event_info)
|
void *event_info)
|
||||||
{
|
{
|
||||||
Elm_Widget_Smart_Data *sd = data;
|
Elm_Widget_Smart_Data *sd = data;
|
||||||
Evas_Event_Mouse_Move *ev = event_info;
|
Evas_Event_Mouse_Move *ev = event_info;
|
||||||
|
@ -520,10 +520,10 @@ _sub_obj_mouse_move(void *data,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_sub_obj_mouse_up(void *data,
|
_obj_mouse_up(void *data,
|
||||||
Evas *e __UNUSED__,
|
Evas *e __UNUSED__,
|
||||||
Evas_Object *obj,
|
Evas_Object *obj,
|
||||||
void *event_info __UNUSED__)
|
void *event_info __UNUSED__)
|
||||||
{
|
{
|
||||||
Elm_Widget_Smart_Data *sd = data;
|
Elm_Widget_Smart_Data *sd = data;
|
||||||
if (sd->still_in)
|
if (sd->still_in)
|
||||||
|
@ -1181,16 +1181,6 @@ _elm_widget_resize_object_set(Eo *obj, void *_pd, va_list *list)
|
||||||
if (sd->resize_obj)
|
if (sd->resize_obj)
|
||||||
{
|
{
|
||||||
evas_object_clip_unset(sd->resize_obj);
|
evas_object_clip_unset(sd->resize_obj);
|
||||||
|
|
||||||
evas_object_event_callback_del_full(sd->resize_obj,
|
|
||||||
EVAS_CALLBACK_MOUSE_DOWN,
|
|
||||||
_sub_obj_mouse_down, sd);
|
|
||||||
evas_object_event_callback_del_full(sd->resize_obj,
|
|
||||||
EVAS_CALLBACK_MOUSE_MOVE,
|
|
||||||
_sub_obj_mouse_move, sd);
|
|
||||||
evas_object_event_callback_del_full(sd->resize_obj,
|
|
||||||
EVAS_CALLBACK_MOUSE_UP,
|
|
||||||
_sub_obj_mouse_up, sd);
|
|
||||||
evas_object_smart_member_del(sd->resize_obj);
|
evas_object_smart_member_del(sd->resize_obj);
|
||||||
|
|
||||||
if (_elm_widget_is(sd->resize_obj))
|
if (_elm_widget_is(sd->resize_obj))
|
||||||
|
@ -1202,7 +1192,19 @@ _elm_widget_resize_object_set(Eo *obj, void *_pd, va_list *list)
|
||||||
}
|
}
|
||||||
|
|
||||||
sd->resize_obj = sobj;
|
sd->resize_obj = sobj;
|
||||||
if (!sobj) return;
|
if (!sobj)
|
||||||
|
{
|
||||||
|
evas_object_event_callback_del_full(obj,
|
||||||
|
EVAS_CALLBACK_MOUSE_DOWN,
|
||||||
|
_obj_mouse_down, sd);
|
||||||
|
evas_object_event_callback_del_full(obj,
|
||||||
|
EVAS_CALLBACK_MOUSE_MOVE,
|
||||||
|
_obj_mouse_move, sd);
|
||||||
|
evas_object_event_callback_del_full(obj,
|
||||||
|
EVAS_CALLBACK_MOUSE_UP,
|
||||||
|
_obj_mouse_up, sd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// orphan new resize obj
|
// orphan new resize obj
|
||||||
parent = evas_object_data_get(sobj, "elm-parent");
|
parent = evas_object_data_get(sobj, "elm-parent");
|
||||||
|
@ -1224,12 +1226,12 @@ _elm_widget_resize_object_set(Eo *obj, void *_pd, va_list *list)
|
||||||
|
|
||||||
evas_object_smart_member_add(sobj, obj);
|
evas_object_smart_member_add(sobj, obj);
|
||||||
|
|
||||||
evas_object_event_callback_add(sobj, EVAS_CALLBACK_MOUSE_DOWN,
|
evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_DOWN,
|
||||||
_sub_obj_mouse_down, sd);
|
_obj_mouse_down, sd);
|
||||||
evas_object_event_callback_add(sobj, EVAS_CALLBACK_MOUSE_MOVE,
|
evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_MOVE,
|
||||||
_sub_obj_mouse_move, sd);
|
_obj_mouse_move, sd);
|
||||||
evas_object_event_callback_add(sobj, EVAS_CALLBACK_MOUSE_UP,
|
evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_UP,
|
||||||
_sub_obj_mouse_up, sd);
|
_obj_mouse_up, sd);
|
||||||
_smart_reconfigure(sd);
|
_smart_reconfigure(sd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue