Lauro Moura [Fri, 25 May 2018 17:00:40 +0000 (10:00 -0700)]
eo_cxx: Fix do_eo_add after lifecycle branch.
Summary:
Also changed the previously failing tests to use ck_assert_int_eqinstead
of fail_if for better reporting.
Test Plan: make check
Reviewers: cedric, felipealmeida
Reviewed By: cedric
Subscribers: #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6194
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Youngbok Shin [Fri, 25 May 2018 16:59:01 +0000 (09:59 -0700)]
elementary textpath: improves text rendering quality of curved text
Summary:
There was wrong logic for calculating # of slices, dt, dist of each segment.
It caused bad rendering quality by putting too much slices on small text.
In addition, textpath didn't care about smoothness of curve's slope changing.
The patch fixes to check differences of previous points and next points for Evas Map.
So, textpath can show more smoothly curved text.
Also, it fixes "autofit" bug when text is much huge than given circle's size.
@tix
Test Plan:
- I'll attach screenshots for comparing rendering quality.
- To see "autofit" bug.
1. Run the following command.
ELM_ACCEL=gl ELM_SCALE=2.0 elementary_test -to "efl.ui.textpath"
2. Toggle "autofit" check box.
3. See the bug case. Textpath can't show all text properly.
Reviewers: raster, cedric, thiepha
Subscribers: #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6195
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Cedric BAIL [Fri, 25 May 2018 15:33:50 +0000 (08:33 -0700)]
elementary: fetch the model explicitely.
T6939
WooHyun Jung [Fri, 25 May 2018 07:42:52 +0000 (16:42 +0900)]
efl_ui_win: fix wrong comparison in icon_object_set
@fix
Cedric BAIL [Thu, 24 May 2018 22:54:00 +0000 (15:54 -0700)]
elementary: prevent model from being invalidated when their parent model get destroyed.
Cedric BAIL [Thu, 24 May 2018 21:48:03 +0000 (14:48 -0700)]
elementary: ctxpopup is using legacy Elm.List which use legacy Elm.Object.Item, fix accordingly.
Cedric BAIL [Thu, 24 May 2018 06:37:09 +0000 (23:37 -0700)]
elementary: fix elm_list items lifecycle.
Elm.List.Item lifecycle where an exception in Efl. They were trying to prevent the death of
there parent, to avoid dealing with safely walking on items list. This has been on the todo
list for years and is now fixed by this patch.
Cedric BAIL [Thu, 24 May 2018 06:12:02 +0000 (23:12 -0700)]
evas: make smart object deletion more robust to bad child behavior.
Cedric BAIL [Thu, 24 May 2018 03:24:21 +0000 (20:24 -0700)]
elementary: refactor filesector target cleanup to not leave function handler behind.
Cedric BAIL [Thu, 24 May 2018 03:23:48 +0000 (20:23 -0700)]
elementary: make sure to use the model that generated the event to fetch information from.
Cedric BAIL [Thu, 24 May 2018 03:19:31 +0000 (20:19 -0700)]
elementary: make sure fileselector button model has a parent and self destruct properly.
Cedric BAIL [Thu, 24 May 2018 03:18:18 +0000 (20:18 -0700)]
eio: enforce eio model to have a parent that provide main loop access.
Cedric BAIL [Thu, 24 May 2018 02:37:20 +0000 (19:37 -0700)]
ecore: during shutdown their is no need to delay anything.
Cedric BAIL [Thu, 24 May 2018 02:35:03 +0000 (19:35 -0700)]
eo: an object is invalidated if it is invalidated or if any parent is invalidated.
Cedric BAIL [Thu, 24 May 2018 01:03:56 +0000 (18:03 -0700)]
ecore_con: disconnect from the server as soon as it request it.
Ecore_Event can still be in flight while the client get freed by the server.
We are protected agaist that and keep the client partially alive until the event
are processed, but we need to disconnect from the server as soon as possible
as we might outlive the server.
Cedric BAIL [Wed, 23 May 2018 19:15:26 +0000 (12:15 -0700)]
evas: disable del hook when pushed inside the hash.
This is necessary in case of cycling init/shutdown as the hash will
destroy the Event, but the hook will instantly reinsert it.
Cedric BAIL [Tue, 22 May 2018 23:15:28 +0000 (16:15 -0700)]
eo: match raise of error level in tests.
Cedric BAIL [Tue, 22 May 2018 23:15:02 +0000 (16:15 -0700)]
eo: we are actually testing internal function too here.
Cedric BAIL [Tue, 22 May 2018 23:14:20 +0000 (16:14 -0700)]
eo: add infrastructure to test critical Eina Error.
Cedric BAIL [Tue, 22 May 2018 23:13:53 +0000 (16:13 -0700)]
eo: improve tests suite debugging by always displaying the error message before abort.
Cedric BAIL [Tue, 22 May 2018 21:10:48 +0000 (14:10 -0700)]
eo: move wref set to NULL to append after last event.
Making wref disapear before the last event require additional work to use
them during the FREE event. As I think we should introduce a wref that
disapear after the invalidate state, it makes sense to move that to a later
stage. Especially because their is no specific event related to them
being set to NULL.
Cedric Bail [Tue, 22 May 2018 05:35:19 +0000 (22:35 -0700)]
evas: improve test to actually test something meaningful.
Cedric BAIL [Mon, 21 May 2018 23:59:51 +0000 (16:59 -0700)]
elementary: fix configuration destruction by actually calling the proper way of destruction.
Cedric Bail [Thu, 17 May 2018 21:48:26 +0000 (14:48 -0700)]
evas: actually we expect gradient to live as long as the part that is using them.
Cedric Bail [Thu, 17 May 2018 21:08:05 +0000 (14:08 -0700)]
ecore_con: allow for NULL to do nothing.
Cedric Bail [Thu, 17 May 2018 21:07:46 +0000 (14:07 -0700)]
elementary: the config subsystem expect a stringshare.
Cedric Bail [Thu, 17 May 2018 20:44:29 +0000 (13:44 -0700)]
evas: multiple call to evas_object_del are allowed even after the first one succeeded.
Cedric Bail [Thu, 17 May 2018 19:06:44 +0000 (12:06 -0700)]
eo: allow efl_part during object invalidate.
Cedric BAIL [Tue, 15 May 2018 22:37:11 +0000 (15:37 -0700)]
eo: remove parent_sink as this hack should not be necessary anymore.
Cedric BAIL [Tue, 15 May 2018 22:35:48 +0000 (15:35 -0700)]
eo: try to make efl_add and efl_add_ref refcounting sane in all case.
Cedric BAIL [Tue, 15 May 2018 22:34:58 +0000 (15:34 -0700)]
ecore_file: on shutdown properly set to NULL to avoid confusion when cycling init/shutdown.
Cedric BAIL [Tue, 15 May 2018 22:32:14 +0000 (15:32 -0700)]
ecore: allow for NULL file handler request.
Cedric BAIL [Tue, 15 May 2018 22:29:15 +0000 (15:29 -0700)]
elementary: destroy timer as they could tick during shutdown.
Cedric BAIL [Tue, 15 May 2018 21:57:15 +0000 (14:57 -0700)]
elementary: properly destroy block events object during destruction.
Cedric BAIL [Tue, 15 May 2018 21:53:13 +0000 (14:53 -0700)]
evas: do not crash if constructor fail and invalidate is run on a partial object.
Cedric BAIL [Tue, 15 May 2018 20:27:23 +0000 (13:27 -0700)]
eo: improve error reporting to display object pointer (without accessing it).
Cedric BAIL [Tue, 15 May 2018 17:52:12 +0000 (10:52 -0700)]
elementary: cleanup genlist destructor to order content destruction correctly.
Cedric BAIL [Mon, 14 May 2018 23:15:48 +0000 (16:15 -0700)]
evas: make evas_object_free work in case of lost reference to Eo object.
This is clearly a workaround to a bad situation, but there is no case
that I can find that solely lead to object being NULL nor is there any
code that should do that, but still it does in some case...
Cedric BAIL [Mon, 14 May 2018 23:15:05 +0000 (16:15 -0700)]
evas: detect incoherency in object content and report problem.
Cedric BAIL [Mon, 14 May 2018 23:14:30 +0000 (16:14 -0700)]
evas: handle Evas_Object constructor failure case better.
Cedric BAIL [Mon, 14 May 2018 21:54:45 +0000 (14:54 -0700)]
edje: simplify part handling as we are now guaranteed that a part as no parent when reaching the del intercept.
Cedric BAIL [Mon, 14 May 2018 21:47:39 +0000 (14:47 -0700)]
eo: make sure that reporting object refcount during efl_noref, doesn't lead to recursive loop.
Cedric BAIL [Mon, 14 May 2018 21:47:07 +0000 (14:47 -0700)]
eo: add warning in case of a terrible situation happen.
Cedric BAIL [Mon, 14 May 2018 17:11:58 +0000 (10:11 -0700)]
eo: efl_invalidate should also be triggered for object with no parent before the destructor.
Cedric BAIL [Mon, 14 May 2018 17:08:32 +0000 (10:08 -0700)]
ecore: properly cleanup variable on shutdown, so that cycling another init doesn't crash.
Cedric Bail [Sun, 13 May 2018 05:20:04 +0000 (22:20 -0700)]
evas: improve evas child destruction order.
Technically I do not thing it is a correct behavior to force destroy
reference that evas do not hold, but evas_object are deaply tied to
the canvas they are build on and even after invalidate it is hard
to not have function call that would lead to crash. Making the pointer
incorrect thanks to eo indirection seems safer here.
Cedric Bail [Sun, 13 May 2018 05:16:42 +0000 (22:16 -0700)]
evas: do not override lifecycle by overriding efl_parent_set.
Cedric Bail [Sun, 13 May 2018 05:16:09 +0000 (22:16 -0700)]
evas: reindent code properly.
Cedric Bail [Sun, 13 May 2018 05:14:53 +0000 (22:14 -0700)]
eo: actually enforcing the efl_parent_set code path is necessary to enforce the predictability of the code path.
Cedric Bail [Sun, 13 May 2018 05:11:33 +0000 (22:11 -0700)]
eo: as efl_del is not an Eo API call anymore, manually protect call with refcount.
Cedric Bail [Sun, 13 May 2018 05:09:37 +0000 (22:09 -0700)]
eo: update refcount before sending efl_noref event to avoid double update during events propagation.
Cedric Bail [Fri, 11 May 2018 16:28:26 +0000 (09:28 -0700)]
ecore: because fd_handler do not have the main loop as parent, the main loop can die before them.
Cedric Bail [Thu, 10 May 2018 03:01:17 +0000 (20:01 -0700)]
evas: move the del event to match invalidate and free event to the end of the destructor.
Cedric BAIL [Thu, 10 May 2018 23:45:15 +0000 (16:45 -0700)]
elementary: when there is no file listed yet, no need to request them.
Cedric BAIL [Thu, 10 May 2018 23:42:08 +0000 (16:42 -0700)]
eina: make it possible to return an EINA_VALUE_EMPTY by just requesting a new value of type NULL.
Cedric BAIL [Thu, 10 May 2018 23:41:20 +0000 (16:41 -0700)]
eina: check the type before looking at anything else to avoid triggering valgrind warning.
Cedric BAIL [Thu, 10 May 2018 22:37:32 +0000 (15:37 -0700)]
elementary: enforce walk to protect the object existence by using eo refcounting.
Cedric BAIL [Thu, 10 May 2018 22:36:59 +0000 (15:36 -0700)]
elementary: reorder operation to only call efl_parent_set when the object still has a chance to exist.
Cedric BAIL [Thu, 10 May 2018 21:28:04 +0000 (14:28 -0700)]
evas: destructor can not be called recursively, we should rely on Eo refcount.
Cedric Bail [Thu, 10 May 2018 03:07:01 +0000 (20:07 -0700)]
eo: move destruction of the link with children to be always after invalidate.
Cedric Bail [Thu, 10 May 2018 03:03:06 +0000 (20:03 -0700)]
eo: propagate invalidate before destroying the link to the parent.
Cedric Bail [Thu, 10 May 2018 02:58:15 +0000 (19:58 -0700)]
evas: actually we do not even need to NULL it, if we wref it.
Cedric Bail [Thu, 10 May 2018 00:24:01 +0000 (17:24 -0700)]
edje: do not reparent when the object is dead already.
Cedric Bail [Thu, 10 May 2018 00:23:20 +0000 (17:23 -0700)]
eo: improve message for debugging life cycle issues.
Cedric Bail [Wed, 9 May 2018 19:28:26 +0000 (12:28 -0700)]
edje: forgot to propagate invalidate upward.
Lauro Moura [Mon, 7 May 2018 20:35:07 +0000 (17:35 -0300)]
cxx: Fix examples after part changes
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Lauro Moura [Mon, 7 May 2018 20:34:14 +0000 (17:34 -0300)]
examples: Elm: Add dependency on efl.la due to efl_part
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Lauro Moura [Mon, 7 May 2018 20:26:39 +0000 (17:26 -0300)]
efl_mono: Fixes after efl_part/del changes.
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Cedric Bail [Wed, 9 May 2018 01:46:53 +0000 (18:46 -0700)]
ecore_evas: we shouldn't do anything when we are deleted.
Cedric Bail [Wed, 9 May 2018 01:08:57 +0000 (18:08 -0700)]
evas: preserve evas_object_del logic to not really destroy an object until it is fully unref first.
Cedric Bail [Wed, 9 May 2018 00:37:30 +0000 (17:37 -0700)]
evas: enforce legacy parent to be the canvas.
Cedric Bail [Wed, 9 May 2018 00:17:27 +0000 (17:17 -0700)]
elementary: refactor by using elm_legacy_add.
Cedric Bail [Tue, 8 May 2018 23:56:51 +0000 (16:56 -0700)]
evas: add a way to figure out the evas class that should be the real parent for all legacy object.
Cedric BAIL [Mon, 7 May 2018 23:48:10 +0000 (16:48 -0700)]
elementary: make toolbar 'more_item' properly self destruct.
Cedric BAIL [Mon, 7 May 2018 23:12:10 +0000 (16:12 -0700)]
elementary: no need to recalculate the layout during invalidate.
Cedric BAIL [Mon, 7 May 2018 23:04:04 +0000 (16:04 -0700)]
elementary: the pan object of the map object was created with efl_add, adjust accordingly.
Cedric BAIL [Mon, 7 May 2018 22:16:29 +0000 (15:16 -0700)]
elementary: due to lifecycle difference between legacy object and unified object, we need to track their lifecycle more explicitely.
It is my understanding that some items view are created with efl_add directly
and manipulate VIEW directly with Eo new API. This clash with the inconsistent
behavior that evas_object_del expect. To work around this, we track object life
by explictely relying on efl_wref_add while holding the pointer to the object.
Cedric BAIL [Mon, 7 May 2018 17:50:30 +0000 (10:50 -0700)]
eo: efl_del should not be something anyone can override this can break so many things.
Allowing override of efl_del allow for messing with object life cycle which can create
problem for binding where an object was expected to be invalidated, but isn't really.
Cedric BAIL [Mon, 7 May 2018 17:45:15 +0000 (10:45 -0700)]
evas: try to protect old legacy lifecycle without overloading Efl.Del.
Cedric BAIL [Fri, 4 May 2018 23:15:18 +0000 (16:15 -0700)]
eio: properly handle Eio.Model lifecycle inside Elm.Fileselector.
Differential Revision: https://phab.enlightenment.org/D6107
Cedric BAIL [Fri, 4 May 2018 21:52:25 +0000 (14:52 -0700)]
elementary: dayselector use efl_add to create the object, calling efl_del during destructor make no sense.
Differential Revision: https://phab.enlightenment.org/D6106
Cedric BAIL [Fri, 4 May 2018 21:46:51 +0000 (14:46 -0700)]
elementary: no need to check for part during destruction.
Differential Revision: https://phab.enlightenment.org/D6105
Cedric BAIL [Fri, 4 May 2018 21:40:06 +0000 (14:40 -0700)]
elementary: no need for resize an object during destruction.
Differential Revision: https://phab.enlightenment.org/D6104
Cedric BAIL [Fri, 4 May 2018 21:36:14 +0000 (14:36 -0700)]
elementary: colorselector item are created with efl_add, so they are dead when they reach the destructor.
Differential Revision: https://phab.enlightenment.org/D6103
Cedric BAIL [Fri, 4 May 2018 20:00:53 +0000 (13:00 -0700)]
evas: refactor efl_input_event and remove some of the lifecycle hack.
Differential Revision: https://phab.enlightenment.org/D6101
Cedric BAIL [Fri, 4 May 2018 20:00:11 +0000 (13:00 -0700)]
eo: actually during invalidating we already have an invalidated object.
Differential Revision: https://phab.enlightenment.org/D6100
Cedric BAIL [Thu, 3 May 2018 23:43:48 +0000 (16:43 -0700)]
eo: move EFL internal function ___efl_ref2 also to eo_internal.h
Differential Revision: https://phab.enlightenment.org/D6099
Cedric BAIL [Thu, 3 May 2018 23:34:17 +0000 (16:34 -0700)]
efl: major rewrite of efl_part.
The interface efl_part_get should not be directly called from C, but the efl_part
wrapper should. It rely on efl_noref to properly destroy the object. Binding can
control the lifecycle of the reference the way they want by either calling the
wrapper or efl_part_get directly. It also means that the ugly ___efl_auto_unref_set
doesn't need to be exposed outside of EFL anymore.
Differential Revision: https://phab.enlightenment.org/D6098
Cedric BAIL [Thu, 3 May 2018 23:32:11 +0000 (16:32 -0700)]
eo: check for allow_parent_unref during efl_unref and silence warning.
Differential Revision: https://phab.enlightenment.org/D6097
Cedric BAIL [Thu, 3 May 2018 18:37:08 +0000 (11:37 -0700)]
eo: make sure efl_noref is always called at the proper time.
Differential Revision: https://phab.enlightenment.org/D6096
Cedric BAIL [Thu, 3 May 2018 18:36:28 +0000 (11:36 -0700)]
eo: add an automatic fallback at the moment when efl_unref instead of efl_del is called.
Differential Revision: https://phab.enlightenment.org/D6095
Cedric Bail [Wed, 2 May 2018 23:24:44 +0000 (16:24 -0700)]
elementary: object created with efl_add should be destroyed with efl_del.
Differential Revision: https://phab.enlightenment.org/D6094
Cedric Bail [Wed, 2 May 2018 23:24:03 +0000 (16:24 -0700)]
elementary: object allocated with efl_add should be destroyed with efl_del.
Differential Revision: https://phab.enlightenment.org/D6093
Cedric Bail [Wed, 2 May 2018 21:20:00 +0000 (14:20 -0700)]
eldbus: fix unref of eldbus to not throw warning all over the place.
Especially to note, that when giving a message to send, the caller
do not own it anymore and should not unref it.
Differential Revision: https://phab.enlightenment.org/D6092
Cedric Bail [Wed, 2 May 2018 20:44:01 +0000 (13:44 -0700)]
eldbus: manage death of children during invalidate.
Differential Revision: https://phab.enlightenment.org/D6091
Cedric Bail [Wed, 2 May 2018 20:42:52 +0000 (13:42 -0700)]
eldbus: object created with efl_add should be destroyed with efl_del.
Differential Revision: https://phab.enlightenment.org/D6090
Cedric Bail [Wed, 2 May 2018 20:19:35 +0000 (13:19 -0700)]
ecore: first invalidate the loop and its children, then destroy all the object capability.
Differential Revision: https://phab.enlightenment.org/D6089
Cedric BAIL [Tue, 1 May 2018 23:58:29 +0000 (16:58 -0700)]
eo: optimize efl object reuse by limiting the amount of call to pointer translation.
Differential Revision: https://phab.enlightenment.org/D6088
Cedric BAIL [Tue, 1 May 2018 23:37:59 +0000 (16:37 -0700)]
edje: properly handle lifecycle of edje global object.x
Differential Revision: https://phab.enlightenment.org/D6087
Cedric BAIL [Tue, 1 May 2018 23:27:46 +0000 (16:27 -0700)]
eo: prevent parenting to an already invalidated parent.
Differential Revision: https://phab.enlightenment.org/D6086