Eina_Error is not passed by pointer anymore, which could cause invalid
pointer access in promise compositions (all and race).
Also added Eina_Promise* to prototypes.
This adds an API function that can be called to calibrate input
devices based on a given output size
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch removes an API function that basically "tried to do too
much". This was supposed to be used for centering mouse pointer and
calibrating an input device based on output size. Remove this
silliness. It would be better to have one API for calibrating, and a
separate API for pointer centering. These new APIs will come shortly
in pending patches.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
As we use the mouse threshold for determining double/triple clicking,
it would probably be a good idea if that threshold had a value
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This touches Edje and also Elementary where part names are used.
This commit blew up in size since now all content part APIs
(get, set, unset) require to use Efl.Part instead.
This is a big refactoring commit, but no logic should
have been changed. Fingers crossed.
An unknown crash happened in glDrawArrays() where color_ptr is
a non-reachable pointer that looks like a valid malloc() zone.
Unreproducible issue. I can only hope this patch doesn't actually
break anything.
This cleans up rectangle and line in particular, that were not
using common code to use GLPIPES. I honestly couldn't find a
problem though.
Summary:
In on_focus_region function,
entry returns relative x,y position from edje object.
It should be calculated from elm object's position.
@fix
Test Plan:
1. $elementary_test "Entry on Page Scroll"
2. click under button
3. click upper text in entry
4. page should not be scrolled
Reviewers: tasn, cedric, woohyun, Hermet, herdsman, raster
Subscribers: Blackmole, id213sin, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3923
conformant set api give information to enlighten ment, this window
need to know the change of conformant size.
but in the future, window have to section background and forground.
if user set layout as content of background part, the layout size is
not changed by clipborad or keybord.
if user set layout as content of forground part of window, the layout size
is changed by clipboard or keyboard state.
and the window notify to the enlightenment it has interest soft input's state
automatically, without users api call
accidentally snukc in commented disables in test suite as i was
hunting why eina test suite crashes while dealing with feedback on my
compare fixes etc.
The legacy Eio_File factory functions are replaced by an Eo object
called Eo_Job that return promises wrapping the async file operations.
With this commit, the legacy Eio callbacks are replaced by the following
Eo/Promises counterparts :
* Done_Cb -> Promise then success callback
* Error_Cb -> Promise then error callback
* Main_Cb -> Promise progress callback
* Filter_Cb -> Job object event (more below)
Events are used to deliver and get the filter data. To differentiate
between the named and direct versions, they come in "filter,direct" and
"filter,name" versions.
Monitors were wrapped inside a new class Eo_Sentry.
The user creates a sentry object and adds monitoring targets to it,
listening to events on it.
The sentry event info is composed of two strings. The source string
is the path being monitored, i.e. the one passed to eio_sentry_add, and
the trigger string is the path that actually triggered the event, e.g.
a new file created in a monitored directory.
The Eio functions operating on Eina_Files were just freeing
the Eio_File pointer on completion instead of calling eio_file_free
to unregister the thread.
this fixes T3638
@fix
a note... thanks so much to aerodynamik for spotting this. i'm rather
surprised coverity didn't spot this... unless someone said to "shut up
coverity you're wrong" and they should not have.
i also might have expected compilers to spot this too... and add a
warning.
anyway ... this was a seriously subtle bug that could have caused all
kinds of havoc in efl. keys that are different may be compared to be
the same. it could get ordering wrong and sorting thus maybe insert
keys that cannot be found anymore and oh so much more besides.
"seat0" is used as the default internal name, and this is a physical name.
using the logical name causes mismatches and allows devices to function
in unintended ways
'window' and pointer max w/h attributes are set for a manager object,
so let the attributes stay there. this also resolves issues where devices
created at a later point would fail to be initialized with these attributes
this adds an overly-complex method of removing blocking dbus calls from libinput's
synchronous device initialization architecture. libinput was clearly never meant
to be used in this way, but we're doing it anyway because we're efl.
#SamsungFeatures
This problem was that because the refcount is now shared between the
parent and the programmer in some cases we would get a double unref. An
example way of triggering it is creating a button and putting it in a
box. The box has a callback registered that when the button is deleted
it would delete itself too. The problem is that the delete callback is
called the button is removed from the box thus causing the box to unref
it again (because of the parent), although the refcount was already
accounted for.
There is another more convoluted scenario that I have yet to fix.
Thanks to raster for reporting.
This commit adds an API function which Enlightenment can call in order
to set an input device to be "left-handed". Mainly used for a mouse
pointer, but not specific to pointers.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This should now fix the part API usage once and for all.
EFL should have no part name in any of its APIs beyond
the Efl.Part interface.
Part proxy objects (may be real objects) have a lifetime
of only one function call, in a fashion similar to eo_super.
@feature
Summary:
genlist text_get and content_get send signal for visibled or re-arrange
it's part on edc.
this singal may need to be processed before calculating item edc for
proper result.
we cannot call one only one time in realized function, because, size
must calculated before the realized callback, and user can send
customized signal in their realized callback which also need to be
processed.
Signed-off-by: SangHyeon Lee <sh10233.lee@samsung.com>
so... i got this ... callback calls callback calls something calls
callback that deletes the original object at the top so when it comes
back ... things die as the object was destructed. in removing eo_do()
we removed the ref/unrefs that went with it. so this uses the
_EO_API_BEFORE_HOOK and _EO_API_AFTER_HOOK to call exposed "internal"
public functions _eo_real_ref() and _eo_real_unref().
this fixes a new segv i've noticed in several e dialogs where hitting
close does the above via callbacks and closes the window etc.
sothe ecore-con tests were calling ecore_con_server_connected_get()
every time a server was created on a NUL server object. WTF? this is
pointless. testing if an api returns tre on being connected on an
invalid object? all it does is create lots of eo noise. remove so we
can see the real errors in the output.
@fix
Summary:
this removes the cares/ares based resolver and the compiled-in dns.c
resolver, modified the getaddrinfo based resolver to use threads not
forking (almost halving its size) and now makes that the only resolver
we have. getaddrinfo handles ipv6 and ipv4 (according to docs). this
simplifies code paths, drops code size of the efl tree by about 11k
lines of code, makes it easier to test and more robust to future
changes with ip resolving as it now just relies on libc. we won't have
coverity complaints on dns.c imported code anymore to fix and don't
have tokeep up with bugfixes/security from the upstream imported code.
this means we use a single resolver on all platforms (windows, mac,
linux) as opposed to before where cares was used for windows, and
dns.c on linux/mac. oh and the forking original was broken since our
move to eo too. so it couldnt even compile if enabled, letalone work.
so fix bug with missing /etc/resolv.conf that dns.c couldn't cope
with, fix testability, fix maintainability and reduce efl codebase size.
this fixes T3668
@fix
@improve
Subscribers: cedric, seoz, jpeg
Maniphest Tasks: T3668
Differential Revision: https://phab.enlightenment.org/D3971
I thought I compiled, but it seems that @q66 managed to distract
me and I thought wrong and didn't actually. Oh well, fixed now.
Thanks to @zmike for letting me know.
Complex types (i.e. list, array, hash, accessor etc.) now do not require
pointers with them anymore (the pointer is implied) and the same goes for
class handles. Eolian now explicitly disallows creating pointers to these
as well. This is the first part of the work to remove pointers from Eolian
completely, with the goal of simplifying the DSL (higher level) and therefore
making it easier for bindings (as well as easier API usage).
@feature
Summary:
comp.h is redefining some macros on Windows. So just rename all the macros
with the TANGO prefix
Test Plan: compilatioN
Reviewers: cedric, jpeg, zmike
Differential Revision: https://phab.enlightenment.org/D3968
rthis replaces double a == double b with a macro that keeps a close
enough range using epsilon (which is the error range for a dobule).
this fixes T3245
Fixes missing app icons (and others) when using elementary icon theme.
This is required to comply with the fdo icon spec.
Now that we have a fuller icon theme in elementary it's not intrusive
DMABuf buffers destroy their glimage in the unbind callback, so it's
usually already gone for the free callback.
Now we test if we actually need to destroy anything.
Also, switch to GLERRV macro for error reporting - it saves us the heavy
eglGetError() unless we've built it in intentionally.
We should be checking the return value when we try to get the default
matrix calibration for an input device so we can fail properly
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
As constraints for pointer movement are already handled in the
function which sends the pointer motion event, there is no need to
handle them inside the function which gets pointer position.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Apparently you can't cast when initializing static consts, even if
the cast is to the same type. This commit splits the macro used
so we have an additional one that casts and thus works with
eo_override().
i've been gettign persistent evas test suite suite failures ffor a
while. annoying as i can't get 100% pass anymore. it's due to segv's
in evas test suite thanks to chunks of uninitialized memory in the
mesh loaders/saver code.
this fixes that
@fix
this should fix T3245
this is basicall where we go double a == double b and due to precision
issues this may not always be right, but this means that the
equivalent now checks for "really close values" rather than perfectly
exact.
@fix
This change lets you override the functions of objects so that those
functions will be called instead of the functions of the class. This
lets you change objects on the fly and makes using the delegate pattern
easier (no need to create a class every time anymore).
You can see the newly added tests (in this commit) for usage examples.
@feature
This adds env var EOLIAN_PROPERTY_DOC_WARN which enables extra
warnings for properties that don't have a general doc but have
getter/setter doc. This will eventually become an error and
will be enabled by default. For now it's too verbose.
Summary: let me know whats your thought
Reviewers: Hermet, cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3893
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
EXTERNAL parts can have parameters, and its form is like the next.
params.string: "param_name" "param_value";
This patch will shorten above line by the next syntax.
params.param_name: "param_value";
The type of param will be determined by the type of inserted value.
Reviewers: cedric, raster, Hermet
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3958
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
There are couple of issue.
By adding the gradient to both parent container as well as to the shape. when we dupe the container it copies twice.
Usually we create one gradient and set it to multiple shape , in that case when we call dupe() function it is going to make a separate copy for each of the shape.
The patch fixes 1st issue. for 2nd one we need to maybe change the way we implemented dupe function
Reviewers: Hermet, cedric
Reviewed By: cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3961
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
In commit 75a53ece10 obj was changed to object.
As one can claerly see though make examples have not been run to verify this
change. Catch up in examples with this rename.
Commit 3faf3f3fc converted an eo_do() into two functions.
However the eo_do() was implicitely enclosed within an if,
which after conversion led to the if coverting only one
of these functions instead of both.
Pointed out by GCC's -Wmisleading-indentation.
Ecore_Wayland is deprecated for 1.18 so this should have been removed
during that commit. Fell through the cracks sadly
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Summary:
There are no methods to close the popup with key down.
So I added the escape key binding to close the popup with escape key.
Test Plan:
1. patch this code
2. delete /home/{user}/.elementary to refresh the config value
3. launch elementary_test -to "popup"
4. click one example of the list and press escape key
5. see closing the popup
Reviewers: cedric, raster, jpeg, Jaehyun_Cho, Hermet
Reviewed By: Hermet
Differential Revision: https://phab.enlightenment.org/D3876
Conflicts:
src/lib/elementary/elm_priv.h
Summary:
Avoid SIGSEV in elm_index_item_sorted_insert when cmp_data_func returns >=0
After deleting eo_item and making it NULL in above case, view(it) is created which resulted in crash.
Test Plan: elementary_test -to 'index 2'
Reviewers: singh.amitesh, jpeg, cedric, raster, Hermet
Reviewed By: Hermet
Subscribers: Hermet
Differential Revision: https://phab.enlightenment.org/D3956
Summary:
In inline function _elm_list_item_free, null check is performed
after accessing its member.
@fix
Reviewers: cedric, Hermet
Reviewed By: Hermet
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3955
Previously events used to use class name as a prefix and ignored eo_prefix
when specified. This is no longer the case. Events follow eo_prefix by default
now. In order to get around this for classes where this is undesirable, a new
field event_prefix was added which takes priority over eo_prefix. If neither
is specified, class name is used like previously.
@feature
We used to have eo_del() as the mirrored action to eo_add(). No longer,
now you just always eo_unref() to delete an object. This change makes it
so the reference of the parent is shared with the reference the
programmer has. So eo_parent_set(obj, NULL) can free an object, and so
does eo_unref() (even if there is a parent).
This means Eo no longer complains if you have a parent during deletion.