}
if (e->pointer.mouse_grabbed < 0)
- fprintf(stderr, "BUG? e->pointer.mouse_grabbed (=%d) < 0!\n",
- e->pointer.mouse_grabbed);
+ {
+ fprintf(stderr, "BUG? e->pointer.mouse_grabbed (=%d) < 0!\n",
+ e->pointer.mouse_grabbed);
+ }
- if ((e->pointer.button == 0) && (e->pointer.mouse_grabbed))
+ if ((e->pointer.button == 0) && (e->pointer.mouse_grabbed != 0))
{
+ printf("restore to 0 grabs (from %i)\n", e->pointer.mouse_grabbed);
e->pointer.mouse_grabbed = 0;
}
_evas_unwalk(e);
obj = outs->data;
outs = eina_list_remove(outs, obj);
- if ((!obj->mouse_grabbed) && (!e->delete_me))
+ if ((obj->mouse_grabbed == 0) && (!e->delete_me))
{
e->pointer.object.in = eina_list_remove(e->pointer.object.in, obj);
{
// if (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;
- if (obj->layer->evas->events_frozen > 0)
- {
- obj->mouse_in = 0;
- return;
- }
- if (obj->mouse_in)
- {
- Evas_Event_Mouse_Out ev;
-
- obj->mouse_in = 0;
- ev.buttons = obj->layer->evas->pointer.button;
- ev.output.x = obj->layer->evas->pointer.x;
- ev.output.y = obj->layer->evas->pointer.y;
- ev.canvas.x = obj->layer->evas->pointer.x;
- ev.canvas.y = obj->layer->evas->pointer.y;
- ev.data = NULL;
- ev.modifiers = &(obj->layer->evas->modifiers);
- ev.locks = &(obj->layer->evas->locks);
- evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev);
- }
+ 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;
+ if (obj->layer->evas->events_frozen > 0)
+ {
+ obj->mouse_in = 0;
+ return;
+ }
+ if (obj->mouse_in)
+ {
+ Evas_Event_Mouse_Out ev;
+
+ obj->mouse_in = 0;
+ ev.buttons = obj->layer->evas->pointer.button;
+ ev.output.x = obj->layer->evas->pointer.x;
+ ev.output.y = obj->layer->evas->pointer.y;
+ ev.canvas.x = obj->layer->evas->pointer.x;
+ ev.canvas.y = obj->layer->evas->pointer.y;
+ ev.data = NULL;
+ ev.modifiers = &(obj->layer->evas->modifiers);
+ ev.locks = &(obj->layer->evas->locks);
+ evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev);
}
}
}