path: root/src/lib/evas (follow)
AgeCommit message (Collapse)Author
2 daysevas_textblock: prevent updating cursor unless they are ready during markup_setAli
Summary: During Markup_set at text block level, we will not update the cursors, unless their status is updated and ready. This can cause serious issues, especially if a cursor also depends on another cursor for some calculations, (like the segfault happening in TextBox T8637) Reviewers: woohyun, bu5hm4n, zmike Reviewed By: woohyun Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T8637 Differential Revision:
3 daysevas: free font lists correctlyMarcel Hollerbach
sometimes a canvas object is zombying, and does not get freed correctly. If this is right now happening in our test suite, we are going to free the list, but do not clean up the pointer in there. Reviewed-by: Mike Blumenkrantz <> Differential Revision:
3 daysevas/render: minor cleanups for norender functionsMike Blumenkrantz
Summary: evas_norender cannot produce update regions, so there's nothing to free remove commented lines no functional changes Reviewers: bu5hm4n Reviewed By: bu5hm4n Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
3 dayscanvas 3d: remove all canvas3d features across efl.Hermet Park
Reviewers: jsuya, kimcinoo, bu5hm4n, raster Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
4 daysevas: add function for norendering with updatesMike Blumenkrantz
Summary: the same as norender, but useful Depends on D11581 Reviewers: bu5hm4n Reviewed By: bu5hm4n Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
4 daysevas/render: produce update regions when do_draw isn't set but make_updates isMike Blumenkrantz
Summary: this is a valid combination of parameters that should be handled Reviewers: bu5hm4n Reviewed By: bu5hm4n Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
5 daysdoxygen docs: Fix warnings in textblockXavi Artigas
5 dayscanvass vg: fix a mistake in 69fd72af2cae8dce07ac2becad40eccbb55b5bc7Hermet Park
5 dayscanvas vg: drop vg cache buffers if object were destroyed.Hermet Park
Previous vg didn't take care of cached buffers which were allocated in it's lifetime because the cache buffers are managed by its own cache buffer mgr, it has a limitation count of buffers also buffers can be cleared when engine is shutdown. This behavior is actually working properly but not well optimized since it lost a chance to clear grown buffers. Now vg do clear used buffers when object is invalidated.
8 daysevas/render: fix log ptr access in render threadMike Blumenkrantz
when this lock is released, the evas may be immediately freed, leading to invalid access in the log call Reviewed-by: Marcel Hollerbach <> Differential Revision:
8 daysevas filter: work for native surfaceShinwoo Kim
Summary: Filter does not know how to draw native surface image using engine_data. It means that only image knows how to draw it. In case of GL engine, image is using a shader program for IMAGENATIVE in the common_context_image_push. This patch makes filter work for native surface image by drawing the native surface first using the common_context_image_push as below. Before: image -> common_filter_*_push -> filter_output After: image -> common_context_image_push -> filter_input -> common_filter_*_push -> filter_output Test Plan: {F3856981} Reviewers: Hermet, jsuya, herb Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
11 daysevas_table: inherit all the types we are implementingMarcel Hollerbach
11 daysevas_table: inherit all the types we are implementingMarcel Hollerbach
Reviewed-by: Mike Blumenkrantz <> Differential Revision:
11 daysevas_vg: modified the join enum documentationTaehyub Kim
Summary: modified the join enum documentation for Efl_Gfx_Join and Evas_Vg_Join since the order of documentation is wrong Depends on D11519 Reviewers: jsuya, Hermet Reviewed By: jsuya Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
11 daysevas_vg: add since tags for evas vector APIsTaehyub Kim
Summary: Depends on D11518 Reviewers: jsuya, Hermet Reviewed By: jsuya Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
11 daysevas_vg: refined the documentation for evas vector APIsTaehyub Kim
Summary: Depends on D11517 Reviewers: jsuya, Hermet Reviewed By: jsuya Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
11 daysevas_vg: refined the evas vector APIs setTaehyub Kim
Reviewers: jsuya, Hermet Reviewed By: jsuya Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
12 daysevas_render: use do_async for mapped child (SW)Shinwoo Kim
Summary: On the SW engine, the rendering has inconsistent between smart object and non-smart object, if they are mapped children. The smart object does ASYNC render while the non-smart object does SYNC render. Because of this there is a filckering rendering problem. [Problem] The following is a case of problems. elm_layout (mapped, map_surface_1) │ ├─ elm_image_1 (mapped) │ └─ elm_image_2 (not mapped) │ └─ evas_object_image After elm_image_1 adds draw command to the draw thread queue, and it starts its drawing on the map_surface_1 on a thread, and stops middle of drawing. At this point, evas_object_image does SYNC draw on the same surface map_surface_1. And the thread for elm_image_1 works for remains. Because the evas_object_image draws before finishing drawing of elm_image_1, There is the problem. F.Y.I. From the first evas_render has done SYNC render for mapped child. cb10c7d evas: Modify software_generic ... with threaded renderer This patch makes mapped children do ASYNC render. Test Plan: {F3856130} {F3856131} Reviewers: Hermet, jsuya, herb Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-03-13efl/gesture: remove duplicated lineMike Blumenkrantz
Summary: this was somehow duplicated Reviewers: CHAN, bu5hm4n, devilhorns Reviewed By: devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-03-13evas_common: rgba32 to Y8 (Enhance Conversion)ali
Summary: Made small change to expand mapping range by using celling values. Now : rgb(255,255,255) -> y(255) Now : rgb(1 , 1 ,1 ) -> y(1) Old : rgb(255,255,255) -> y(254) Old : rgb(1 , 1, 1) -> y(0) It is important for white point convert to not loss any value Test Plan: ``` #include <stdio.h> int main() { unsigned char r =255, g =255,b =255; unsigned int gry8_old = ((r * 19595) + (g * 38469) + (b * 7471)) >> 16; unsigned int gry8_new = ((r * 19596) + (g * 38470) + (b * 7472)) >> 16; printf("gry_old=%i\n",gry8_old); printf("gry_new=%i\n",gry8_new); return 0; } ``` Reviewers: cedric, raster, zmike, vtorri, Hermet, woohyun, bu5hm4n, segfaultxavi Reviewed By: segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-03-12efl/gesture: add fallback for glayer_tap_finger_size not being foundMike Blumenkrantz
just in case Differential Revision:
2020-03-12evas_object_box: respect static clipper.Alastair Poole
Check here for a static clipper else the clipper will move. This causes problems with very large boxes where content will stop rendering due to the clipper moving. Originally this wasn't meant to move but this was missed with the API changes. It wasn't noticed as the clipper default size is very large. See: src/lib/evas/canvas/evas_object_smart.c. If we exceed the 10k range content does not render due to the move. @fix
2020-03-12doxygen docs: Fix illegal referencesXavi Artigas
Mostly typos and unescaped # signs
2020-03-12doxygen docs: Fix some more invalid commandsXavi Artigas
2020-03-12efl_canvas_vg_shape: fix the wrong parameter order in the wrapper of ↵Taehyub Kim
evas_vg_shape_append_cubic_to() Summary: The x, y parameter order should be the end of efl_gfx_path_append_cubic_to() Reviewers: Hermet, jsuya Reviewed By: jsuya Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-03-12efl_gesture_manager: Fix incorrect override system config value.Woochanlee
Summary: The glayer_tap_finger_size can get diffrent value on each profile. Need to get system config value and will set it for gesture manager. Reviewers: zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-03-12canvas proxy: fix a missing case that proxy not updated properly.Hermet Park
Very complex to say, if its source object is remained as chaged state in pending object in rendering stage, the proxy object could miss to update in the next frame because source object won't be changed again in evas_object_change(). Thus we need to double-check if the proxy missed update or not just in the rendering. Not clean but this is a compromised solution to not be burden for finding/checking proxies in object trees every time. @fix
2020-03-11evas_textblock: replace evil tabs with spacesAli Alzyod
Reviewers: devilhorns, ali.alzyod Reviewed By: devilhorns Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-03-10doxygen docs: Fix tons of invalid Doxygen commandsXavi Artigas
Mostly typos
2020-03-10evas.image: add evas_object_image_animated_frame_getShinwoo Kim
this adds an api for getting the current frame of an animation Differential Revision:
2020-03-10evas_object_text: Fix unused parameterChristopher Michael
When we do Not build with BIDI_SUPPORT, then "const Eo *eo_obj" is never used and thus spits out an unused parameter warning during compile. This has been bugging me for quite some time now, so put in a small patch to silence this warning.
2020-03-09doxygen docs: Move smart object methods to proper groupXavi Artigas
Move smart object methods from @ingroup Evas_Canvas to Evas_Smart_Object_Group Also, remove lots of redundant @ingroup Evas_Smart_Object_Group
2020-03-08rewrite efl cnp and dnd handlingMarcel Hollerbach
the previous commits introduced a abstraction for drag in drop which can be now used for this here. With this commit all the direct protocol handling in efl.ui is removed, and only the ecore evas API is used. Additionally, this lead to a giant refactor of how APIs do work. All Efl.Ui. interfaces have been removed except Efl.Ui.Selection and Efl.Ui.Dnd, these two have been restructored. A small list of what is new: - In general no function pointers are used anymore. They feel very uncompftable in bindings and in C. For us its a lot easier to just listen to a event when a drop enters or leaves, there is no need to register custom functions for that. - Asynchronous data transphere is handled via futures, which proved to be more error safe. - Formats and actions are handled as mime types / strings. - 0 is the default seat if you do not know what else to take. - Content is in general passes as a content container from eina, this also allows applications to pass custom types The legacy dnd and cnp API is implemented based on that. All cnp related things are in elm_cnp.c the dnd parts are in elm_dnd.c Reviewed-by: Mike Blumenkrantz <> Differential Revision:
2020-03-06evas_pbject_intercept: add missing parenthesisDaniel Kolesa
Broken in 7c99e0a444d81cc545181682f1a4ae00f76d0873. *spanks*
2020-03-06evas_object_intercept: Add check for NULL 'obj' variable inside macrosChristopher Michael
This patch adds a small check for a valid 'obj' variable inside the object_intercept macros, which fixes several Coverity reported issues of NULL pointer dereference. Fixes CID1420239 through CID1420258
2020-03-06canvas grid: fix inifinite loop dead.Hermet Park
Here parent smart del() call occurs inifinite loop for member deletion, Maybe we need a better clean and neat solution here.
2020-03-06evas/image: implement efl.file loading and mmap getters to correctly handle ↵Mike Blumenkrantz
skip_head when this property is set, the mixin implementation of efl_file_load() is never called, which means the internal loaded flag (and related data) is not set, and so the values for these properties must instead be returned directly from the image data Reviewed-by: Marcel Hollerbach <> Differential Revision:
2020-03-06evas: set mmap data to image data after preload with skip_head enabledMike Blumenkrantz
this is a bit ugly, but in the case where skip_head is used it's important to propagate the resulting Eina_File back up to the image object's data for use in other api functions Reviewed-by: Marcel Hollerbach <> Differential Revision:
2020-03-06evas_object_intercept: Use efl_data_scope_safe_getChristopher Michael
As per mailing list discussion, This macro is apparently a forward facing API so we should be using efl_data_scope_safe_get in the event that the API receives an object of the wrong type (which would have caused a crash previously). Reviewed-by: Marcel Hollerbach <> Differential Revision:
2020-03-06evas_object_intercept: Reduce calls to efl_data_scope_getChristopher Michael
Small patch to reduce the number of calls to efl_data_scope_get as per mailing list discussion. Since the EVAS_OBJECT_INTERCEPT_CALLBACK_DEFINE macro already retrieves the protected data via efl_data_scope_get, we can just pass that protected data directly to evas_object_intercept_init/deinit functions without the need to refetch it. Reviewed-by: Marcel Hollerbach <> Differential Revision:
2020-03-04evas: Fix dereferenceing null pointerChristopher Michael
Coverity reports a forward null here. If we do not get obj from efl_data_scope_get then we should return. Also fixes some formatting Fixes CID1420216
2020-03-04evas: Fix mouse event info for legacy events.Hosang Kim
Summary: Legacy event info have canvas and output coordinates. Output coordinates have information of original position. Canvas coordinates have information of transformed position. So keep backward compatibility, fix filling legacy information. This reverts commit 7f724f6c5db1127a6dd5786791f495b58910e9a9 Reviewers: Hermet, zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-03-03evas: ++safety by prevent invalid accesses.Hermet Park
2020-03-03efl/gesture: deduplicate some codeMike Blumenkrantz
also remove a misleading comment no functional changes Differential Revision:
2020-03-03efl/gesture: fix flick internal touch id trackingMike Blumenkrantz
need to always make sure we set this when a gesture is being tracked so we know which touch point we're watching Differential Revision:
2020-03-03efl/gesture: fix momentum gesture recognizer to properly continue its gesturesMike Blumenkrantz
it's not enough to just check the value for this in the recognizer; we need to always modify the recognizer property here to correctly manage object lifetimes and generate the correct events (e.g., not emitting momentum gestures while multiple fingers are moving simultaneously) also update a couple existing unit test checks which were wrong Differential Revision:
2020-03-03efl/gesture: correctly filter tap events based on the processing touch pointMike Blumenkrantz
if the recognizer is processing using a touch point other than the first finger, e.g., in the case where multiple fingers are pressed simultaneously, then the recognizer needs to also detect distance based on that finger more fixes for triggering tap events while fingers are moving Differential Revision:
2020-03-03efl/gesture: fix internal gesture object managementMike Blumenkrantz
when a gesture ends and is not set to continue, the gesture object must be preserved until the entire touch sequence ends in order to ensure that all the touch point states are accurately detected and updated and so additional instances of that gesture are not accidentally triggered this fixes weird corner cases where you could tap with two fingers and then get a long press event while dragging the second finger around as long as you did it quickly enough Differential Revision:
2020-03-03efl/gesture: port 'rotate' gesture from elm to new gesture frameworkMike Blumenkrantz
this is a 1:1 port with minimal changes other than what's necessary to integrate into the new framework Differential Revision:
2020-03-03efl/gesture: move some internal recognizer functions to be reusableMike Blumenkrantz
no functional changes Differential Revision: