path: root/src/lib/elementary (follow)
AgeCommit message (Collapse)Author
2021-01-03elm - genlist - fix leak if someone steals objects on unrealizeCarsten Haitzler (Rasterman)
elm_genlist_item_all_contents_unset() can steal away the item content. this is how you do a cache of your own objects... BUT this meant genlist couldnt remove its hash entires... as it lost them. this fixes that. leak fixed. (this affected evisum) @fix
2020-12-24elm_gesture_layer: fix config value typeWoochanlee
Summary: The value will read as unsigned char not double. @fix Reviewers: Hermet, raster, zmike Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-12-14eio: Rename EAPI macro to EIO_API in Eio libraryFelipe Magno de Almeida
Summary: Patch from a series of patches to rename EAPI symbols to specific library DSOs. = The Rationale = This patch is from a series of patches to rename EAPI symbols to specific library DSOs. EAPI was designed to be able to pass `__attribute__ ((visibility ("default")))` for symbols with GCC, which would mean that even if -fvisibility=hidden was used when compiling the library, the needed symbols would get exported. MSVC __almost__ works like GCC (or mingw) in which you can declare everything as export and it will just work (slower, but it will work). But there's a caveat: global variables will not work the same way for MSVC, but works for mingw and GCC. For global variables (as opposed to functions), MSVC requires correct DSO visibility for MSVC: instead of declaring a symbol as export for everything, you need to declare it as import when importing from another DSO and export when defining it locally. With current EAPI definitions, we get the following example working in mingw and MSVC (observe it doesn't define any global variables as exported symbols). Example 1: dll1: ``` EAPI void foo(void); EAPI void bar() { foo(); } ``` dll2: ``` EAPI void foo() { printf ("foo\n"); } ``` This works fine with API defined as __declspec(dllexport) in both cases and for gcc defining as `__atttribute__((visibility("default")))`. However, the following: Example 2: dll1: ``` EAPI extern int foo; EAPI void foobar(void); EAPI void bar() { foo = 5; foobar(); } ``` dll2: ``` EAPI int foo = 0; EAPI void foobar() { printf ("foo %d\n", foo); } ``` This will work on mingw but will not work for MSVC. And that's why LIBAPI is the only solution that works for MSVC. Co-authored-by: João Paulo Taylor Ienczak Zanette <> Co-authored-by: Lucas Cavalcante de Sousa <> Co-authored-by: Ricardo Campos <> Reviewers: vtorri, woohyun, lucas, jptiz Reviewed By: vtorri, lucas Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-11-25ui transit: improve zoom effect smoothness by subpixel rendering.Hermet Park
Summary: evas image might have a better quaility if scaling/transform is not necessary, so we have a condition to check if image is axis-aligned transformed or not. On the other hand sub-pixel(floating point coordinates unit) rendering necessary if image has an effect such a zooming. This would result in a smoother effect than integer coodinate system. We need a more precise condition to confirm this, so we intrduce "anti-alias" option to decide the condition. now, anti-aliased objects will have a sub-pixel rendering always. Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-11-18elm_entry: legacy smart selection[start,cleared] callback fixAli Alzyod
Summary: due to changes in latest text apis in unified, legacy selection call back [start,clear] does not work anymore, Now add the support for legacy callback [selection,start selection,cleared] Reviewers: woohyun, bowonryu, stefan_schmidt Reviewed By: bowonryu Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-10-20efl.ui.text : Fixing cursor movement using keyboard arrows/mouse clickabdulleh Ghujeh
Summary: if we have an emoji or a cluster combining multiple Unicode inside ui textbox, we can move the cursor inside the emoji/cluster using keyboard arrows/mouse click. so we should use cluster movement instead of character movement (same as entry). {F3868931} this should resolve T8666 Test Plan: #define EFL_EO_API_SUPPORT 1 #define EFL_BETA_API_SUPPORT 1 #include <Efl_Ui.h> static void _gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) { efl_exit(0); } static void _gui_setup() { Eo *win, *box; win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(), efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC), efl_text_set(efl_added, "Hello World"), efl_ui_win_autodel_set(efl_added, EINA_TRUE)); // when the user clicks "close" on a window there is a request to delete efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _gui_quit_cb, NULL); box = efl_add(EFL_UI_BOX_CLASS, win, efl_content_set(win, efl_added), efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(360, 240))); efl_add(EFL_UI_TEXTBOX_CLASS, box, efl_gfx_hint_weight_set(efl_added, 1.0, 1.0), efl_gfx_hint_align_set(efl_added, 1.0, 1.0), efl_text_markup_set(efl_added, "A&#x262a;&#xfe0f;"), efl_pack(box, efl_added)); } EAPI_MAIN void efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) { _gui_setup(); } EFL_MAIN() Reviewers: ali.alzyod, zmike, woohyun, bu5hm4n Reviewed By: ali.alzyod, woohyun Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T8666 Differential Revision:
2020-10-09efl ui image - dont cancel preload on image if image is an edje objectCarsten Haitzler (Rasterman)
fixes invalid request on non-image object. @fix
2020-10-05elementary image zoomable: fix non supported oversized image.Hermet Park
Summary: if image size is larger than system support, photocam can not show the image. Not like other types of image, photocam is originally designed for huge-size of image, this result is not allowed by users, we should avoid the worst case as we can do. This might not be the best idea, so you can improve it if you have a better solution. Reviewers: kimcinoo Reviewed By: kimcinoo Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-10-03singularize srand in eina_init - only once in one placeCarsten Haitzler (Rasterman)
simplify down to having a single srand() in eina_init and use urandom if it works and is there - if not, time(NULL) will do. it's the best we can...
2020-09-21elm_config: don't prepend /tmp/ to file nameVincent Torri
eina_file_mkstemp() already takes care of this. Differential Revision:
2020-09-21Revert "elm - collection view - check return and fix coverity wanring"Stefan Schmidt
This reverts commit f3fdcf56923c8a2ca126e14d915e6386c7c4ff7e. This commit leads to ninja test timeout. When returning result here the future will never fire and we will keep spinning.
2020-09-21elm - toiolbar - use correct theme icon for more itemCarsten Haitzler (Rasterman)
there is a specific thme icon for "more" items when a toolbar compresses. it literally was not being used. it should use it. "go-down" that it was using isn't exactly very expressive of what this item does... @fix
2020-09-19elm - collection view - check return and fix coverity wanringCarsten Haitzler (Rasterman)
fix CID 1405808
2020-09-18elm_config: remove useless init|shutdown of ecore_win32 and eocore_cocoa ↵Vincent Torri
(done in ecore_evas module), and useless wayland variable ecore_win32 and ecore_cocoa was init. wayland variable was also unused Reviewed-by: Christopher Michael <> Differential Revision:
2020-09-07elm_gesture_layer: fix crash caused by elm_gesture_layer_cb_del in cbJaehyun Cho
elm_gesture_layer_cb_del can be called in Elm_Gesture_Event_Cb cb set by elm_gesture_layer_cb_set and cb_info of the cb is free in the cb. This causes crash if cb_info is searched with EINA_INLIST_FOREACH.
2020-09-05elm cnp - make matchers const and static tooCarsten Haitzler (Rasterman)
2020-09-05elm_cnp: adjust image type to real formatMarcel Hollerbach
we should never say that we have image/png etc. if we do not have the respective format. Otherwise we are just confusing the other client. With this you can copy things from elm to thunderbird / libreoffice writer / firefox / telegram / chromium. Please note if you test this: Start *a new xorg session* it was discovered that xorg clients tent to be totally confused if there was a protocol error before, or some wrong mime type was delivered before, thunderbird even likes to crash if this is not done. This should at some point be extended to more image types.
2020-09-03docs: Add the missing API page name to elementary and evasMyoungwoon Roy, Kim
I had found missing API reference page name. There should be page name to each API defgroup Reviewed-by: Stefan Schmidt <> Differential Revision:
2020-09-01efl_ui_focus_manager_calc: fix CIDMarcel Hollerbach
coverity was complaining that the DIRECTION ACCESS macro might access over a negative direction. However, complement of a 2D direction is always a 2D direction. But coverity cannot detect that.
2020-09-01efl: remove unused functionsMarcel Hollerbach
these are not used, if they are used again in the future, they can be get back via git.
2020-09-01efl: remove bool and string pointer mixupMarcel Hollerbach
2020-09-01elm icon/thumb - fix handling of a wider range of video extnsCarsten Haitzler (Rasterman)
the xetension list for video files was far too small. it menas it missed many kinds of video files. this fixes that to have a much wider range/list. @fix
2020-08-31elm_theme: more secure check extension as '.edj' and not 'edj'Vincent Torri
Reviewed-by: Stefan Schmidt <> Differential Revision:
2020-08-28efl_ui_image: update orientation immediatelyShinwoo Kim
Summary: It is able to get orientation information of inlined image object. This information should be same during its life time. The inlined image object got correct information only after size calculation, so there is a kind of timing issue. An example will be attached for more details. I am not sure what the regression bug mentioned on D6855, but this will keep compatibility of behavior. Actually it seems that the compatibility was broken by D9686 which does not call _efl_ui_image_sizing_eval immediately. Test Plan: {F3947703} Reviewers: Hermet, jsuya, herb Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-08-28elm_config: rescale is needed when font or font size is changedWooHyun Jung
Summary: This patch fixes the issue that any application is not rescaled when font or font size is changed by elementary_config. Test Plan: 1. run elementary_test 2. run elementary_config 3. change the font in elementary_config 4. check the button size in elementary_test Reviewers: id213sin, ali.alzyod, devilhorns, raster Reviewed By: devilhorns, raster Subscribers: devilhorns, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-08-25elm access - fix enum cast warning - checked valuesCarsten Haitzler (Rasterman)
2020-08-25edje - fix enum cast warning - checked valuesCarsten Haitzler (Rasterman)
2020-08-25elm - efl ui text - fix enum return to use right enumCarsten Haitzler (Rasterman)
2020-08-25elm - main - fix enum cast warnings - checked valuesCarsten Haitzler (Rasterman)
2020-08-25elm - flip - fix enum cast warnings - cheked values matchCarsten Haitzler (Rasterman)
2020-08-25elm cnp/dnd - use right evas device enum for seatCarsten Haitzler (Rasterman)
2020-08-25elm scroller - fix mapping of block enums - was brokenCarsten Haitzler (Rasterman)
2020-08-25elm - focus legacy - fix enum implicit casts with explicit - validCarsten Haitzler (Rasterman)
these casts are valid (i checked) to make them explicit and remove warnings
2020-08-25elm - efl ui widget - fix enum warnings with valid castsCarsten Haitzler (Rasterman)
2020-08-25elm image - zoomable - fix enum warnings with valid castsCarsten Haitzler (Rasterman)
2020-08-25elm - efl ui win - fix enum handling with explicit casts where neededCarsten Haitzler (Rasterman)
warnings and cash enums to show we really do keep enums in sync
2020-08-17docs: Correct the wrong API group name in elm_win and elm_glviewMyoungwoon Roy, Kim
I found wrong API group name in elm_win and elm_glview and fixed them. Reviewed-by: Stefan Schmidt <> Differential Revision:
2020-08-10elm_code: Selection start (with keyboard) fix.Alastair Poole
When starting a selection we were jumping two characters. This change resolves that.
2020-08-10elm_code: Always render N new lines (buffer).Alastair Poole
If we don't have a buffer here you CAN lose the race when scrolling. As there is a check later in the flow, we can just use a padding of 64 instead of checking the range. This ensures that scrolling is smooth and content is always rendered throughout an aggressive scroll.
2020-08-05elm_access: fix a potentional error of null derefWonki Kim
Summary: this is a patch to fix a potentional error by null dereferencing. Reviewers: jsuya, kimcinoo, bu5hm4n Reviewed By: jsuya Subscribers: kimcinoo, bu5hm4n, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-08-05efl_ui_textbox: preserve changing user color setAli Alzyod
Summary: setting color inside the constructor call will be override in theme apply because it happen later. txt = efl_add(EFL_UI_TEXTBOX_CLASS, win, efl_text_color_set(efl_added, 0, 255, 0, 255)); Now we will preserve user choice, to not change it during theme apply. Test Plan: ninja test Reviewers: woohyun, bu5hm4n, zmike, segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-08-05elm_entry/efl.ui.textbox: use common key shortcutsAli
Summary: **key** value comes from keyboard down callbacks are common, regardless of language/layout but **keyname** is dependent on layout(in X11, in Wayland Can not be produced). This common fix for both. For example if keyboard layout in arabic then: Ctrl+A will not work (in X11) This one enhances D11606 Reviewers: woohyun, bu5hm4n, zmike Reviewed By: woohyun Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-08-05efl.ui.textbox: Keyboard Enter will add paragraph separatorali
Summary: efl.ui.textbox: Keyboard Enter will add paragraph separator and \n because of D9064 Textbox multiline can work with paragraph separator Reviewers: woohyun, segfaultxavi, bu5hm4n, zmike Reviewed By: woohyun Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-08-04efl_ui_timepicker: Add null check for efl_text_getJunsuChoi
Prevent null access of the string passed from efl_text_get. Reviewed-by: Marcel Hollerbach <> Differential Revision:
2020-08-04elm : fix return of gengrid item swap anim to prevent animation memory leak.SangHyeon Jade Lee
Summary: this is memory leak fix on gengrid item move. when animation reached 1.0, it finish all animation and returns EINA_FALSE to delete current animation. Test Plan: N/A Reviewers: eagleeye Reviewed By: eagleeye Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2020-08-02efl ui image - fix scal to fill - broken with non-rect src imagesCarsten Haitzler (Rasterman)
2020-07-31efl_ui_focus_manager: reduce the amount of relying on eventsMarcel Hollerbach
with this commit we are not replying on event invocations anymore, but rather on direct flag observation in the focus manager itself. This reduces the amount of events that are emitted as a consequence to elements beeing marked dirty segnificantly. startup time of elementary_test goes from 0.50 to 0.46s. Differential Revision:
2020-07-21elm - genlist/grid - call realized/unrealized item func cb after eo cbCarsten Haitzler (Rasterman)
2020-07-20elm - genlist+gird - use item specific realize/unrealize not eo callbackCarsten Haitzler (Rasterman)
this saves a lot of cpu overhead to specialize this with func ptrs in the widget item struct instead of everyone listening on the parent gengrid/genlist widget and eo having to walk lots of callbacks and call them all... major optimization @opt
2020-07-20win - x io errors really just have to exit, so call the iorr cb + exitCarsten Haitzler (Rasterman)
from xlib man page: The XSetIOErrorHandler sets the fatal I/O error handler. Xlib calls the program's supplied error handler if any sort of system call error occurs (for example, the connection to the server was lost). This is assumed to be a fatal condition, and the called routine should not re‐ turn. If the I/O error handler does return, the client process exits. @fix