see the comments above the test explaining why it's removed (libc
fails, not eina and having our tests fail because eina is a bit more
robust than libc is not a sane thing to have). but here is the comment
for git history spelunking:
this test isn't viable because libc actually fails the conversion (testing
glibc 2.28 on arch linux). either libc doesn't like the space at the start
thus doesn't skip it but assumes END of numbver string thus not converting
and returning NULL, or it doesn't like InFiNiTyfoo in some way, but either
way this test shows eina to be more robust and do some kind of conversion
and libc to fail and return NULL from strtod into the string pointer. it
also doesnt return an infinite fp thus hitting the default: case and thus
failing etc. ... so all in all remove the test as all it does it cause
failures and if anything shows libc to be failing more than eina.
@fix
windows means HAVE_FORK is false... thus missing eina.h and now we
have macros that use eina calls always... so this fixes nbuild of
tests on windows
@fix
so this test fails on windows as getuid isn't there... so this fixes
the windows bild: fix T7728 ... but it also would have failed if $HOME
didn't match what was in the passwd file, and other fallback cases if
they were triggered.
but ... to make this test stay it would have to also change the logic
- check $HOME env first, then pwent entry, if that fails /tmp/UID and
if that fails use /tmp ... the test would effectively be a copy &
paste of the vpath code at which point this is really pointless where
testing is copying the exact (or almost exat) same code into the test.
this is ignoring the #ifdef fun of martching ifdefs that vary on
windows.
the problem is this kind of api is defined very much by the system it
runs on and the environment and situation, so the test has to be as
complex. realistically, instead of copying & pasting the code across
and now having 2 bits of code to possibly mantain (change the lib src
then the test needs changes too as it's a copy & paste), it's just
saner not to have a test for this kind of siutation and accept the
reality of the situation.
@fix
Actually with directory that contain a lot of file and the right order for them,
you would end up getting what you are looking for before you have triggered all
the future callback. In that case, all the future callback are cancelled and
we will get that notification. The test is not failing in this case as we already
got what we wanted.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8541
Summary:
Rework general event handling to check individually each event call, if the
object is not alive then the event will not be propagated.
WeakReferences (and lambdas capturing those WeakRefs) are used to ensure this.
Dispose methods in object now take care of checking if efl libraries are still
initialized and thread-safely unregister each event before performing an
efl_unref on the Eo object.
Event handling in C# is now centered around a single dictionary inside the
object: `EoEvents`.
C# event triggers now properly trigger events on C too.
Standardize C# event-triggering methods names (remove underscores).
Some diminished use of static memory due events no longer requiring static key
objects to be registered/unregistered.
Some fixing of white space generation for generated events.
Depends on D8431
Reviewers: lauromoura, felipealmeida, segfaultxavi
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8564
Summary:
This commit mainly fixes errors caused by deallocating resources in the garbage
collector thread. Using `ecore_main_loop_thread_safe_call_async` to queue
resource deallocation in the main thread seems to solve it.
Also, some `efl_ref` calls are added in places they were missing, mainly
objects that unref in the destructor thus taking ownership if efl_ref is not
called.
Also fix improper resource deallocation in tests that were causing it to crash,
enabling it to call Efl.All.Shutdown again. This allocation and the deallocation
process was moved from the Eo class constructor to static class methods that are
called in the test 'set up' and 'tear down' methods.
Queuing resource deallocation in the main thread make it mandatory that tests
call `Efl.App.AppMain.Iterate()` if they want to check proper resource
deallocation (like TestFunctionPointers.set_callback_inherited_called_from_c).
Extras:
Remove duplicated declaration of 'eflcustomexportsmono' in meson in order to fix
some linking problems.
Remove some unused code around deallocation functions that had to be reworked.
Object allocation is now supplied with the call site information it expects
(file name and line for _efl_add_start).
Depends on D8550
Test Plan: meson test
Reviewers: felipealmeida, lauromoura, cedric, segfaultxavi
Reviewed By: lauromoura
Subscribers: segfaultxavi
Tags: #efl_language_bindings, #do_not_merge
Differential Revision: https://phab.enlightenment.org/D8431
Summary:
Abstract Eo classes are now proper C# abstract classes.
As a side effect, returning Eo instances from native code was reworked
to return instances of their actual Eo classes instead of previous
behavior of returning a generic Efl.Object and using static_cast.
Instead of `var window = Efl.Ui.Win.static_cast(widget.GetParent());`
Use `var window = widget.GetParent() as Efl.Ui.Win;`
Another side effect was that `efl_constructor` was removed from the list
of supported `Efl.Object` overrides. It is invoked inside
`efl_add_internal_start`, before the bindings makes the association of
the newly created EoId with the C# instance that created it, making the
managed delegate meaningless. C# users then can use regular C#
constructors to initialize fields.
Also changed to set the private data of C#-inherited classes before the
call to constructing methods (aka constructor parameters) so C# classes
can override them correctly.
Fixes T7778
Fixes T7757
Reviewers: vitor.sousa, felipealmeida, segfaultxavi
Reviewed By: vitor.sousa, segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7778, T7757, T7702
Differential Revision: https://phab.enlightenment.org/D8550
Summary:
edje_cc calls epp, so we should not only add edje_cc to the depends on
target, but rather also ensure that epp is availble. Additionally, this
removes unneccessary depends on declarations when we do cross compile.
Depends on D8561
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8562
Summary:
When I add "efl_event_callback_add(btn, EFL_GFX_ENTITY_EVENT_VISIBILITY_CHANGED, _cb, NULL)",
_cb is not called. Because of callback_mask is not set correctly.
Test Plan: unit test
Reviewers: zmike, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8528
Summary:
this test fails on travis, for the sake of the release we continue
without this tests, after the release we can enable this again with or
without failing tests.
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8538
Summary:
sometimes it is not enough to just disable aborting on critical error
messages. Sometimes it is better to explicitly expect an error, and fail
the testcase if there is no error.
This is used in later commits here.
Depends on D8417
Reviewers: YOhoho, segfaultxavi, zmike, woohyun, Jaehyun_Cho
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8519
Summary:
log level=2 is the warning level, which is not super useful since
there's currently billions of eo warnings occuring in every function
call
Reviewers: cedric, segfaultxavi
Reviewed By: cedric, segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8515
the problem with the previous implementation (just redirect the calls to
the widget_parent then to the efl_parent is that after invalidate its
impossible to find the window where the widget is in. However, there are
cases where we want to have access to the window of the widget, for
example, to invalidate focus highlight etc..
The window of a widget is always constant, and cannot be changed (as the
evas object cannot hop accross different evas)
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8475
before the refactoring of the disabled property, there was no way to
enable a widget which has a disabled tree. This here however enables
this to work again like this. The user will be told with an error
message. The integraty of the property is maintained accross reparents.
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8459
this just adds more coverage over the behaviour of efl_ui_widget
properties.
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8458
when a mouse cursor is over a slider, the mouse wheel should be used to
affect the state of the slider, not also the one of the slider.
ref T2529
Reviewed-by: Bowon Ryu <bowon.ryu@samsung.com>
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8455
The test was not expecting both callback to be set when the wait loop
was started. By moving them around, it fixes the test case to only have
one relevant callback set at a time.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8490
so after a phone call, two days of debugging, tears, crying etc. etc. we
finally came to a point of enlightenment! *Someone* (bu5hm4n) moved
gengrid and genlist events from eo back to smart events, so we can work
arround legacy borks and event-name collisions, at this point he did not
knew that some widgets (fileselector) already relied on those *lovely*
events. Hence this broke theoretically the testsuite, however, the
fileselector testsuite is ultimatily buggy, and the wait function does
not return false when it timeouts, (i don't know why not). So this break
was never discovered.
Additionally there is a second issue. it appears, that when we
immidiatly quit the mainloop after we have got the selected callback,
that then genlist decides to forget about the sd->selected pointer, and
NULLs that one out. Which then results in the fact that
elm_fileselector_selected_get ends up returning invalid paths.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8488
Summary:
behaviors of elm_entry has been changed
so that this patch provides usages to keep as a test case.
Reviewers: zmike, Hermet, YOhoho
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8483
Summary:
Before b3327c761e, -1 was returned on`elm_win_rotation_get`, if `obj` is NULL.
This fixes backward compatibility.
Test Plan: make check
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8474
this crashes immediately and showcases the current infinite recursion issue
in elm_entry which is triggered by clicking any entry for $longpress_timeout
ref T7202
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8440
in very specific cases it's necessary to match the exact timing of
internal functionality, so add a function to provide that capability
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8439
elm_win has some internal locking to avoid doing sizing and visibility
changes until pre-render to save some calculations. this makes triggering
ui events on objects impossible, as they will not be visible.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8438
Add test cases for efl_access_object_reading_info_type_set and efl_access_object_reading_info_type_get
APIs
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8427
Summary:
Conforming to C# coding conventions.
For properties, now we only generate a wrapper if its name does not
clash with the name of the class that would be implementing it.
Fixes T7751
Reviewers: vitor.sousa, felipealmeida, segfaultxavi
Reviewed By: vitor.sousa, segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7751
Differential Revision: https://phab.enlightenment.org/D8397
Summary: Event payload checking is more strict now.
Test Plan: Check that master can be built
Reviewers: lauromoura, q66
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8437
Conflictings events won't be allowed anymore on eolian-based classes.
For manually subclassed C# classes that eventually have conflicts, this
should be dealt with in T7744.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8426
Add attribute_del API, currently there is no provision to delete a particular attribute(key-value pair)
from the attribute list of a widget.
Add test cases for efl_access_attribute_append, efl_access_attributes_get, efl_access_attribute_del and efl_access_attributes_clear API
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Shinwoo Kim <cinoo.kim@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8386
Summary:
Since we're now going to be shipping some eo classes as stable,
there is no point in keeping the eo api behind a macro, and it
should be enabled by default. Another case is beta classes, but
those are behind the EFL_BETA_API_SUPPORT guard.
This also changes includes around the place where things are
clearly broken (such as an included header needing something
from another header but that other header being guarded, notably
efl_ui_widget.h needing focus manager but focus manager being
behind beta in Elementary.h)
Reviewers: zmike, cedric, bu5hm4n, stefan_schmidt, segfaultxavi
Reviewed By: cedric, segfaultxavi
Subscribers: segfaultxavi, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8322
Summary:
This patch prevent that event_freeze_count is greater than 1 in
`evas_object_freeze_events_set`
Test Plan: make check
Reviewers: bu5hm4n, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8325
Summary:
The `GetEflClassStatic` method for interface is in their Concrete
sidekick.
Previously, passing a valid Eo interface as a type caused the binding to
complain that `Type is not an Efl.Object`.
Test Plan: run test case
Reviewers: vitor.sousa, felipealmeida
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8360
Summary:
we should check if the header actaully compiles without the beta
defines.
Depends on D8342
Reviewers: zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8343
It seems that theme_apply in sub_object_add haven't worked since commit
f6fa1ef612.
scale, theme property will be set properly when the parent is changed.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8283
This reverts commit 0e027980f6.
Since D7888 breaks the backward compatibility, D7888 is going to be
reverted. This patch is based on D7888 so this patch is also required to
be reverted for now.
After a proper patch is applied instead of D7888, then this patch can be
submitted again.
It seems that theme_apply in sub_object_add haven't worked since commit
f6fa1ef612.
scale, theme property will be set properly when the parent is changed.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8283