path: root/src/lib/edje (follow)
AgeCommit message (Collapse)Author
2018-12-03meson: use eolian_gen with -SMarcel Hollerbach
this ensures that eolian does not parse installed .eo files Differential Revision:
2018-11-22Remove duplicated interface inheritance in eoYeongjong Lee
Summary: Delete unnecessary interface inheritance Efl.Ui.Base ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Ui.Base Efl.Text_Cursor ==> Efl.Text_Markup - Efl.Text_Cursor Efl.Pack_Layout ==> Efl.Ui.Box - Efl.Pack_Layout Efl.Ui.Translatable ==> Efl.Ui.Layout - Efl.Ui.Widget - Efl.Ui.Translatable Efl.Part ==> Efl.Ui.Widget - Efl.Part Efl.Ui.View ==> Efl.Ui.Layout.Object - Efl.Ui.View Efl.Access.Value ==> Efl.Ui.Spin - Efl.Access.Value Efl.Gfx.Buffer ==> Efl.Canvas.Image_Internal - Efl.Gfx.Buffer Efl.Canvas.Pointer ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Canvas.Pointer Efl.Gfx.Size_Hint ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Gfx.Size_Hint Test Plan: make check Reviewers: Jaehyun_Cho, Hermet, woohyun, segfaultxavi Reviewed By: Jaehyun_Cho, segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-11-14edje: fix an overflow issue for state valuesYoungbok Shin
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:
2018-11-09edje util - handle missing case in switchCarsten Haitzler (Rasterman)
2018-11-09edje entry - be clearer and more efficient on string appendingCarsten Haitzler (Rasterman)
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.
2018-11-09edje calc - wanr - move fallthrough tag to just before next caseCarsten Haitzler (Rasterman)
fixes warning for it not being there... no bug here though
2018-11-09edje calc - warn - fix warn about initting all fields of calc paramsCarsten Haitzler (Rasterman)
2018-11-09edje load - warn - fix buffer trucn warningCarsten Haitzler (Rasterman)
2018-11-09edje edit - warn - use bigger buffer to avoid buf trunc warningsCarsten Haitzler (Rasterman)
2018-11-09edje modules - warn - use proper hash free func prototypeCarsten Haitzler (Rasterman)
2018-11-09edje program - warn - handle theoretical null seat stringCarsten Haitzler (Rasterman)
2018-11-06Canvas layout: support more Efl.Text.* with efl_partDaniel Hirt
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
2018-10-24meson: add eolian custom dependencies supportDaniel Kolesa
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.
2018-10-02here comes mesonMarcel Hollerbach
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 <> Differential Revision: Depends on D7011
2018-09-28edje: call recalc in part_text_get if there is no available text dataYeongjong Lee
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 7bbf18a950c027a365fea1b88e8dc3f16bb81abe Test Plan: make check Reviewers: zmike, id213sin, herdsman Reviewed By: id213sin Subscribers: Hermet, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-09-21edje: add missing eina_deprecated to apis.Hermet Park
Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-09-21Edje: update doc.Hermet Park
Summary: fix and add missing doxygen conent. Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-09-17edje: Remove hack codeSubodhKumar
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:
2018-09-10efl: Remove unnecessary abstract/class inheritanceJaehyun Cho
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:
2018-09-10Revert "evas vg: changed "vg object" to "vg""Hermet Park
This reverts commit ec69abed9d63e7876238dffc4b0d3398d1cd1be1. Ooops, I didn't intended this patch. @#!@#!@#!@#
2018-09-10evas vg: changed "vg object" to "vg"Hermet Park
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:
2018-09-05Revert "efl: Remove unnecessary abstract/class inheritance"Jaehyun Cho
This reverts commit 4067fafe07c4d22ac2e2672921c268ae8866029f. 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.
2018-09-05efl: Remove unnecessary abstract/class inheritanceJaehyun Cho
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:
2018-09-04edje_calc: remove unused variableYeongjong Lee
Summary: those variables should be removed at 05e3e450e5ecb67f80c1be3df8ab7a08e8d33da2 Reviewers: eagleeye Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-08-31docs: Fix typos in API reference doc and comments.Yeongjong Lee
Reviewers: Hermet, segfaultxavi Reviewed By: Hermet, segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-08-31efl: vector is no more beta version.Hermet Park
2018-08-30docs: Fix typos and some wrong expressions in API reference doc.Myoungwoon Roy, Kim
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:
2018-08-29evas: call evas_find before safety checkYeongjong Lee
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:
2018-08-20evas textblock: add/apply cursor cluster APIs based on grapheme clusterYoungbok Shin
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:
2018-08-16evas: check evas class instead of using evas_findYeongjong Lee
Summary: A object that is not evas class shouldn't use evas_find. it may occurs segfault. ref c2e8b492b18bdecc2300ad051ba1406e40ad068f 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:
2018-08-16edje/multisense: always return muted=true if multisense is disabledMike Blumenkrantz
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:
2018-08-14edje: unset internal _need_imf flag on shutdownMike Blumenkrantz
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:
2018-08-02edje: add back function prototype for edje_object_color_class_description_getMike Blumenkrantz
this was removed in D4403 Differential Revision:
2018-07-26edje: handle all failure cases with error messages in initMike Blumenkrantz
Summary: fix T7025 Depends on D6677 Reviewers: Hermet Reviewed By: Hermet Subscribers: cedric, #committers Tags: #efl Maniphest Tasks: T7025 Differential Revision:
2018-07-10Revert "edje: clean up internal objects during invalidate"Mike Blumenkrantz
This reverts commit 78cd61034185f07779d70163a38f5ffdffe5507b. this patch needed a bit more review+testing; it fixes some issues but creates others Differential Revision:
2018-07-10edje: clean up internal objects during invalidateMike Blumenkrantz
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:
2018-06-25edje: return available text data in part_text_get without recalc when possibleMike Blumenkrantz
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:
2018-06-25edje: remove recalc during part_recursive_getMike Blumenkrantz
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 8f95b17f39cb87cb4627150b0761fc95376bd026 ref D6365 Reviewers: herdsman, devilhorns Reviewed By: devilhorns Subscribers: cedric, #committers Tags: #efl Differential Revision:
2018-06-25edje_lua: Wrap calls to edje_object_part_object_get with freeze/thawChris Michael
Summary: @ref T6884 Depends on D6419 Reviewers: zmike, ManMower Reviewed By: zmike Subscribers: cedric, #committers Tags: #efl Maniphest Tasks: T6884 Differential Revision:
2018-06-22Edje: recalc edje before fetching the real partDaniel Hirt
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:
2018-06-22edje: fix text set/get issue without edje calculationYoungbok Shin
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:
2018-06-21Revert "edje: code refactoring for readibility."Hermet Park
This reverts commit 7fb47fc064b8f429242b4d5cdf57071475087821. subsequential revert for previous one. 90a89d1ab2b5d23b29ad0f2680b77b5ba7f56b42.
2018-06-20Edje load: add safecheck for TEXTBLOCK-specific code pathDaniel Hirt
There is a specific TEXTBLOCK part code path that shouldn't be taken for other parts. @fixes T6279
2018-06-11edje: fix an issue "description.text.text" is not shownYoungbok Shin
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:
2018-06-10edje: fix edje_part_helpers refcountingMarcel Hollerbach
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:
2018-06-07edje: code refactoring for readibility.Hermet Park
collection.part is too ambigious, since group has parts as well. Normally we regard it as "name" (of group) instead of part.
2018-05-28edje: fix lifecycle of swallowed childrenMarcel Hollerbach
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: Reviewed-by: Cedric BAIL <>
2018-05-25edje: don't give a wrong Edje data when an Edje object has group partsYoungbok Shin
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: Reviewed-by: Cedric BAIL <>
2018-05-24edje: simplify part handling as we are now guaranteed that a part as no ↵Cedric BAIL
parent when reaching the del intercept.
2018-05-24edje: do not reparent when the object is dead already.Cedric Bail