This API require more review, I have just fixed API that return type that are
inconsistent over time and fail to allow for proper lifecycle of event, which
lead to crash when those event trigger at unexpected point.
Differential Revision: https://phab.enlightenment.org/D6102
This reverts commit 2fb5cc3ad0.
Most of this change where wrong as they didn't affect the destruction
of the object. efl_add_ref allow for manual handling of the lifecycle
of the object and make sure it is still alive during destructor. efl_add
will not allow you to access an object after invalidate also efl.parent.get
will always return NULL once the object is invalidated.
Differential Revision: https://phab.enlightenment.org/D6062
When there is a redirect there is no need to adjust the focus property
based on a unregister, so just continue and cleanup the history. When
the redirect is unset the focus is restored.
fix T6908
This is much more extensive than before and we are now
testing both tree and group items.
This test has been run in 9 stable releases down to 1.12
the only one that fail is 1.18 that is know to be broken
wrt item iteration.
Hopefully definitly close T5938
Summary:
this is especially problematic for elm tests as the fork reset callback
in efreet will cause a huge number of server connections to be created
ref T6864
Depends on D5966
Reviewers: stefan_schmidt
Reviewed By: stefan_schmidt
Subscribers: cedric
Maniphest Tasks: T6864
Differential Revision: https://phab.enlightenment.org/D5967
Summary:
this avoids the creation of a new win object for each test
ref T6864
Reviewers: stefan_schmidt, cedric
Reviewed By: cedric
Subscribers: cedric
Maniphest Tasks: T6864
Differential Revision: https://phab.enlightenment.org/D5965
Summary:
init is only called here to verify the refcount, shutdown is only necessary
when not forking in order to preserve the environment
ref T6864
Reviewers: stefan_schmidt
Subscribers: cedric
Maniphest Tasks: T6864
Differential Revision: https://phab.enlightenment.org/D5958
This changes a lot of things all across the EFL. Previously,
methods tagged @const had both their external prototype and
internal impl generated with const on object, while property
getters only had const on the external API. This is now changed
and it all has const everywhere.
Ref T6859.
Summary:
opening the default theme file can take up to 0.2s in worst case during
a test
ref T6864
Depends on D5914
Reviewers: stefan_schmidt
Reviewed By: stefan_schmidt
Subscribers: cedric
Maniphest Tasks: T6864
Differential Revision: https://phab.enlightenment.org/D5915
Summary:
check whether init+shutdown work explicitly before proceeding to other
tests
Depends on D5913
Reviewers: stefan_schmidt
Reviewed By: stefan_schmidt
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5914
Looks like a copy and paste left over from another test.
../../../src/tests/elementary/elm_test_genlist.c:58:16: warning: unused variable ‘type’ [-Wunused-variable]
individual tests should not need to explicitly call init/shutdown functions
in most cases, and many did not properly do this anyway
see followup commit which resolves some issues with eina tests
ref T6813
ref T6811
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
efl_check.h must be included and the EFL_START/END_TEST macros must be
used in place of normal START/END_TEST macros
timing is enabled when TIMING_ENABLED is set
https://phab.enlightenment.org/w/improve_tests/
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
the comment here indicates that the author knew it was an invalid api use
so it should not have been here in the first place
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Summary:
If a file path and key string was passed to elm_bg, we could get
the same file path and key string. Even if it failed to load the image file.
And the file path also remained its original form.
ex) Setting file path "~/image.png" => Getting file path "~/image.png"
(Not "/home/user_name/image.png")
@fix
Test Plan: Included in elementary test suite.
Reviewers: jpeg, cedric, raster
Reviewed By: cedric
Subscribers: woohyun
Differential Revision: https://phab.enlightenment.org/D5823
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
so this is then inconsistent with efl.exe and efl.thread, so go back
to being normal with 0'th arg being the binary itself jsut to make
sure we have conistent usage.
so the MAIN loop is actually an efl.app object. which inherits from
efl.loop. the idea is that other loops in threads will not be efl.app
objects. thread on the creator side return an efl.thread object.
inside the thread, like the mainloop, there is now an efl.appthread
object that is for all non-main-loop threads.
every thread (main loop or child) when it spawns a thread is the
parent. there are i/o pipes from parnet to child and back. so parents
are generally expected to, if they want to talk to child thread, so
use the efl.io interfaces on efl.thread, and the main loop's elf.app
class allows you to talk to stdio back to the parent process like the
efl.appthread does the same using the efl.io interfaces to talk to its
parent app or appthread. it's symmetrical
no tests here - sure. i have been holding off on tests until things
settle. that's why i haven't done them yet. those will come back in a
subsequent commit
for really quick examples on using this see:
https://phab.enlightenment.org/F2983118https://phab.enlightenment.org/F2983142
they are just my test code for this.
Please see this design document:
https://phab.enlightenment.org/w/efl-loops-threads/
This reverts commit 135154303b.
Revert "efl: move signal events from efl.loop to efl.app"
This reverts commit 3dbca39f98.
Revert "efl: add test suite for efl_app"
This reverts commit 3e94be5d73.
Revert "efl: create Efl.App class, the parent of Efl.Loop"
This reverts commit 28fe00b94e.
Go back to before efl.app because I think this should be done with
superclassing here not a parent object. reasons?
1. multiple loops per single thread make no sense. so if multilpe loop
objects they wont be contained in a single app object and then deleted
like this.
2. the app object is not really sharable in this design so it cant be
accessed from other threads
3. it makes it harder to get the main loop or app object (well 2 func
calls one calling the other and more typing. it is longer to type and
more work where it is not necessary, and again it can't work from
other threads unless we go duplicating efl.app per thread and then
what is the point of splittyign out the signal events from efl.loop
then?)
etc.
this class is a giant FIXME for anyone looking to do refactoring work.
the only reason it seems to exist is to provide wrappers around
efl.gfx functions and provide screen position adjustments--something
which isn't even viable under wayland
note that a test was removed here due to the corresponding method being
removed
Summary:
For example, the widget type of elm_button was "Elm_Button".
But, the object which is created by elm_button_add() will
return its widget type "Efl.Ui.Button_Legacy".
It is not legacy name. It should be fixed to return "Elm_Button".
I don't know when but eolian start to make class name with ".".
So, it should be converted to "_" for all widgets.
@fix
Test Plan:
All test cases are included in this patch.
Run "make check"
Reviewers: raster, cedric, jpeg, taxi2se
Reviewed By: cedric
Subscribers: taxi2se, woohyun
Differential Revision: https://phab.enlightenment.org/D5782
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
focus_user and focus_object are similar classes. by merging them into
one mixin, we can maintain consistency.
Test Plan: make check
Reviewers: bu5hm4n
Subscribers: cedric, Jaehyun_Cho, woohyun, jpeg
Differential Revision: https://phab.enlightenment.org/D5734
The new calculation mechanism does not only look into the exact
directions up,right,down,left of a node, it also now checks the sectors,
bound by: x < node.x, x > node.max_x, y < node.y, y > node.max_y.
ref T6453
Summary:
Added some guards to avoid redefinition of functions.
Partially fixes T5866, as there is still the question whether we should
test internal functions or not, as stated by jpeg in the comments.
Reviewers: vtorri, felipealmeida, jpeg, cedric
Reviewed By: cedric
Subscribers: jenkins, cedric
Maniphest Tasks: T5866
Differential Revision: https://phab.enlightenment.org/D5521
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
elementary_config.h should not even exist. It's been hijacked as a
private header for elementary, but all "real" configuration is stored in
efl's main config.h now.
If you call focus_set(m, o) where o is a logical child, then the focus
will go to any none logical child of o, or if there is nothing in the
children of o, then the focus will remain on the now focused element.
It's a complex struct but defined in EO as a simple struct. ABI-wise
it's equivalent to Eina_Rectangle. Some macros that use Eina_Rectangle
also work on Eina_Rect out of the box, most of the code dealing with
x,y,w,h will require no modifications either.
But Eina_Rect provides direct access to a size or position 2d component,
as well as the usual x,y,w,h. The field "rect" is provided as a
convenience for code dealing with both Eina_Rectangle and Eina_Rect. We
may or may not require it.
Note: Size2D could use unsigned values but I have spotted a few places
in the code that actually use -1 to indicate invalid size (as opposed to
0x0).
@feature
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
Some names have not been changed, hopefully making a distinction
between legacy APIs and internal code (elm_layout_blah) and valid EO
usages.
This means many internal functions are still elm_layout_ as their
sole purpose is to support the legacy API.
Ref T5315