forked from enlightenment/efl
Evas events: Fix 1 more issue with pointer grabbing.
We only need to change the list of grabbed objects if we are initiating a new grab, and not if are already in a grab because of multi touch. SVN revision: 60787
This commit is contained in:
parent
aad8c69071
commit
067053b970
|
@ -204,7 +204,6 @@ EAPI void
|
||||||
evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data)
|
evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data)
|
||||||
{
|
{
|
||||||
Eina_List *l, *copy;
|
Eina_List *l, *copy;
|
||||||
Eina_List *ins;
|
|
||||||
Evas_Event_Mouse_Down ev;
|
Evas_Event_Mouse_Down ev;
|
||||||
Evas_Object *obj;
|
Evas_Object *obj;
|
||||||
|
|
||||||
|
@ -234,11 +233,17 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
|
||||||
ev.event_flags = EVAS_EVENT_FLAG_NONE;
|
ev.event_flags = EVAS_EVENT_FLAG_NONE;
|
||||||
|
|
||||||
_evas_walk(e);
|
_evas_walk(e);
|
||||||
ins = evas_event_objects_event_list(e, NULL, e->pointer.x, e->pointer.y);
|
/* If this is the first finger down, i.e no other fingers pressed,
|
||||||
/* free our old list of ins */
|
* get a new event list, otherwise, keep the current grabbed list. */
|
||||||
e->pointer.object.in = eina_list_free(e->pointer.object.in);
|
if (e->pointer.mouse_grabbed == 0)
|
||||||
/* and set up the new one */
|
{
|
||||||
e->pointer.object.in = ins;
|
Eina_List *ins;
|
||||||
|
ins = evas_event_objects_event_list(e, NULL, e->pointer.x, e->pointer.y);
|
||||||
|
/* free our old list of ins */
|
||||||
|
e->pointer.object.in = eina_list_free(e->pointer.object.in);
|
||||||
|
/* and set up the new one */
|
||||||
|
e->pointer.object.in = ins;
|
||||||
|
}
|
||||||
copy = evas_event_list_copy(e->pointer.object.in);
|
copy = evas_event_list_copy(e->pointer.object.in);
|
||||||
EINA_LIST_FOREACH(copy, l, obj)
|
EINA_LIST_FOREACH(copy, l, obj)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue