AgeCommit message (Collapse)Author
2017-01-17evas: Implement buffer caching for textblock filtersJean-Philippe Andre
This is the most basic optimization that needs to be done for filters to be useful: cache the output rgba buffers for each filtered element. Hopefully this doesn't leak. I'm not making any promises about that though :)
2017-01-17evas: Implement filter sources support for textblockJean-Philippe Andre
2017-01-17evas: Implement filter_data_set for textblockJean-Philippe Andre
This is a function that allows passing variables from C or EDC to the filter's Lua code. Useful in particular for color classes from EDC. This data would be the global data but we could eventually add a markup tag to specify a data value per filter instance. For now a single data value per tb object should be more than enough though.
2017-01-17elm_test: Improve gfx filter test case for tb & textJean-Philippe Andre
Now we can test both of those widgets with filters. We could also add an image. This test case still needs some improvement anyway.
2017-01-17evas: Adjust tb padding from gfx filters paddingJean-Philippe Andre
This makes gfx filters padding work just like the standard style padding, which means the tb user must offset the object position by -l, -t and increase the object size by l+r,t+b.
2017-01-17evas: Remove unused 'inset' field from tb itemsJean-Philippe Andre
2017-01-17evas: Fix tb filters spanning over multiple itemsJean-Philippe Andre
If a gfx filter was applied to a block of text spanning over multiple text items, then it would improperly render as the filter context was stored in the format, rather than the text item. This is fixed by using a list of contexts in the format node rather than a single context.
2017-01-17evas: Set gfx filters by name on textblockJean-Philippe Andre
This allows for much simpler markup, and easier tracking of which filters are in use, etc... Next: data and sources.
2017-01-17evas: Experimental textblock support for gfx filtersJean-Philippe Andre
This is only for testing purposes for now. Eventually we need to fix the following things: - terrible performance (cache buffers) - force redraws based on filter padding - expand textblock padding based on max filter padding - add sources, data and a filter name/code hash - test! :)
2017-01-17evas: Remove most extra data from filter mixinJean-Philippe Andre
This should save a bit of memory for all image & text objects. This exploits the previous patch for the post-render job queue added to evas, and simplifies this bit of code.
2017-01-17evas: Add a very simple post-render job listJean-Philippe Andre
This will be used by the filters
2017-01-17evas: Refactor evas filters a bitJean-Philippe Andre
This is a preparation step for (experimental) textblock support. Textblock objects won't have a single filter, and the buffer's geometry wouldn't be that of of the object itself. Thus a few internal APIs need to be reworked first.
2017-01-17eina: Remove EAPI eina_freeq_main_set()Jean-Philippe Andre
I believe this function is not required and should not be used by applications. If there is a very good use case to use your own main freeq, then the API could be added again. For now, removing the set() is probably the safer option. Note: the API was introduced in the upcoming 1.19
2017-01-17evas: Use eina_slstr to simplify render debugJean-Philippe Andre
Only enabled if REND_DBG is manually enabled inside evas_render.c
2017-01-17eina: Introduce Eina_Slstr for short-lived stringsJean-Philippe Andre
Built on top of the new 'postponed' free queue, the short-lived strings API allows users to return new strings without caring about freeing them. EFL main loop will do this automatically for them you at a later point in time (at the end of an iteration). The APIs provided will either duplicate (copy) or more generally steal an existing string (char *, stringshare, tmpstr, strbuf), taking ownership of it and controling its lifetime. Those strings can then be safely returned by an API. From a user point of view, those strings must be considered like simple const char *, ie. no need to free() them and their validity is limited to the local scope. There is no function to remove such a string from the freeq. The short lived strings API is not thread-safe: do not send a short-lived object from one thread to another. @feature
2017-01-17eina_freeq: Add mode for postponed deletionJean-Philippe Andre
While this reuses the existing (but new) infrastructure of eina_freeq, the mode of operation and objective is very different from the default freeq. By default, any object added to the freeq is basically already freed from the user point of view, and the freeq itself only adds a tiny layer of memory safety by deferring the actual call to free and optionally filling the memory blob with a pattern ('wwwww...'). This is mostly thread-safe (requires thread-safe free functions). This new type I called postponed is intended to store objects that will be short lived. This is not thread safe as the life of the objects added to this queue depends on the thread that adds to the queue. The main intent is to introduce a new API for short-lived strings. @feature
2017-01-16eolian: merge internal funcs in database fillDaniel Kolesa
2017-01-16eolian: remove/add APIs and clean up implements systemDaniel Kolesa
As there is no need to have separate is_auto, is_empty and is_pure_virtual for functions and implements (each function has its own base implement by default) I removed the function ones. Instead, I added a way to retrieve a function's base implement so that you can instead do the checks on the implement even when you only have the function. I also moved base implement build directly into the parser instead of the database filler. That allows for significant cleanup. I also removed distinction of implement pointers in Eolian_Function for get and set as implements now always contain an entire thing so the pointer was always the same anyway. Things should still behave more or less the same, but ordering of generated functions has changed because ordering of implements has changed.
2017-01-16interface_scrollable: Unify basis of calculation of page_get logicWonki Kim
Summary: If rtl mode is set, current_page_get api should return reversed page number. To do that, make x position x-axis reversed before page calculating. Also bring_in and page_show should show the reversed page in rtl mode. This patch modify the functions to support that. Lastly, scroller should be scrolling based on the right edge of the page. This patch is a combination of the patches(D4559,D4560) Test Plan: 1. Run scroller test on elementary_test 2. Turn ui mirrored mode on 3. Manipulate scroller in various ways - It should scroll proper position when you click next or prev btn. Reviewers: woohyun, taxi2se, z-wony, cedric Subscribers: cedric, jpeg Differential Revision:
2017-01-16elm_multibuttonentry: Fix MBE got a wrong state.Woochan Lee
Summary: Even User set a MBE state as "shrink" when MBE created. MBE has been changed the state as "none" during added items. This patch will be fixed that bug state. @fix Test Plan: Add below line after create mbe. 'elm_multibuttonentry_expanded_set(mbe, EINA_FALSE)' Then Add items using item_append API. See the result. mbe is not on shrink mode. Reviewers: Hermet, jpeg, cedric Subscribers: cedric, jpeg Differential Revision:
2017-01-15elm_code: Add some safetyAndy Williams
2017-01-15elm_code: Fix selection when moving around with cursor keysAndy Williams
Also fix the handling of newlines in our selections @fix
2017-01-15net gadget: try to improve the themeDave Andreoli
* make the 2 monitors fill based on tx/rx percentage vals * try a more bluish version (still need a bit of love) Note that this is not working atm (okra need to fix in E)
2017-01-13Luncher: Fix engage theme to scale more smoothly.Andy Williams
There is still a layering issue and the algorithm could be improved
2017-01-13ecore-wl2: make session recovery listener globalMike Blumenkrantz
global proxies have a single instance and do not work with multiple listeners @fix
2017-01-13elm_box: allow aspects 1 <= x < 0.0Mike Blumenkrantz
this was a typo in my initial implementation @fix
2017-01-13ecore-wl2: Use input serial for move and resize functionsChris Michael
This is a partial revert of 2bd880c6c7 which changed to use wl_display_get_serial function. When can do that for most things, however things like window move/resize need to use the input serial which started the move/resize. Signed-off-by: Chris Michael <>
2017-01-13docs: generate correct eolian function signaturesDaniel Kolesa
Now signatures don't contain full class name, just func name.
2017-01-13eolian: change eo file syntax @virtual_pure -> @pure_virtualDaniel Kolesa
2017-01-13eolian: use consistent pure_virtual naming in APIDaniel Kolesa
Previously one API used just virtual (incorrect) and one used virtual_pure (which just sounds weird). So unify with a single name, pure_virtual, similar as in other lanugages. This does not change eo file syntax yet.
2017-01-13eolian: consistent and cleaner error values from APIsDaniel Kolesa
Now all error/unknown/etc values returned from APIs are zero, previously it was a mix of zeroes and minus ones. Also, some enums that had no error/invalid value before have one now, which allows for better distinction between what is an error and what is an intended result.
2017-01-13elm_bg: rotate image according to the orientation infoJaeun Choi
rotate image into the standard orientation according to the EXIF data (think about taking a picture from camera and setting it as bg)
2017-01-13efl_ui_win - switch to the element being used for border typeCarsten Haitzler (Rasterman)
2017-01-12elm_gesture_layer: update doc.Woochan Lee
Summary: Add description about gesture APIs. Some of the developers told me that they really have no idea what is this for when first see the API doc... Reviewers: Hermet, raster, jpeg, cedric Reviewed By: cedric Subscribers: cedric, jpeg Differential Revision: Signed-off-by: Cedric BAIL <>
2017-01-12elm.hoversel: revert unnecessary item expansion & get proper sizeJee-Yong Um
Summary: The changes of previous patch (4ea7effe70423b5f88f98aea45a96582669aa280) are reverted, and item calculation is fixed correctly. The main reason why hoversel item has wrong size in screen rotation is that hover doesn't update geometry when the size of target object is changed. Test Plan: elementary_test -to hoversel Reviewers: cedric, jpeg Differential Revision: Signed-off-by: Cedric BAIL <>
2017-01-12elm_hoversel: reset alignment before calculationJee-Yong Um
Summary: When screen is rotated, _resizing_eval() will be called twice by hover_parent resize and hoversel movement. If the alignment is changed to the right in the first call because of the geometry of edje part is not updated yet (hoversel uses edje part geometry in calculation), hoversel keeps being right-aligned in the second call, even though there is enough space to show with default alignment. Test Plan: elementary_test -to hoversel Reviewers: cedric, jpeg Differential Revision: Signed-off-by: Cedric BAIL <>
2017-01-12ecore_file: add case to properly rename a file in WindowsIvan Furs
Summary: If the file with a new path was created and 'rename' wants to replace the old path to the new path. 'rename' will return: Windows 7: -1 (errno=EEXIST) (EEXIST == 17) Ubuntu: 0 **EEXIST** **Ubuntu**: The link named by new is a directory that is not an empty directory. ( **Windows 7**: Files exist. An attempt has been made to create a file that already exists. For example, the _O_CREAT and _O_EXCL flags are specified in an _open call, but the named file already exists.( Test Plan: **Sample code to rename in Linux and Windows if the file with the new name already exists:** int main() { const char *_old = "old"; const char *_new = "new"; int fd1 = open(_old, O_CREAT); close(fd1); int fd2 = open(_new, O_CREAT); close(fd2); printf("rename:\t%s -> %s\n", _old, _new); int r = rename(_old, _new); if (r == 0) { printf("GOOD\n"); } else { printf("CODE ERROR:\n" ); printf(" -rename...: %d\n", r ); printf(" -errno....: %d\n", errno); } return 0; } Reviewers: raster, vtorri, jpeg, NikaWhite, reutskiy.v.v, an.kroitor, cedric Reviewed By: cedric Subscribers: artem.popov, cedric, jpeg Tags: #efl, #windows Differential Revision: Signed-off-by: Cedric BAIL <>
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-12Ui text: fix deletion of the swallowed text objectDaniel Hirt
The Efl.Canvas.Text object loses its parent due to a specific behavior of Edje when swallowing objects. The mentioned object then loses sync with the Ui.Text object, thus not getting deleted upon destruction - that's actually because Edje reparents to the canvas upon its own deletion. Adding this fix until we figure out if there is a better alternative.
2017-01-12elput: Send touch motion before sending touch button eventsChris Michael
This patch sends a touch motion event before sending of touch up/down events. This allows some compositors (enlightenment) to update their internal representation of where the mouse pointer is before handling button events (as touch down/up is treated as a mouse button down/up). Fixes T5094 for the old man ;) Signed-off-by: Chris Michael <>
2017-01-12elput: Store touch timestamp and slotChris Michael
This patch adds a timestamp field to the touch structure so that we can store it and do not have to refetch the timestamp when sending touch events. Signed-off-by: Chris Michael <>
2017-01-12eolian: strict function type input checks in APIsDaniel Kolesa
Strictness of various Eolian APIs has been enhanced, for example eolian_class_function_get_by_name now won't return anything if you request an EOLIAN_PROPERTY and the found func is just an EOLIAN_PROP_GET, and various APIs won't accept arbitrary inputs like EOLIAN_UNRESOLVED or EOLIAN_PROPERTY now, instead you will need to provide EOLIAN_PROP_GET, EOLIAN_PROP_SET or EOLIAN_METHOD explicitly. The purpose of this is to reduce potential bugs and fix ambiguous behavior. Thanks to use of EINA_SAFETY, appropriate errors should be printed into terminal when an API is used incorrectly.
2017-01-12eolian gen: do not use EOLIAN_UNRESOLVED/PROPERTY for lookupsDaniel Kolesa
2017-01-12elm theme/test - add start of nviframe window style and test itCarsten Haitzler (Rasterman)
2017-01-12elm_win - fix getting of stack id string if win id changesCarsten Haitzler (Rasterman)
new feature. win id changed with csd pus alpha so reget stack id string then
2017-01-12eo - remove the spare eo domain for now for future expansionCarsten Haitzler (Rasterman)
2017-01-11eolian: fine-grained is_auto/is_empty for implementsDaniel Kolesa
2017-01-11eolian: remove function_is_implementedDaniel Kolesa
Its design does not match current Eolian and will be replaced later. There isn't any generator using it right now, so it's safe to remove.
2017-01-11ecore-evas-wayland: Add handler for window_configure_complete eventChris Michael
Small patch to add a handler so we can listen for when the surface configure event is complete and can then go ahead and attach buffers to the surface. This allows rage <filename> to work again in Weston :) NB: This does allow rage <filename> to work under Weston now, but still fails under Enlightenment for some reason :( ref T5090 Signed-off-by: Chris Michael <>
2017-01-11ecore-wl2: Add event to raise when window configure is completed.Chris Michael
Small patch to create and raise a new event letting ecore_evas know when the window has been configured. With the addition of xdg_shell v6 support, we cannot commit a surface with an existing buffer until the surface has been configured. This patch allows us to raise an event to ecore_evas when the surface has been configured, so we can then attach a buffer to it. ref T5090 Signed-off-by: Chris Michael <>