path: root/src/lib/ecore_evas (follow)
AgeCommit message (Collapse)Author
2020-08-25ecore evas - use correct enums for legacy funcstions to remove warnsCarsten Haitzler (Rasterman)
2020-06-23Get rid of trailing whitespaces (4 / 14)Elyes HAOUAS
Remove trailing whitespaces Differential Revision:
2020-05-27build: time for efl-oneMarcel Hollerbach
this is building parts of efl into a single .so and links all modules and binaries to it. The libraries themselfs are build as .a's which are linked together as .so's. Which is required as every subproject has its little custom c_flags, which are somtimes conflicting. After the final .so is then built, all the split up libraries are replaced with the efl-one. After that the modules and binaries are built correctly with the correct link on the efl-one parts. Reviewed-by: Stefan Schmidt <> Differential Revision:
2020-05-27refactor buildMarcel Hollerbach
libraries are split into deps, external deps, and pub deps. Evas engines are refactored to use the predefined engine deps. this is preparation work for efl-one. Reviewed-by: Stefan Schmidt <> Differential Revision:
2020-05-26build: lib: harmonize the use of package_c_args in all libsStefan Schmidt
Add it to subprojects which are not using it and remove and old ELEMENTARY_BUILD define we no longer use. This allows us to have a central place in the main file to set this variable. Reviewed-by: Marcel Hollerbach <> Reviewed-by: Vincent Torri <> Reviewed-by: João Paulo Taylor Ienczak Zanette <> Differential Revision:
2020-05-23ecore_evas: fix uninitialized variable warningVincent Torri
Test Plan: compilation Reviewers: raster, zmike Reviewed By: raster Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-05-18Revert "Fix EAPI definition by defining EFL_BUILD for each built DLL"Carsten Haitzler (Rasterman)
This reverts commit 3ade45cbc82bea1772c7ad1afb7e1ba5dd67d930.
2020-05-18Fix EAPI definition by defining EFL_BUILD for each built DLLVincent Torri
Summary: EAPI must be defined to dllexport when building DLL, and to dllimport when using these DLL. To achieve this, define EFL_BUILD for each library and module, and set DLL_EXPORT unconditionally. Static library are and will be not supported Test Plan: compilation Reviewers: zmike, raster, jptiz Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-05-07Use __func__ C99 identifier instead of __FUNCTION__ compiler extensionVincent Torri
Summary: see section page 52 Test Plan: compilation Reviewers: raster, devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-04-30ecore_evas: only define these eina errors onceMarcel Hollerbach
Summary: they are not needed multiple times, infact this is creating multiple definition errors. @fix Reviewers: stefan_schmidt, zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-04-29doxygen docs: Add @since tags to EE selection APIXavi Artigas
This is the first time Ecore_Evas selection API is released so it has earned some @since 1.24 tags. Also, put these methods in their own group.
2020-04-29doxygen docs: Move CnP API out of the Remove Canvas groupXavi Artigas
The new CnP API had been wrongly added to the Remote Canvases group.
2020-04-28ecore-evas: Fix formattingChristopher Michael
NB: No functional changes
2020-04-27doxygen docs: Document compositor sync API as deprecatedXavi Artigas
This is currently a NOP and we should remove this API later on. Meanwhile, turn the note about this API being experimental into a deprecation warning.
2020-04-16ecore_evas: fix fallback codeMarcel Hollerbach
this was using a stringshare reference that was deleted. While that is true, the stringshare reference will always be alive, because 2 people took a reference. Anyways, this code is now searching the other way arround, which makes the code also easier. fixes: CID1420331 Reviewed-by: Stefan Schmidt <> Differential Revision:
2020-04-15doxygen docs: Fix invalid doxygen outputXavi Artigas
This particular line produces mismatched XML and HTML tags: "force a <b>rendering update on <code>ee</b></code>"
2020-04-14ecore_evas: add API for finding out if event is usedMarcel Hollerbach
Summary: ecore_x_dnd_send_status can be used to indicate if a item can be dropped on a client or not. However, we should only indicate that this can be dropped, if there is a object we signaled that a drop is in. Long story short: there is no assertion that after indicating that things can be dropped, that a notify for the data is sent. A drag implementation should always listen to a mouse up event, and abort the drag if no further operations are sent. Depends on D11698 Reviewers: zmike, stefan_schmidt, raster Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-03-24doxygen docs: Fix warnings in Ecore_Evas.hXavi Artigas
And a couple associated places.
2020-03-10doxygen docs: Fix tons of invalid Doxygen commandsXavi Artigas
Mostly typos
2020-03-09ecore_evas: do not leak allocated memory in error caseMarcel Hollerbach
2020-03-09ecore_evas: only free content when content is != NULLMarcel Hollerbach
otherwise we might run into issues with that.
2020-03-08ecore_evas: Use EFL naming convention in cnp & dnd methodsXavi Artigas
Some methods were missing the "Drag" or "Selection" namespaces or the _Cb suffix. Depends on D11219 Reviewed-by: Mike Blumenkrantz <> Differential Revision:
2020-03-08docs: Strengthen docs for Copy&Paste and Drag&DropXavi Artigas
Including Eina.Content And a typo/bugfix in ecore_evas_x. Reviewed-by: Mike Blumenkrantz <> Differential Revision:
2020-03-08ecore_evas: Introduce cnp / dnd API for ecore evasMarcel Hollerbach
The idea of copy and paste here is: - The user specifies the content he wants to have in the selection buffer with a Eina_Content, these content pointer ownerships are passed to the called. Internally ecore_evas code will memorieze the pointer, and pass on function callbacks to the modules, which then do not have to deal with the ownership. - In case the module does not specify these APIs, the callback implementation will be called, which only works for cnp *not* dnd. - Action and mime types are handled as strings, which allows way better custom organisations. (The docs needs improvement) Reviewed-by: Mike Blumenkrantz <> Differential Revision:
2019-12-30ecore_evas_buffer: Unregister input events when ecore_evas_buffer is freedHosang Kim
Summary: When ecore_evas_buffer is freed, input events is not unregistered. So _window_hash size is increasing. Reviewers: Hermet, cedric, raster, zmike Reviewed By: zmike Subscribers: zmike, rajeev.jnnce, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-10-31evas: move efl_input_device into evas/Efl_Canvas.hCedric Bail
Summary: The internal and the API we would like is mostly a canvas API. A lot of the code in evas is working around the fact that efl_input_device is not defined inside Evas. This patch is the first step to try to clean this up. Depends on D10487 Reviewers: zmike, raster, bu5hm4n, Hermet Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T8321 Differential Revision:
2019-08-19make mman.h privateVincent Torri
Summary: integrate mman.h to make Evil private to the EFL, as mman.h does not exist on Windows. After a discussion with raster, i include sys/mman.h only on non Windows platform. One issue, though, is that src/modules/emotion/generic/Emotion_Generic_Plugin.h has inlined functions using mmap() Test Plan: compilation on Windows Reviewers: cedric, raster, zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2019-08-14efl/hints: add restricted and combined max size hintsMike Blumenkrantz
these function the same as the min size hint versions and enable distinction between internally-set max size hints and user-set max size hints @feature ref T8122 Reviewed-by: Cedric BAIL <> Reviewed-by: Xavi Artigas <> Differential Revision:
2019-08-02ecore evas x and e sync rendering - disable as it's unusedCarsten Haitzler (Rasterman)
this has been optional and unused by e for a very long time ot try sync front-buffered software rendering with the wm/compositor. we may as well remove the bloat that is here that is unused... it's been inactive for many years anyway.
2019-07-26ecore_evas: prevent double free evas.Hermet Park
When user manually free the ecore evas, it could delete evas internally, then evas_invalidate would be triggered, invalidate callback would try free evas again, this causes double free evas. TEST SCENARIO: ee = ecore_evas_new(...); ... ecore_evas_free(ee); -> free evas -> invalidated cb -> free evas (**double free) This is a regression bug by 5847886a3fdb7c470bd55e215b822bbbaf109080
2019-07-22ecore_evas buffer: fix a deadlock issue.Hermet Park
We encountered a deadlock case in ecore_evas_image_object in ecore_evas_buffer that only happens if the ecore_evas_buffer has nothing changed to render, though it's triggered to rendering. See this normal scenario that is working fine as our intention. being ecore_evas_render() ... -> ecore_evas_buffer_prepare() -> evas_object_image_data_get() -> increment lock by backend engine. (egl/tbm ...) -> render() -> render_post() -> _ecore_evas_buffer_update_image() -> evas_object_image_data_set() ->decrement lock by backend engine (egl/tbm ...) ... end ecore_evas_render() The problem is, if the ecore_evas_buffer canvas doesn't changed at all, render post will be skipped, it could lose the chance to unlock the image data. Now the host can't render anymore since it's image source lost the lock. @fix
2019-07-12ecore_evas: on internal Evas canvas uncontrolled death, properly clean up ↵Cedric BAIL
Ecore_Evas. This allow evas test to work with an Ecore_Evas directly. It prevent leaking of memory in the case of half destroying Ecore_Evas. Reviewed-by: Hermet Park <> Differential Revision:
2019-06-20efl_input_pointer: rename tool to touch_idMarcel Hollerbach
tool was not very helpfull, and additionally, the docuemtnation of it was completly wrong. After searching through the code where tool was actaully set (efl_ui_win.c) it turned out that it is actaully the "id" of the pointer when there are multiple touch events. ref T7963 Reviewed-by: Mike Blumenkrantz <> Reviewed-by: Xavi Artigas <> Differential Revision:
2019-05-29ecore-evas: check for internal evas presence before using it during freeMike Blumenkrantz
Summary: some engines do not have an evas @fix Depends on D8971 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-05-22include evil_private.h in last files, and disable symbolic links on Windows ↵Vincent Torri
in a couple of files Test Plan: compilation Reviewers: zmike, raster, cedric Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2019-05-20remove Evil.h when not necessary, include evil_private.h when necessaryVincent Torri
Test Plan: compilation Reviewers: zmike, raster, cedric Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2019-04-25ecore_evas: generalize option defines.Hermet Park
There some engine option defines could be generalized from the window system since those options could be used through wayland, x11 both, and probably so on.
2019-04-25ecore wayland: expand internal interface to pass engine option list.Hermet Park
This is a prepartion patch to support msaa in wayland. ui window needs to deliver engine options (stencil, depth, msaa bits) to evas engine side, ecore_evas_wayland_egl should have the argument to pass.
2019-02-21interfaces: move animator,tick to efl.canvas.object and remove efl.animatorMike Blumenkrantz
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:
2019-02-13efl_input: remove the API of efl_input_instance_getMarcel Hollerbach
there is basically no reason for this API. You can only use the API when you know the class, when you know the class you can also just know the function to call to get this API. The reason this API needs to go is that we don't want to use polymorphism on class-functions. ref T7675 Reviewed-by: Xavi Artigas <> Differential Revision:
2019-02-13ecore_evas: fix a potentional deref after null problemWonki Kim
Summary: this patch modify a logic to return after, failing to call eore_evas_buffer_allocfunc_new function. Reviewers: Hermet, bu5hm4n, cedric, devilhorns Reviewed By: devilhorns Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2019-01-31ecore-evas-buffer: Fix formattingChris Michael
NB: No functional changes
2019-01-15ecore_evas: Don't walk mice list twiceDerek Foreman
We know the item is in there, so we can remove it directly. Signed-off-by: Derek Foreman <> Reviewed-by: Cedric BAIL <> Differential Revision:
2018-12-14ecore_evas: Validate shadow geometryDerek Foreman
Negative values in shadow geometry make no sense at all, however it's happening all the time in wayland. Let's throw an ERR so it doesn't go unnoticed. Signed-off-by: Derek Foreman <> Reviewed-by: Chris Michael <> Differential Revision:
2018-12-03ecore evas - buffer - init ecore event evas as many times as shutdownCarsten Haitzler (Rasterman)
so ecore_event_evas_shutdown() was getting called much more than ecore_event_evas_init() - missing an init in the ee + img obj creator in ecore evas. this adds it in and ensures in allocation failures we dont over-init or shutdown too. @fix
2018-12-03ecore_evas - fix aninmator based frame render ticking to full framerateCarsten Haitzler (Rasterman)
so i was seeing ecore evas only rendering every 2nd frame... this is because it was adding and deleting animatiors every time it rendered instead of keeping one around as lon as updates where there to render and then remove it afterwards. this caused nasty timing problems and thus problems assessing framerate of rendered content etc. etc. ... not good. this fixes that. this only happened if you only used pure legacy ecore animators. if you used the efl animator tick events it worked right. @fix
2018-11-28ecore_evas_buffer: register it in ecore_evas_inputMarcel Hollerbach
this is done in order to make ecore_event_evas_key_down work with this. The function can be used to simulate interactions with a efl_ui_win. If this is not added, then the user of ecore_event_evas_key_down needs to differentiate between buffer engines and the rest of the engines. Differential Revision:
2018-11-09ecore evas - warn - buffer engine - set last tick get field to nullCarsten Haitzler (Rasterman)
missing field not set- set to null so we know its not set.
2018-10-26ecore: remove duplicated conditionsYeongjong Lee
Summary: The macro already checks eina_main_loop_is() when DEBUG_THREADS is enabled. Test Plan: make Reviewers: segfaultxavi, ManMower, Hermet, bu5hm4n Reviewed By: bu5hm4n Subscribers: bu5hm4n, cedric, #reviewers, #committers Tags: #efl Differential Revision:
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