{
ins = eina_list_free(ins);
}
- /* free our cur ins */
- eina_list_free(ins);
+
+ if (e->pointer.mouse_grabbed == 0)
+ {
+ /* free our old list of ins */
+ eina_list_free(e->pointer.object.in);
+ /* and set up the new one */
+ e->pointer.object.in = ins;
+ }
+ else
+ {
+ /* free our cur ins */
+ eina_list_free(ins);
+ }
if (e->pointer.inside)
evas_event_feed_mouse_move(e, e->pointer.x, e->pointer.y, timestamp, data);
return post_called;
}
if (e->delete_me) break;
}
- /* free our current ins */
- eina_list_free(ins);
+ if (e->pointer.mouse_grabbed == 0)
+ {
+ /* free our old list of ins */
+ eina_list_free(e->pointer.object.in);
+ /* and set up the new one */
+ e->pointer.object.in = ins;
+ }
+ else
+ {
+ /* free our cur ins */
+ eina_list_free(ins);
+ }
_evas_post_event_callback_call(e);
}
_evas_unwalk(e);
if (e->delete_me) break;
}
if (copy) copy = eina_list_free(copy);
- /* free our current ins */
- eina_list_free(ins);
+ if (e->pointer.mouse_grabbed == 0)
+ {
+ /* free our old list of ins */
+ eina_list_free(e->pointer.object.in);
+ /* and set up the new one */
+ e->pointer.object.in = ins;
+ }
+ else
+ {
+ /* free our cur ins */
+ eina_list_free(ins);
+ }
_evas_post_event_callback_call(e);
}
_evas_unwalk(e);