path: root/src/lib/emotion (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-28eo-docs: Remove Doxygen tags from efl*.eo filesXavi Artigas
Summary: - Replace '\@ref name' with '@name' - Remove unused \@internal tag This tag affects text AFTER it, and there is no text after it. - Remove \@note tag Replaced with a simple NOTE: text, since eolian does not have an equivalent tag. - Remove spurious \@Efl... tags They should really be @Efl... - Remove \@p tags There is no eolian equivalent, and a simpler $ suffices in this case. Fixes T7482 Reviewers: q66 Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7482 Differential Revision:
2018-11-09emotion modules - warn - fix possible uninit varCarsten Haitzler (Rasterman)
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-18emotion: Convert to new animatorsDerek Foreman
Summary: Use more efficient animator mechanism. Depends on D7049 Reviewers: devilhorns Reviewed By: devilhorns 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-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-13emotion: make intree running workMarcel Hollerbach
Summary: before it would have only worked if there would have been the architecture in the path, which was definitly not the case. This fixes the problems. Depends on D6795 Subscribers: cedric, #reviewers, #committers, zmike Tags: #efl Differential Revision:
2018-05-24evas: enforce legacy parent to be the canvas.Cedric Bail
2018-05-19efl: Add missing event typesXavi Artigas
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:
2018-04-24Efl.Gfx.Image* (From Efl.Image*)Xavi Artigas
Ref Reviewed-by: Cedric Bail <>
2018-04-24Efl.Image_Load_Controller* (From Efl.Image.Load*)Xavi Artigas
Ref Reviewed-by: Cedric Bail <>
2018-04-24Efl.Gfx.Entity (from Efl.Gfx)Xavi Artigas
Ref Reviewed-by: Cedric Bail <>
2018-04-17eolian gen: enable constness generation on property getter implsDaniel Kolesa
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.
2018-04-05emotion: call shutdown when smart objects are destroyedMike Blumenkrantz
the constructor calls init for every object, so ensure a matching shutdown call exists to balance the init count ref 517471190f87e473e3bc38584c23ae28fb772c7c ref T6816 Reviewed-by: Stefan Schmidt <>
2018-02-22emotion: silence warning due to vpath change.Cedric Bail
2018-02-22move from efl.vpath to eina_vpathMarcel Hollerbach
The usages from efl.vpath are moved to to eina_vpath
2018-02-17emotion: use new bs static libMarcel Hollerbach
2018-02-15efl: rename player.position property -> player.posMike Blumenkrantz
position conflicts with gfx.position; this could maybe be named better?
2018-01-18all: Simplify definition of EAPIVincent Torri
This will help in the transition from Autotools to Meson. This has been tested on Windows for which EFL_XXX_BUILD were first introduced.
2018-01-04emotion: unset DISPLAY when loading an engine under waylandMike Blumenkrantz
ensure that this doesn't trigger xwayland deadlocks during gst init probably fixes T6418 @fix
2017-12-19efl: Reset ecore event types on initJean-Philippe Andre
This fixes cycles of init/shutdown/init where ecore event types would become invalid, since they are now stored in a dynamic array rather than a statically stored array. The risk here is that if a module of EFL tends to init/shutdown in a "normal" scenario then the event type array will grow in a leaking manner. This could be fixed by resetting those event ID's only when the loop actually exits (EFL_EVENT_DEL on the main loop). I'm not using EFL_EVENT_DEL in this patch as this would add too many event callbacks to the main loop object, which may result in slightly slower event calls to it, affecting the overall performance.
2017-12-13efl: drop deprecated Encoding key from desktop filesRoss Vandegrift
Summary: The Encoding key is no longer required, all desktop files are assumed to be UTF-8 encoded. See details at: Fix various typos and misspellings lintian, Debian's package checker, uses strings to check for common typos in compiled binaries. This change fixes the ones it identified in 1.20.6. Reviewers: cedric Reviewed By: cedric Subscribers: cedric, jpeg Differential Revision: Signed-off-by: Cedric BAIL <>
2017-09-19efl: Use Eina.Size2D for image load sizeJean-Philippe Andre
2017-09-18efl: Use Eina.Size2D for Efl.Gfx.sizeJean-Philippe Andre
Big patch as a lot of things call or reimplement size_set. Hopefully I got it right... fingers crossed.
2017-09-18efl: Use Eina.Position2D for Efl.Gfx.positionJean-Philippe Andre
Note: This is a little bit more cumbersome in some places but in most it's more convenient than (x,y).
2017-09-13emotion: Make it a clipped smart objectJean-Philippe Andre
This reduces code. And probably adds new bugs.
2017-09-13emotion: Fix refcounts related to eio useJean-Philippe Andre
Inside emotion, if Eio is compiled, some asynchronous functions are used and a refcounted struct was used to ensure safety of the code. Unfortunately the logic didn't make much sense as emotion's private data is used. The refcount becomes useless, the lifecycle of the data being bound to the object itself. Note that an actual crash is almost impossible because: - eio is actually quite fast - evas objects are kept alive for 2 frames - eina_freeq is used to keep eo objects' data alive for some more time But this in theory fixes the events, as they were sent on the wrong object. "obj" is the image object, "smartobj" was the emotion object. This is fixed with a weak ref. I don't think it is necessary to backport this.
2017-09-13evas: Fix crash with smart objectsJean-Philippe Andre
This is due to the previous patches.
2017-09-13evas: Add internal API to make smart obj (un)clippedJean-Philippe Andre
Introduction to the problem: - Efl.Canvas.Group has a method member_add() to add sub objects. - Efl.Canvas.Group (simple smart object) does NOT actually delete the objects on deletion. But: - Efl.Canvas.Group.Clipped is a direct subclass and WILL delete the sub objects on deletion. Semantically, all smart objects (at least in EO and Elementary) will own and delete sub objects automatically. Some exceptions are: - Edje object (smart clipped) does not delete swallowed objects. Edje object is a "clipped" smart object but it pops out all swallowed children before getting deleted. - Evas box/table/grid also pop out their children before deletion. Those classes are all legacy & internal only. - Elm.Widget will "manually" delete all its sub objects at deletion, as it inherits from Efl.Canvas.Group but basically takes full ownership of the sub objects. Note that member_add shouldn't be used on a widget, the widgets do it themselves. Also, smart clipped objects are much more convenient to use as they will handle some things for you: color, visibility, moving and ownership. So, the API member_add needs to be marked as own(). But right now Efl.Canvas.Group does not own. Thus, here's the plan: - Mark clipped objects as such with an internal API - Merge clipped smart object features directly inside the standard smart object. - Get rid of Efl.Canvas.Group.Clipped entirely and watch all hell break loose. Ref T5301
2017-07-07evas,edje,elm: Mark all legacy objects as suchJean-Philippe Andre
2017-05-19evas/elm: Make group_add/group_del internal functionsJean-Philippe Andre
This hides those two legacy functions from the EO API.
2017-05-19evas: Make Efl.Canvas.Object.type internalJean-Philippe Andre
2017-04-17Fix sed error that changed "video" to "videfl"Derek Foreman
commit c662934be8bcbaba60d1688e77533acbea5d09b9 seems to have accidentally renamed a few instances of _video_ to _videfl_, this hopefully changes them all back.
2017-03-09emotion: avoid crash during shutdown due to Ecore_Event queue.Cedric BAIL
2017-02-15group: Track calls to group_delJean-Philippe Andre
After a long search I found that fileselector was not calling super.group_del on deletion, leading to the use of dangling pointers. So let's verify that group_del is properly called. See T4598
2017-02-14emotion: add since tag to new emotion_file_meta_artwork_get APIStefan Schmidt
2017-02-13vpath file - add a keey property to know if obj should be kept aroundCarsten Haitzler (Rasterman)
if its a file downloading (to a tmp location) or a zip/tar/whatever file being extracted also to a tmp location and that tmp file needs to be removed after need to keep the obj around to know when to delete the file. this makes the keeping optional and you query if the vpath obj is meant to be kept or not. if it's not it's safe to del immediately. this cuts down 1 obj per image obj/edje obj when generally unused. save some mem.
2017-02-03ifdef RUN_IN_TREE logic.Gustavo Sverzut Barbieri
This logic is only needed for autotools, cmake will replicate the installation file structure and thus eina_prefix works out of box.
2017-01-12emotion: add support for obtaining embedded artwork from media files with ↵Al Poole
gstreamer1 backend. Reviewers: raster, cedric Subscribers: cedric, jpeg Differential Revision: Signed-off-by: Cedric BAIL <>
2017-01-06eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ.Cedric BAIL
2016-12-27emotion: use new property impl syntaxDaniel Kolesa
2016-12-20emotion: remove float comparison warningsChris Michael
Signed-off-by: Chris Michael <>
2016-11-10docs: emotion: add last missing docs for emotion eo fileStefan Schmidt
2016-11-09evas: Fix masks of masks and clippers of clippers in generalJean-Philippe Andre
The root cause was simple: smart object clipped was not calling efl_super() on clip_set. Fixes T4813 (and probably a whole lot of other bugs)
2016-10-25emotion - add vpath support for file_set on emotion objectsCarsten Haitzler (Rasterman)
this completes my todo list for vpath path support at least for now (evas images, edje objects and emotion objects). now vpath's work for these too.
2016-10-24docs: emotion: add missing docs for efl canvas video eventsStefan Schmidt
Also make use of $true keyword while being there.
2016-10-16Emotion: prefer ratio to calculate sizesDave Andreoli
Instead of calculate the ratio from the sizes, calc the width from the ratio, as ratio seems always accurate. Fallback to the old code if ratio not available (tbh I never see this case) @Fix EMOTION_ASPECT_KEEP_BOTH with some rare strams, mostly DVD and online stuff
2016-10-12evas: Mark group_add/del as internalJean-Philippe Andre
Lacking a proper internal tag, I'm using both protected (it is in fact a protected access function) and beta (to mark as unstable, not real API). New smart objects based on EO only should rely on constructor, finalize and destructor exclusively. In theory, this should be fine. Unfortunately it may be impossible to inherit from the Efl.Ui.Win class as it uses a really bad hack and calls super.constructor inside the finalize method.