path: root/src/lib (follow)
AgeCommit message (Collapse)Author
2017-02-27Revert "elm_genlist: when appending items to the parent, prepend to the parent"Jean-Philippe Andre
This reverts commit 43d82e567a2d655a089b6ca3f2d913e6ec52f1dc. I don't understand this commit. It broke the logical order of items, as the internal list wouldn't match the order on screen. Other places in the code didn't seem to make this assumption that parents come after their children. And for sure my recent fixes require the parent to come before. This commit was one of the many reasons why odd/even styles look often wrong. See T3086
2017-02-27genlist: Remove macro GL_IT()Jean-Philippe Andre
It was used to hide "it->item"... but was used less than it->item itself. Explicit code here is not longer, and just as readable. This macro I think was harmful to readability. Simple sed, no real change at all.
2017-02-24ecore: do not access 'timer_thread' global from animator threadMike Blumenkrantz
2017-02-24ecore-evas: use ee->prop.window in ecore_evas_input_event_register()Mike Blumenkrantz
this allows window events to match correctly @fix
2017-02-24ecore-evas: handle pointer_warp() for buffer canvasMike Blumenkrantz
this was missing and would do nothing when called
2017-02-24ecore-evas: handle pointer_xy_get() for buffer canvasMike Blumenkrantz
this was missing and would do nothing when called
2017-02-24ecore-evas: handle screen_geom_get() for buffer canvasMike Blumenkrantz
this was missing and would do nothing when called
2017-02-23elementary: Fix compilation for SDLChris Michael
Not sure how long this has been broken, but the variable name changed in this routine to "is_gl_accel"..."is_hw_accel" is no longer used, so change variable name here to fix compilation with SDL. @fix Signed-off-by: Chris Michael <>
2017-02-23elm: Restore ABI compatibility (elm_pan_gravity)Jean-Philippe Andre
elm_pan_gravity_{set,get} are functions that were generated as legacy APIs (in other words EAPI), but were never actually exposed to applications as they were protected behind EFL_EO_API_SUPPORT (see elm_interfaces.h). This patch restores the ABI compatibility with elementary 1.18.
2017-02-22genlist: Simplify code (remove one argument)Jean-Philippe Andre
Parameter "qadd" is always true when calling _item_process_post(), so simplify the code by removing it.
2017-02-22genlist: Fix more tree issues (expanded state)Jean-Philippe Andre
This fixes a lot of cases where a genlist node (of any type) with children may have appeared in the invalid expanded or contracted state. Before this patch, the test case "Genlist tree, Relative insert" looked like below (all items are programmatically added): > A > 1 > 2 > B > 3 > 4 The problem above is that A and B have visible children but still believe they are in contracted state. This patch ensures that A and B will be marked as expanded, but will do so without firing an "expanded" signal and definitely without the "expand,request" signal. After this patch, the test case will look like this: v A > 1 > 2 v B > 3 > 4 Which is more correct. Note that this test case does not handle any expand/contract signal. NOTE: This is a behaviour break!
2017-02-22genlist: Fix insert after with a treeJean-Philippe Andre
This fixes a case where inserting item "C" after item "B" in this tree would go wrong: A B - 1 - 2 Before this patch, 1 and 2 lose their parent: A B C - 1 - 2 After this patch, 1 and 2 retain their parent: A B - 1 - 2 C Insert before worked by luck, no need to fix it. Note that this patch may require the next one to actually work (ensuring expanded state flag). NOTE: This is a behaviour break!
2017-02-22genlist: Fix sorted_insert with treeJean-Philippe Andre
This fixes the test case "Genlist Tree, Insert Sorted". This is a pretty ugly patch... but the genlist code is already pretty ugly, as it keeps a flat inlist of items (sd->items) as well as a tree structure in parallel. Before this patch, the following configuration led to issues: 1 3 - A - B Adding item "2" led to a crash. Adding item 4 led to this: 1 3 4 - A - B Items A and B lost their parent "3". Subsequent sorted inserts would lead to insane bahaviour, where for instance "8" would appear before "3". This patch fixes all sorted inserts, at the cost of performance (an optimized code path is avoided). Subsequent patches will increase the robustness of the tree structure. NOTE: This is a behaviour break! Fixes T4850
2017-02-21edje_edit: fix scripts compilationAndrii Kroitor
2017-02-21elementary gengrid: fix for working item reorder mode correctlyMinkyu Kang
Summary: Change the item indexing to start 1 after reordering animation. Change the logic of edge checking to get the row or col correctly. Signed-off-by: Minkyu Kang <> Test Plan: elementary_test -to gengrid2 append 6 items enable the reorder mode check reordering is working properly (4 to 1) @fix Reviewers: singh.amitesh, cedric Subscribers: jehun.lim, jpeg Differential Revision:
2017-02-21dayselector: Fix DaySelector widgetJean-Philippe Andre
An invalid strcmp() led to always reject the swallowed widgets, which were Elm.Check instead of Elm_Check. Use efl_isa() instead. Fixes T5034
2017-02-21edje: Fix a major issue with recalc loopJean-Philippe Andre
With the new Efl.Ui.Clock widget, which implements Datetime, most parts are relative to each other, and trigger a near-inifinite recalc of all the parts. Indeed edje was recalculating a part even if it had already calculated it (flag is set). This seemingly simple patch fixes Datetime and probably a lot of other edje widgets. Fixes T4909 @fix
2017-02-21evas: Optimize out some nop calls to evas textJean-Philippe Andre
Some property set calls to Evas Text are NOPs if the property was already set to the same value. Avoid doing any work then. This adds a missing intercept call (size_set as it's overriden by Evas.Text).
2017-02-21elm: Make clock widget more resilient to invalid configJean-Philippe Andre
I was in a situation where my elm_config had the proper version but did not contain a proper module name for the clock widget. This resulted in not being able to create any field object in the clock widget... in other words it made for a very useless clock :) Ideally the config should be updated at this point. I'm not sure how to proceed exactly, though :(
2017-02-21evas: Fix module memleak during evas_shutdownJean-Philippe Andre
This fixes a minor memory leak during shutdown. Note: This does NOT perform the dlclose (and still leaks the Eina_Module descriptor). Calling dlclose leads to a whole lot of other issues, so we avoid it.
2017-02-21evas: Fix compilation warning (unused variable)Jean-Philippe Andre
2017-02-21evas: Avoid data_scope_get in internal functionJean-Philippe Andre
2017-02-21evas: Inline part of clip_dirtyJean-Philippe Andre
clip_dirty is called A LOT. Unfortunately this patch does not result in very measurable improvements. ********************** Note about this merge: After this series of patches, the CPU usage for a certain test case has significantly gone down: Based on c0e6a8d698c17fc16f9b67fc9 (upstream before git push): NS since frame 2 = 28910806786 , 2937 frames = 9843652 / frame After this patch: NS since frame 2 = 19218592951 , 2928 frames = 6563727 / frame 1.18: NS since 2 = 13105584220 , 2961 frames = 4426066 / frame As we can see, 1.18 remains *much* better than 1.19. I'm still struggling trying to figure out why (clip_recalc is called more, but the call tree is hard to decypher). The test case is: EINA_FREEQ_BYPASS=1 ELM_TEST_AUTOBOUNCE=100 \ elementary_test -to "Scroller 2" EFL was compiled with GCC 6.3.1 with -O3 -g @optimization
2017-02-21evas: Inline part of clip_recalcJean-Philippe Andre
This function was moved out of inline (see d7c6fca6c00a0bfb05) but unfortunately the early checks at its beginning are likely to result in an early return. Inline this part so we get back a better performance. Inlining the whole function does not improve the performance, as GCC simply gives up with inlining. Note: Between 1.18 and master the number of calls to clip_recalc has simply blown out. It is thus crucial to find out where those calls come from but also micro-optimize the function itself. This patch does the latter only. @optimize
2017-02-21evas: Optimize out some calls to data_scope_getJean-Philippe Andre
Within evas when we know an object is marked as is_smart, then we know it's a smart object. :) @optimize
2017-02-21evas: Avoid more calls to efl_isa in clip_setJean-Philippe Andre
No need to verify that the clip is an evas object unless we're actually going to change said clipper. This has a minor effect, removing ~10% of all calls to efl_isa (0.1% of everything). After all those efl_isa patches the number of calls has dropped from 1.9M (~3.05%) to ~570k (0.76%). More can still be done, surely. Now efl_isa accounts for ~0.05% of my CPU usage according to perf top (down from ~0.7%). If edje uses EO APIs instead of legacy image APIs, then many of the remaining calls will vanish. @optimization
2017-02-21evas: Assume object is valid and avoid call to efl_isaJean-Philippe Andre
In an internal function we should be able to safely assume an object is indeed a smart object. @optimization
2017-02-21evas: Optimize out more calls to efl_isaJean-Philippe Andre
In relative smart move, we only need to check once that the object is indeed a valid smart object. This drops the call count from ~1.02M to ~785k. @optimization
2017-02-21evas: Avoid call to EAPI inside internal codeJean-Philippe Andre
This avoids calling efl_isa and locking the async mutex. In callgrind analysis, this reduces the count of calls to efl_isa from 1.96M to 1.02M. @optimization
2017-02-21evas: Avoid useless calls to eo_data_scope_getJean-Philippe Andre
Use an internal variant of the function for evas when we already have the protected data pointer.
2017-02-21eo: Make _eo_obj_pointer_done an inline functionJean-Philippe Andre
2017-02-21evas: Remove useless call to evas_object_async_blockJean-Philippe Andre
It's already called from the intercept cb.
2017-02-21evas: Inline checks for post-event cb callJean-Philippe Andre
This avoid excessive calls to a real function. @optimization
2017-02-21docs: Fix typos and some wrong expressions in Eina API reference doxygen.Myoungwoon Roy, Kim
Summary: I had fixed some typos and some wrong expressions, such as capital letters, singular, and orders of groups in Eina API reference doxygen. Test Plan: Doxygen Revision Reviewers: stefan, cedric, raster, Jaehyun_Cho, jpeg Reviewed By: jpeg Subscribers: conr2d Differential Revision:
2017-02-20eina utils: fix build without getpwent.Mykyta Biliavskyi
If HAVE_GETPWENT isn't defined - the closing brace was missed. Also prevent situation when strdup() tried to duplicate NULL pointer, because that could cause segfault. @fix
2017-02-20interface_scrollable: Improve gravity_set api to support pan changingWonki Kim
Summary: When you set gravity 1 on scroller, scroller sticks to the bottom even content is changed. however, scroller don't work like above, if size of pan is changed. this commit uses pan_pos_max rather than w/h of content_info because pan_pos_max is related with both content_size and pan size. gravity_set will work properly even if both size of content and pan are changed simultaneously. Test Plan: 1. Select 'scroll3' in the elementary_test 2. Append enough items so that scroll bar appears (about 30 items) 3. Go to the bottom and Set gravity 1.0 4. Check that scroller sticks to the bottom once you append another item (it works) 5. Check that scroller sticks to to bottom once you resize window(pan) (it doesn't work without this patch) Reviewers: eagleeye, jpeg, cedric, woohyun, z-wony, herdsman Differential Revision:
2017-02-20evas: do not error for smart class objectsMarcel Hollerbach
Summary: this should fix some spamming in e Reviewers: jpeg Reviewed By: jpeg Subscribers: cedric Differential Revision: Signed-off-by: Jean-Philippe Andre <>
2017-02-19Canvas text: fix clearing existing styleDaniel Hirt
Fixes T5187. This fixes a leak in evas_textblock_style_user_pop, that made use of the new key-based efl_canvas_text_style_set api. @fix
2017-02-19elm_code: Another Coverity fix, better this time.Andy Williams
@fix CID1371322
2017-02-19elm code - fix warning about sign comparisonsCarsten Haitzler (Rasterman)
2017-02-18elm_code: Fix Coverity issues.Andy Williams
@fix CID1356612 CID1368335 CID1368489 CID1371123 CID1371124 CID1371126 CID1371128
2017-02-17fix entry selection by having proper cfg update and def fieldsCarsten Haitzler (Rasterman)
this should fix T5183
2017-02-16eo: ensure the generation is correctly clampedMarcel Hollerbach
Summary: when a few recursive event emissions are happening, and in some deep recursive level a subscription to the same object is happening, the subscription would just be executed when the complete recursion is done. that is wrong. The subscription needs to be executed when the event is called after the subscription is added, undepended from any recursive level. That fixes that and adds a regression test for it. This was discovered in e, since e gives a lot of error messages about a eo object that is already freed. It turned out this object is returned from evas, and exactly the above happened to the EFL_EVENT_DEL subscription of that object. Test Plan: make check Reviewers: tasn, cedric, stefan_schmidt Subscribers: stefan_schmidt, netstar, zmike, raster, jpeg Differential Revision: Signed-off-by: Cedric BAIL <>
2017-02-16doxygen: fix typos and some wrong expressions in Edje and Eet API reference ↵Myoungwoon Roy, Kim
documentation. Summary: I had fixed some typos and some wrong expressions, such as capital letters, singular, and orders of groups in Edje and Eet API reference doxygen. Test Plan: Doxygen Revision Reviewers: stefan, cedric, raster, Jaehyun_Cho, jpeg Subscribers: conr2d Differential Revision: Signed-off-by: Cedric BAIL <>
2017-02-16gengrid: Remove duplicated smart callbacksJean-Philippe Andre
WRN... evas_smart.c:219 evas_smart_cb_descriptions_fix() duplicated smart callback description with name 'item,focused' and type ''
2017-02-16widget: Reduce WRN to DBG for on_focus_region messageJean-Philippe Andre
Many widgets don't implement this function, and this case is perfectly well handled by the caller. No need to WRN here.
2017-02-16evas: Silence useless WRN message on canvas delJean-Philippe Andre
2017-02-16ecore_evas: Fix mouse event in inlined windowsJean-Philippe Andre
This fixes the following ERR message: ERR<10589>:eina_safety /home/jpeg/e/core/efl/src/lib/ecore_evas/ecore_evas.c:3149 _ecore_evas_mouse_move_process_internal() safety check failed: cursor == NULL
2017-02-16win: Avoid magic check failed in ecore with inline winJean-Philippe Andre
Fixes T4663
2017-02-16win: Avoid malloc in icon_object_setJean-Philippe Andre
Also support both Evas.Image and EO Efl.Canvas.Image classes. Add a test case in elm_test (under "Icon"). I'm not so happy about this patch... it shows that the API barrier between legacy and EO implemented for images may not be such a great idea after all :(