There is a problem with the previous version. The object can still be
alive due to the use of manual_free in evas. So you wouldn't be able
for example to remove a callback from an object that hasn't been
destroyed yet. If that callback is triggered by the destruction
of the object, you would end up with an unexpected and impossible to
prevent effect of access after free on a callback that you had removed.
Not sure if that still solve the original problem that the code was
trying to prevent in Ecore_Evas.
with deferred surface creation the first canvas change of hints may not
be able to trigger protocol methods for size hints, so ensure that hints are
set
If we're not ticking already when a new animator is started then we have
to wait for a vblank to get a tick. That's not great.
If we can, use the time of the last vblank to generate an immediate tick
to avoid this latency.
Since the engines can call the flip functions, we need to protect the
ticker from missing those flips. Thus, we let ecore_drm2, which obviously
sees all flips, track them.
So, this is maybe not the best fix. The question is should we be able to
get efl_data_scope_safe_get return the object private data, when we are
currently executing the object EFL_EVENT_DEL callbacks. Right now we don't
and this lead to bug where we wouldn't have been able to destroy a callback
and get that callback triggered later on destroyed data (I had a crash in
terminology). I have switched back to the not _safe_ version which doesn't
enforce this, but that might not be the only place that need a fix.
Summary:
when scroller can have focus and scroller's child can't have focus,
there is a problem that scroller is always selected to next focus object.
In this case, it should not enter into _elm_scroller_elm_widget_focus_direction()
Reviewers: woohyun
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5085
Summary:
int var devided by int is cast to double after devision.
This might cause wrong calculation result.
Reviewers: cedric, jpeg, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5079
After any complex call on the window, a foreign evas/efl callback may be
triggered that could delete the window object. This leads to crashes in
queued jobs or even immediately after said callback (right now EO
prevents immediate memory free using eina_freeq or eina_trash so the
effects aren't immediate).
Funnily enough, this was a known issue according to some comments, but
no one bothered fixing it...
In this particular instance, a focus_out job was crashing while trying
to access now-invalid sd data.
I believe some uses of ELM_WIN_DATA_GET() may still be slightly unsafe
but most look like they should be the result of an EO call on the object
(eg. a call to efl_event_callback_call), which ensures the object is
alive.
Fixes T5869
This makes sure the object is actually still alive and kicking before
returning any data. Otherwise the "safe" word is a bit of an abuse...
Ref T5869
@fix
it turns out to be very handy to have a interface for the moving and
border elements, that is unconnected to the way of how widgets are
registering themself.
This for example enables us to get a simple focus manager that just
redirects the call into a internal 2 dimensional data struct
Weston's dmabuf code continues to be modular enough that we can pull
it in with little change.
This updates us to version 3 of the protocol.
Currently only contains stubs for format queries.