Summary: this is an internal function which is never used
Reviewers: cedric
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9205
i saw a segv on freeing em->msg as it was a junk ptr... i dont know
for sure it msg was properly initted but as em is recycled from trash
be sure and zero it when digging out of trash because em->msg was not
a valid ptr (and i wasnt using valgrind at the time to know for sure
and cant find this with valgrind now).
@fix
Some docs have been filled with placeholder text ("TBD") or with preliminary
text (marked with //TODO).
Having 0 doc warning we can now enable Warnings as Errors in mono, and in Eolian later on.
613e1715be (and friends) added a bit a
biug where messages in the queue were not skipped as they were before
causing a segv witha null lookup. this fixes that. eclipse about
dialog showed this bug up. no longer happens now.
more optimizations for edje messages to avoid excess alloc and frees
if we have some trash around... since messages already have list
nodes, re-use the main list node for storing trash and not eina trash
as this avoids extra allocs for trash nodes.
so to process a single obj we added a lot of mesgs to the message
queueue only then to wak most and SKIP most msgs again and again -
when this adds up to 1000's of messages and 10k+ then literally moving
a window in e hangs for multiple seconds and we walk such lists in On2
like complexity. this gets it down to O(1) along with some other minor
optimizations of not adding to tmp list only then to add them to the
nex queue/list.
there is more i can optimize here as well now we track messages for an
edje in th edje. that's next.
using regular lists means we double our indirect ptr jumps and
fragment ram more - this is step one in improving performance of
message handling in some nasty corner cases i have found. first this
so it can be identified as an issue on its own if it is one. i've
tested it and it seems ok. so this si stage 1.
Summary:
this is the only way to determine whether a part is invalid, so it should
be usable without triggering errors
@fix
Depends on D8948
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8949
Summary:
if a part changes its type, verify that the new type is compatible AND
exists before attempting to re-set the previous state, otherwise take
action and print warning
@fix
Depends on D8947
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8948
Summary:
in the case where the clipper being set was an indirect object, it's necessary
to resolve the lookup for that part and use the actual part object to avoid
setting a placeholder rect as the clipper
@fix
Depends on D8850
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8851
This has been deprecated for a while and is not strictly necessary
- as a part of an effort to stabilize Eolian, remove this. Eolian
will eventually gain support for versioning and use a reversed
behavior (i.e. no NULL by default), but the API it wlll use for
that will be very different. Features can always be added, it's
much harder to drop them.
@feature
Summary:
This clarifies a bit the whole Orientation vs. Direction confusion, at the
expense of longer names (Image_Orientation vs. Layout_Orientation).
Also, the interfaces are now adjectives (Orientable) and the enums have long
names (*_Orientation).
Pretty big patch, but no functional changes.
Relates to T7863
Test Plan:
Everything builds and passes tests.
Elementary_tests show same behavior, including the "inverted" widgets, which
are the only parts which received a bit of code changes.
Proof:
https://travis-ci.org/Enlightenment/efl/builds/536277282
Reviewers: zmike, bu5hm4n, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8946
there were some corrupted pair of group scopes,
Edje class size, text were under the both Edje Object and Edje Part
Edje Communication Interface Message, Edje Perspective were wrongly same.
Swallow, Box, Tabe were under the Edje Text Part.
This fixes all of them.
Summary: Previous @since tags have already been removed from eo files.
Test Plan: Everything builds, but stable classes now have Since tags in the docs.
Reviewers: zmike, bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8446
Summary:
All legacy @since tags have already moved to the *.legacy.h files.
EO files are now devoid of @since tags (except some eldbus still
needed for legacy).
Upcoming patches will add @since 1.22 to those APIs which come out
of beta in this release.
APIs marked @beta do not need @since tags.
Test Plan: Everything builds, EO docs (like DocFX) have no Since tags.
Reviewers: zmike, bu5hm4n, lauromoura, cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8430
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 is done because .eo files are not stable, and in order to stop
people depending on it, its better for now to disable the installation
of them for now.
ref T7676
Reviewers: stefan_schmidt, cedric, zmike, devilhorns
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7676
Differential Revision: https://phab.enlightenment.org/D7897
Summary:
This commit changes the beta ness of a few types, those types are
looking quite stable. Edje types will likely not change. The
Efl.Gfx.Join types are actaully already stable since the last release,
since evas_vg was stable back then and those enums have been in there.
The elementary stuff looks a bit unthought, and we have the chance to
change the API in the backend, so maybe we want to not declare it
stable, but rather reintroduce the legacy types.
With this we can enable eolian generation of beta tags for types.
ref T7726
Depends on D8276
Reviewers: cedric, segfaultxavi, zmike, stefan_schmidt, q66
Reviewed By: segfaultxavi, q66
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7726
Differential Revision: https://phab.enlightenment.org/D8277
Summary:
these are all types that we do not currently want to release
Depends on D8102
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric
Tags: #efl_api
Differential Revision: https://phab.enlightenment.org/D8241
Summary:
This event can just be renamed, no need to handle legacy. The reason for
this, that this event is used to map to EVAS_CALLBACK_ enum fields,
which means, the legacy names of the event does not matter.
ref T7476
Reviewers: cedric, segfaultxavi, zmike, stefan_schmidt
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7476
Differential Revision: https://phab.enlightenment.org/D8242
Summary:
The edje_part_recalc calculates next postion(p3).
Please refer to following line.
p3->final.y = INTP(p1->final.y, p2->final.y, pos);
If the condition is as blow, then p3->final.y becomes -50 only if pos is 1.0.
Because INP uses TO_INT not TO_INT_ROUND.
p1->final.y == -32
p2->final.y == -50
So we had nonsmooth ending of transition.
Test Plan:
Sample application to check this issue. Please look carefully when the rect moves from bottom to top.
{F3627740}
{F3627739}
Reviewers: cedric, Hermet, jypark
Reviewed By: Hermet
Subscribers: zmike, akanad, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7842
this takes the current generated output from eolian for legacy code in
evas and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree
ref T7724
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8130
this takes the current generated output from eolian for legacy code in
evas and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree
ref T7724
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8129
this takes the current generated output from eolian for legacy code in
evas and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree
ref T7724
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8128
this takes the current generated output from eolian for legacy code in
evas and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree
ref T7724
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8119
When I amended https://phab.enlightenment.org/D7842 I removed line to handle
negative value size of params final in _edje_part_pixel_adjust.
Because It was not related to the what the commit wants to fix, and I could not find
the case making param final size value negative , although I got the negative value
when I tested on a specific case. Now it seems that the negative value is telling me
"Witness Me!".
So I would like to add this change, and never let me forget the issue.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8105
this takes the current generated output from eolian for legacy code in
evas and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree
ref T7724
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D8107
Summary:
make this an array since there is no need to use a list here anyway
ref T7581
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7581
Differential Revision: https://phab.enlightenment.org/D8058
Most of classes implements Efl.Container.content_remove are just calling "unpack"
except of "Efl.Canvas.Layout" and "Efl.Ui.Layout".
This patch remove the asymmetrical API and add content_remove API of
"Efl.Canvas.Layout" and "Efl.Ui.Layout" that child can be remove without efl_part
APIs.
ref T7576
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D7913
Summary:
this just prints a error, manipulating the content here is not
permitted. As it is created by edje externals, which are owned by edje.
ref T5719
Depends on D7757
Reviewers: cedric, zmike, segfaultxavi
Reviewed By: zmike
Subscribers: q66, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T5719
Differential Revision: https://phab.enlightenment.org/D7759
Summary:
the previous implementation/api had a number of issues:
* "file" property contained both "file" and "key" values
- also performed file loading operation
* "load_error" property which was specific to image objects
* no methods for controlling file loading/unloading
this patch attempts the following changes:
* split "file" property into "file" and "key" properties
- also remove "key" from existing "mmap" property
* remove "load_error"
* directly return error codes from operations
* add "load" and "unload" methods for directly controlling load state
* add implicit file loading if file/mmap is set during construction
* rewrite all efl.file implementations to move file loading into load() method
* rewrite all usage of efl.file api based on these changes
* add C extension functions to mimic previous behavior
ref T7577
Reviewers: segfaultxavi, bu5hm4n, cedric
Reviewed By: segfaultxavi
Subscribers: vitor.sousa, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7577
Differential Revision: https://phab.enlightenment.org/D8018
Summary:
this interface only contains a single event which is implemented only by the
canvas object
ref T7561
Reviewers: cedric, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7561
Differential Revision: https://phab.enlightenment.org/D7905
this patch is for selecting lua interpreter such as luajit, lua51
and in addition, little more changes to unify lua dependency over efl
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7564
Summary:
these hints are not strictly size-related, so renaming them is more consistent
with their actual function
ref T7563
Depends on D7968
Reviewers: segfaultxavi, cedric, bu5hm4n
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7563
Differential Revision: https://phab.enlightenment.org/D7977
Summary:
Instead of surrounding all the #include "*.eo.h" lines in Efl.h
with #ifdef EFL_BETA_API_SUPPORT, include these files unconditionally, but mark
all classes as @beta in the eo files.
This will allow taking them out of beta one by one as we deem them stable enough.
Otherwise, the current procedure involves moving the #include line out of the
ifdef block, which is cumbersome and messes include order.
Depends on D7950
Fixes T7692
Test Plan: Nothing changes
Reviewers: zmike, bu5hm4n, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7692
Differential Revision: https://phab.enlightenment.org/D7951
Summary:
Eolian adds a per-class BETA guard (like EFL_UI_WIN_BETA) to any method tagged
as @beta. This means that any app (and the EFL code) wanting to use BETA features
has to enable them class by class, which is cumbersome.
This commit replaces the individual guards with the global EFL_BETA_API_SUPPORT
guard, so apps only need to define one symbol to access BETA features.
Any usage of the per-class guards has been removed from the EFL code and examples.
When building EFL the global guard is defined by configure, so all EFL methods
already have access to BETA API.
Efl_Core.h and Efl_Ui.h no longer define EFL_BETA_API_SUPPORT. Apps wanting to
use BETA API have to define this symbol before including any EFL header
(It has been added to the examples requiring it).
Test Plan:
make && make check && make examples still work, but there's a lot less #defines
in the code
Reviewers: zmike, bu5hm4n, q66
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T6788
Differential Revision: https://phab.enlightenment.org/D7924
Until this commit eo did class functions as part of the vtable, which
enabled those functions to be overwritten in classes inheriting another
class. However in task T7675 we decided that this is not really good for
bindings, as most OOP languages do not support this sort of feature.
After this commit eolian realizes class function completly outside of
the vtable, the c-symbol that is the class funciton is now just directly
redirecting to a implementation, without the involvement of the vtable.
This also means a change to the syntax created by eo:
Calling before:
class_function(CLASS_A);
Calling after:
class_function();
Implementation before:
class_function(const Eo *obj, void *pd) { ... }
Implementation after:
class_function(void) { ... }
This fixes T7675.
Co-authored-by: lauromauro <lauromoura@expertisesolutions.com.br>
Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D7901
when a map is applied to an edje part, it is expected that all components of
the part respect the map attributes. this requires that, in the case of
textblock parts, all the sub-parts which are internal to the textblock
(entry) object also go through the map populate and apply codepaths
fix T4977
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7648
Summary:
color_class_code seems to only have been added to efl_gfx_color in order to
share the hex conversion code, but this is trivial to do when it's in another
class and makes the api more sensible
ref T7559
Reviewers: segfaultxavi, bu5hm4n, cedric
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7559
Differential Revision: https://phab.enlightenment.org/D7898
many users of the markup property are not interactive text cases, so splitting
off the interactive methods resolves a number of unimplemented method issues
ref T5719
Differential Revision: https://phab.enlightenment.org/D7787
the readonly mixin implement the efl_ui_direction interface and prints a
error in case it is written.
ref T5719
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7755
the container api returns the number of added swallows.
the content iterator returns a iterator over all swallowed objects.
The reason this is only for swallows is that the interface explicitly
mentions UI elements at the count. Since i am believing the the result
of the count operation should mirror to the amount of elements in the
iterator, the iterator only returns swallowed objects.
ref T5719
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7748
Since these are only ever on one list, inlist is better.
Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7697
Minor simplification, should be no functional change.
Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7696
I guess this used to do something...
Now it's a list that we never add anything to but frequently try to remove
things from.
Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7621
Summary:
Whenever _edje_recalc_do() is called, a state value of
Edje structure is increased. This increased value will be stored
in Edje_Real_Part and Edje_Real_Part_State for calculation optimazation.
But, once the state value is overflowed, it ruins calculation logic.
@fix
Test Plan:
Run an Edje file which has infinite animation for over an hour.
I'll attach an example to phab.
Reviewers: raster, cedric, woohyun, Hermet
Reviewed By: Hermet
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7264
using strncpy with strlen of the string you append is pointless.
again... strcpy will do - but use memcpy to be exact and pre-compute
sizing etc. only once. fixes warnings.
This adds many Efl.Text.* that are useful for manipulating the
underlying TEXTBLOCK object's propeties using efl_part.
This has been implemented as part of the "user-defined" properties of
the layout part, so that the changes on the part persist across load of
different groups.
Note that text styles have precedence over the TEXTBLOCK (Canvas.Text)
object's properties. if an edc provides a style, the properties it
manipulates as part of the "base:" string would not be affected by this
API.
In general, this helps reducing the amount of styles for objects (or
modes of the same objects) that share the same setup, but are different
in some properties (e.g. ellipsis, wrap etc).
@feature
Canvas layout: add text part "expand" property
This adds "expansion modes", which are essentially the same as min/max
hints in the edje part's 'description.text' fields.
The user can then customize his widget to different modes without being
forced to create a new edje group in the theme.
Note that there is an added check in case one of the min/max text flags
are provided from the theme. In such case, all flags from this new API
will be ignored.
This fortifies misuse where the flags are set both in theme and the API.
@feature
This uses the meson/ninja depfile functionality + eolian to make
sure proper dependencies between generated files and .eo files
are managed, to ensure consistent re-generation of all generated
files that are affected upon .eo file modification.
For custom rules with multiple outputs, Ninja currently does not
support depfiles. Therefore, split those into two custom rules
so that the depfiles functionality can be enabled. While this
is ugly and slows down the process a little by having to invoke
Eolian twice instead of once, it has to be done and it's still
better than what we had in Autotools anyway.
Differential revision: D7187
Fixes T6700.
a new shiny buildtool that currently completes in the total of ~ 4 min..
1 min. conf time
2:30 min. build time
Where autotools takes:
1:50 min. conf time
3:40 min. build time.
meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read.
Further informations can be gathered from the README.meson
Right now, bindings & windows support are missing.
It is highly recommented to use meson 0.48 due to optimizations in meson
that reduced the time the meson call would need.
Co-authored-by: Mike Blumenkrantz <zmike@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7012
Depends on D7011
Summary:
If edje_text_get is called before any edje_text_set function call, it return
null, because rp->typedata.text->text is only set by edje_text_set function.
If there is no available text data, find it from rp(edc).
ref 7bbf18a950
Test Plan: make check
Reviewers: zmike, id213sin, herdsman
Reviewed By: id213sin
Subscribers: Hermet, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6961
Summary:
special calculation for textblock is for fit calculation.
This is obvious from code that fit is being calculated
before text is actually been set to textblock.
I am not sure whether this is intentional or mistake
but it make sense to calculate fit after text is being
set so that formatted and native calculation can be proper.
@fix
Test Plan: NA
Reviewers: cedric, zmike, herdsman, devilhorns
Subscribers: stefan_schmidt, #reviewers, #committers, shilpasingh
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6045
Summary:
Remove unnecessary abstract and class inheritance from eo file because
those abstracts and classes are duplicate.
e.g. if class B (class A) in B.eo file, then class C (class A, class B) in C.eo file.
Reviewers: woohyun, felipealmeida, Hermet, bu5hm4n
Reviewed By: Hermet, bu5hm4n
Subscribers: bu5hm4n, cedric, segfaultxavi, q66, #reviewers, lauromoura, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6982
Summary:
Following our naming rule, rename to like other primitives.
i.e. efl_canvas_rect, efl_canvas_image, efl_canvas_vg ...
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7013
This reverts commit 4067fafe07.
As commented on D6982, the original patch changes the widget's behavior.
e.g. Efl.Ui.Win cannot be called with Efl.Config_Gloabal APIs.
Elm.Combobox cannot provide events of Button and Hover.
Until the above changes are resolved, the original patch is reverted.
Summary:
Remove unnecessary abstract and class inheritance from eo file because
those abstracts and classes are duplicate.
e.g. if class B (class A) in B.eo file, then class C (class A, class B) in C.eo file.
Reviewers: woohyun, felipealmeida, Hermet
Reviewed By: Hermet
Subscribers: cedric, segfaultxavi, q66, #reviewers, lauromoura, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6982
Summary: those variables should be removed at 05e3e450e5
Reviewers: eagleeye
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6968
Summary: I had fixed some typos and some wrong expressions in API reference doc
Test Plan: N/A
Reviewers: raster, zmike, Hermet, segfaultxavi
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6943
Summary:
edje_edit_object_add
edje_object_add
emotion_object_add
evas_object_xxx_add
These APIs had allowed to set parent to EFL_CANVAS_OBJECT(Evas_Object) before
8bb11a17. we should call evas_find before safety check for backward compatibility.
Test Plan:
win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
1. `rect = evas_object_rectangle_add(evas_object_evas_get(win));`
2. `rect = evas_object_rectangle_add(win);`
Check that 1. and 2. works.
Reviewers: Hermet, zmike
Reviewed By: Hermet
Subscribers: cedric, #reviewers, CHAN, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6909
Summary:
Add a feature for moving cursor over a grapheme cluster.
It is applied to edje_entry.c and elm_entry.c for improving
cursor handling just like other modern text editors. ex) gedit
The patch on Evas needs to update libunibreak library.
So, the patch will update libunibreak, too.
@feature
Test Plan:
1. Put "ഹലോ" in your entry.
2. Your cursor can reach at the end of text from the beginning
only in 2 right key event with this feature.
Reviewers: raster, cedric, jpeg, herdsman, zmike, devilhorns
Reviewed By: herdsman, zmike
Subscribers: #reviewers, #committers, zmike, bowonryu, woohyun
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D5490
Summary:
A object that is not evas class shouldn't use evas_find. it may occurs segfault.
ref c2e8b492b1
Test Plan:
Evas *evas = evas_new();
evas_free(evas);
evas_object_line_add(evas);
Check weather there is segfault.
Reviewers: Hermet, raster, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6816
Summary:
there is no sound when multisense is disabled, so this is functionally
equivalent to the audio being muted
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl_layout_engine
Differential Revision: https://phab.enlightenment.org/D6837
Summary:
failing to unset this causes the ecore_imf flag to go negative if edje
is ever completely shut down twice
@fix
Reviewers: ManMower
Reviewed By: ManMower
Subscribers: ManMower, #reviewers, cedric, #committers
Tags: #efl_layout_engine, #easy
Differential Revision: https://phab.enlightenment.org/D6763
Summary:
these objects are destroyed when invalidate is called as a result of the
evas smart object class destroying the smart object at this time
ref D6222
Reviewers: bu5hm4n, devilhorns
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6540
Summary:
based on the codepaths taken when setting text to a part, a recalc should
only be necessary when returning markup from a textblock, and this is only
the case because the function returns a non-allocated string
in the case where the object is textblock and (legacy || not fetching markup),
the current text is guaranteed to be set on this pointer. the reason a
recalc is necessary for the markup case is because edje TEXTBLOCK parts only
set text to the internal textblock during a recalc, meaning that attempting
to fetch text on a just-set part will fail; this does not mean that the internal
textblock object doesn't exist, only that the text has not yet been set to it
Depends on D6422
Reviewers: herdsman, devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6423
Summary:
this adds perf overhead in order to work around a bug in text_get
all part objects are instantiated during edje_object_file_set, and forcing
a recalc here does nothing more than perform unnecessary operations
ref 8f95b17f39
ref D6365
Reviewers: herdsman, devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6422
Summary:
There are many calls to `_edje_real_part_recursive_get`. Though, it is
not guaranteed that the Edje object had instantiated all of the real
parts.
This change makes edje to always recalc before retrieving the real part.
The D6364 patch raised a good point, but presented a local fix, where
it seems that a global fix such as this is needed, instead.
The local fix is removed in favor of this. Test suite still passes.
ref T7057
@fix
Test Plan: See T7057
Reviewers: devilhorns
Subscribers: cedric, zmike, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6365
Summary:
Some changes broke really basical function behavior of text.
I couldn't get text from an edje object which I just set to the given edje object.
In the past code, edje called recalc function before trying to get text.
So, this patch bring that code to fix this issue.
@fix
Test Plan: Included. Run "make check"
Reviewers: herdsman, raster, cedric, woohyun, devilhorns
Subscribers: #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6364
Summary:
"description.text.text" is not shown after applying a patch for
supporting text translation of Textblock part.
@fix T6997
Test Plan:
- Try to show a TEXTBLOCK part which has built-in text.
ex)
textblock {
scale;
desc { "default";
text {
style: "my_style";
text: "You can't see this text without this patch";
}
}
}
Reviewers: Hermet, subodh6129, herdsman
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T6997
Differential Revision: https://phab.enlightenment.org/D6257
Summary:
the reference from efl_reuse was forgotten & the parent relation was not
correctlty setted, which led to the fact that NOREF was never emitted.
This caused that thte object never really was destructed probebly, and
thus the del_interceptor_cb was not executed, and the object simply
leaked.
The test checks that those properties are correctly set, additionally a
error is printed in the efl code when a part has not the expected
reference properties. This also enforces errors when users are doing
wrong things with objects returned by efl_part.
Reviewers: ManMower, zmike
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6254
Summary:
a swallowed child is per doc not deleted when the edje is deleted.
After the call to invalidate is finished all children will loose theire
parents and also be invalidated. However, in the efl_invalidate call,
the event EVAS_CALLBACK_DEL is issued, so this is the right spot. As in
legacy the swallows are in place when the EVAS_CALLBACK_DEL event is
issued.
Reviewers: cedric, raster, JackDanielZ, zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6222
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Summary:
_edje_part_fetch() function gets an Edje which has the requested Edje_Real_Part.
Basically, it gets main Edje of the given object.
But, if a requested part is in a GROUP part, it gets the Edje of GROUP part.
It shouldn't be passed to _edje_efl_text_text_get() function directly.
@fix
Test Plan: N/A
Reviewers: herdsman, raster, cedric, woohyun
Reviewed By: cedric
Subscribers: #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6149
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
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
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
elm_entry_prediction_hint_hash_set API sets the prediction hint data at the specified key, and
elm_entry_prediction_hint_hash_del API is for deleting the prediction hint data identified by a key.
@feature
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
Summary:
All events must have a type now, otherwise bindings don't know how to handle
the event_info field.
Most of the missing event types were actually "void" (no event_info present).
Some struct definitions had to be moved to eo instead of h files, so they
are available to bindings. Some have not, and are marked with FIXME.
Some namespaces have been fixed (like Efl_Event_Cb -> Efl.Event_Cb).
In general, there are hundreds of changed files, but mostly to add a type which
was not present before, so there's no harm done.
Also, A lot of FIXMEs have been added which should be, like, fixed.
For example, some events can send different types of event_info, which is
very inconvenient (and error prone).
Test Plan: make with c# bindings works, make check and make examples work too.
Reviewers: cedric, q66, lauromoura
Subscribers: zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6169
Summary:
Text translation in edc for textblock is missing.
Added to support it.
@fix
Reviewers: cedric, zmike
Reviewed By: cedric, zmike
Subscribers: shilpasingh, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6164
Initial results of our static analysis showed a bunch of unused
imports or imports used only for documentation references. In the
first case, remove entirely, in the second case, change to 'parse'
in order to keep references working.
The static analysis is not perfect and yields false negatives for
certain cases, so there will be a second batch later.
Summary:
We now send the name of the seat (if available) to legacy and seat events
so the callbacks can query them via the new seat data api.
This isn't quite what I wanted, but it's enough to fix the ecore_wl2
input problems for now. When multi-seat is a usable thing we can rework
these bits.
Depends on D6117
Reviewers: zmike, cedric
Reviewed By: zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6118
Summary:
Currently this is only to help wayland CSD function correctly, so the
opaque pointer is very poorly defined.
Depends on D6116
Reviewers: zmike, cedric
Reviewed By: zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6117
Summary:
Now if we generate an event in response to an event with seat data we
automatically carry the seat data with the emitted event.
This allows something like elm,action,move,start to have seat data
attached.
NB: Since extra and seat data share the same structs, extra data such as
the data from edje_entry is similarly propagated as a side effect.
Depends on D6115
Reviewers: zmike, cedric
Reviewed By: zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6116
Summary:
This is an even fuller emit_full, that takes a pre-made signal data
struct. The original edje_emit_full is now implemented as a call to it.
Depends on D6113
Reviewers: zmike, cedric
Reviewed By: zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6114
Summary:
Since the extra data struct is already nicely refcounted, it's easy to
add the seat data to it instead of making a new struct with almost
identical code.
Depends on D6112
Reviewers: zmike, cedric
Reviewed By: zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6113
Summary:
edje_object_part_text_cursor_prev/next/up/down has return value.
It has to return EINA_TRUE when only it successed.
But, when these funcs moved to legacy, it changed to return EINA_TRUE
whenever it fails or success. It must return EINA_FALSE when it fails.
@fix
Test Plan:
- Run test suite
make check
Reviewers: herdsman, raster, cedric, woohyun
Subscribers: zmike
Differential Revision: https://phab.enlightenment.org/D5972
neither of these functions should force a recalc under any circumstance
as they are simply returning pointers
@fix
Differential Revision: https://phab.enlightenment.org/D5947
a number of these functions have implicit recalcs, which is bad because
it's a pretty significant perf bottleneck, but it can't be improved
without breaking existing behavior expectations so this is probably the
best that can be done
ref T6884
Differential Revision: https://phab.enlightenment.org/D5946