forked from enlightenment/efl
new attempt to fix the hidden object event thing without breaking
dnd... this makes for consistent behavior. :) SVN revision: 63599
This commit is contained in:
parent
d579c7812d
commit
0088ea3d8b
|
@ -413,6 +413,12 @@ evas_object_del(Evas_Object *obj)
|
|||
_evas_object_event_new();
|
||||
evas_object_event_callback_call(obj, EVAS_CALLBACK_DEL, NULL);
|
||||
_evas_post_event_callback_call(obj->layer->evas);
|
||||
if (obj->mouse_grabbed > 0)
|
||||
obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
|
||||
if ((obj->mouse_in) || (obj->mouse_grabbed > 0))
|
||||
obj->layer->evas->pointer.object.in = eina_list_remove(obj->layer->evas->pointer.object.in, obj);
|
||||
obj->mouse_grabbed = 0;
|
||||
obj->mouse_in = 0;
|
||||
if (obj->name) evas_object_name_set(obj, NULL);
|
||||
if (!obj->layer)
|
||||
{
|
||||
|
@ -907,15 +913,14 @@ evas_object_hide(Evas_Object *obj)
|
|||
obj->layer->evas->last_timestamp,
|
||||
NULL);
|
||||
if (obj->delete_me) return;
|
||||
/* this is at odds to handling events when an obj is moved out of the mouse
|
||||
* ore resized out or clipped out. if mouse is grabbed - regardless of
|
||||
* visibility, mouse move events should keep happening and mouse up.
|
||||
* for better or worse it's at least consistent.
|
||||
if (obj->mouse_grabbed > 0)
|
||||
{
|
||||
// if (obj->layer->evas->pointer.mouse_grabbed >= obj->mouse_grabbed)
|
||||
obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
|
||||
}
|
||||
obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
|
||||
if ((obj->mouse_in) || (obj->mouse_grabbed > 0))
|
||||
{
|
||||
obj->layer->evas->pointer.object.in = eina_list_remove(obj->layer->evas->pointer.object.in, obj);
|
||||
}
|
||||
obj->layer->evas->pointer.object.in = eina_list_remove(obj->layer->evas->pointer.object.in, obj);
|
||||
obj->mouse_grabbed = 0;
|
||||
if (obj->layer->evas->events_frozen > 0)
|
||||
{
|
||||
|
@ -942,20 +947,20 @@ evas_object_hide(Evas_Object *obj)
|
|||
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev);
|
||||
_evas_post_event_callback_call(obj->layer->evas);
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
if (obj->mouse_grabbed > 0)
|
||||
{
|
||||
// if (obj->layer->evas->pointer.mouse_grabbed >= obj->mouse_grabbed)
|
||||
obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
|
||||
}
|
||||
obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
|
||||
if ((obj->mouse_in) || (obj->mouse_grabbed > 0))
|
||||
obj->layer->evas->pointer.object.in = eina_list_remove(obj->layer->evas->pointer.object.in, obj);
|
||||
obj->mouse_grabbed = 0;
|
||||
obj->mouse_in = 0;
|
||||
*/
|
||||
}
|
||||
evas_object_inform_call_hide(obj);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue