[EGIT] [core/efl] master 01/01: win: Fix alpha windows
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c308498a9d9a6f59e8b1090f73867c26a4683599 commit c308498a9d9a6f59e8b1090f73867c26a4683599 Author: Jean-Philippe AndreDate: Wed Nov 8 16:17:29 2017 +0900 win: Fix alpha windows Fixes T6334 --- src/lib/elementary/efl_ui_win.c | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 3a811ee121..3d90f0a1f3 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -5342,6 +5342,13 @@ _efl_ui_win_efl_object_finalize(Eo *obj, Efl_Ui_Win_Data *sd) return obj; } +EOLIAN static void +_efl_ui_win_efl_canvas_object_legacy_ctor(Eo *obj, Efl_Ui_Win_Data *sd) +{ + efl_canvas_object_legacy_ctor(efl_super(obj, MY_CLASS)); + sd->legacy.ctor = EINA_TRUE; +} + EOLIAN static Efl_Ui_Focus_Manager* _efl_ui_win_elm_widget_focus_manager_create(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root) { @@ -8422,6 +8429,7 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_win, Efl_Ui_Win_Data) #define EFL_UI_WIN_EXTRA_OPS \ EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_win), \ - ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_win) + ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_win), \ + EFL_OBJECT_OP_FUNC(efl_canvas_object_legacy_ctor, _efl_ui_win_efl_canvas_object_legacy_ctor) #include "efl_ui_win.eo.c" --
[EGIT] [core/efl] master 01/01: evas/vg: changed the efl_vg_dup api signature.
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8952c3e52444d78504a822bf95d757621891dd41 commit 8952c3e52444d78504a822bf95d757621891dd41 Author: subhransu mohantyDate: Wed Nov 8 15:49:37 2017 +0900 evas/vg: changed the efl_vg_dup api signature. Reviewers: jpeg, cedric Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5440 --- src/lib/edje/edje_calc.c | 4 +- src/lib/evas/canvas/efl_vg.eo | 6 +-- src/lib/evas/canvas/evas_vg_container.c | 26 -- src/lib/evas/canvas/evas_vg_gradient.c| 21 src/lib/evas/canvas/evas_vg_gradient_linear.c | 18 +++ src/lib/evas/canvas/evas_vg_gradient_radial.c | 20 src/lib/evas/canvas/evas_vg_node.c| 70 +-- src/lib/evas/canvas/evas_vg_shape.c | 44 ++--- src/lib/evas/vg/evas_vg_cache.c | 3 +- 9 files changed, 76 insertions(+), 136 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index d752e2360a..3cfa5dc924 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -3729,9 +3729,7 @@ _edje_svg_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3 EINA_U dest_root = efl_canvas_vg_root_node_get(ep->object); efl_ref(dest_root); -// FIXME: root = dup(), root.interpolate(dest). -root = evas_vg_container_add(NULL); -evas_vg_node_dup(root, src_root); +root = evas_vg_node_dup(src_root); if (!evas_vg_node_interpolate(root, src_root, dest_root, pos)) { diff --git a/src/lib/evas/canvas/efl_vg.eo b/src/lib/evas/canvas/efl_vg.eo index ecb514133b..2d64ade17b 100644 --- a/src/lib/evas/canvas/efl_vg.eo +++ b/src/lib/evas/canvas/efl_vg.eo @@ -103,11 +103,9 @@ abstract Efl.VG (Efl.Object, Efl.Gfx, Efl.Gfx.Stack) @in pos_map: double; [[Interpolate mapping]] } } - dup { + dup @const { [[Duplicate vector graphics object]] -params { - @in from: const(Efl.VG); [[Source object]] -} +return: Efl.VG @owned; } } implements { diff --git a/src/lib/evas/canvas/evas_vg_container.c b/src/lib/evas/canvas/evas_vg_container.c index 704d6c1485..b89d702369 100644 --- a/src/lib/evas/canvas/evas_vg_container.c +++ b/src/lib/evas/canvas/evas_vg_container.c @@ -151,28 +151,20 @@ _efl_vg_container_efl_vg_interpolate(Eo *obj, return r; } -static void -_efl_vg_container_efl_vg_dup(Eo *obj, - Efl_VG_Container_Data *pd, - const Efl_VG *from) +EOLIAN static Efl_VG * +_efl_vg_container_efl_vg_dup(const Eo *obj, Efl_VG_Container_Data *pd) { - Efl_VG_Container_Data *fromd; Eina_List *l; - Eo *child; - - efl_vg_dup(efl_super(obj, EFL_VG_CONTAINER_CLASS), from); + Efl_VG *child; + Efl_VG *cn = NULL; - fromd = efl_data_scope_get(from, EFL_VG_CONTAINER_CLASS); - - EINA_LIST_FREE(pd->children, child) - efl_unref(child); - - EINA_LIST_FOREACH(fromd->children, l, child) + cn = efl_vg_dup(efl_super(obj, MY_CLASS)); + EINA_LIST_FOREACH(pd->children, l, child) { -// By setting parent, we automatically reference -// this new object as a child of obj. Magic at work ! -(void) efl_add(efl_class_get(child), obj, efl_vg_dup(efl_added, child)); +// parent_set adds the new node to the list of children of cn +efl_parent_set(efl_vg_dup(child), cn); } + return cn; } EAPI Efl_VG* diff --git a/src/lib/evas/canvas/evas_vg_gradient.c b/src/lib/evas/canvas/evas_vg_gradient.c index 12f8b3d504..db59b1b0fc 100644 --- a/src/lib/evas/canvas/evas_vg_gradient.c +++ b/src/lib/evas/canvas/evas_vg_gradient.c @@ -5,6 +5,8 @@ #include +#define MY_CLASS EFL_VG_GRADIENT_CLASS + static void _efl_vg_gradient_efl_gfx_gradient_stop_set(Eo *obj EINA_UNUSED, Efl_VG_Gradient_Data *pd, @@ -94,19 +96,16 @@ _efl_vg_gradient_efl_vg_interpolate(Eo *obj, return EINA_TRUE; } -static void -_efl_vg_gradient_efl_vg_dup(Eo *obj, - Efl_VG_Gradient_Data *pd EINA_UNUSED, - const Efl_VG *from) -{ - Efl_VG_Gradient_Data *fromd; - - efl_vg_dup(efl_super(obj, EFL_VG_GRADIENT_CLASS), from); +EOLIAN static Efl_VG * +_efl_vg_gradient_efl_vg_dup(const Eo *obj, Efl_VG_Gradient_Data *pd) - fromd = efl_data_scope_get(from, EFL_VG_GRADIENT_CLASS); +{ + Efl_VG *cn = NULL; - efl_gfx_gradient_stop_set(obj, fromd->colors, fromd->colors_count); - efl_gfx_gradient_spread_set(obj, fromd->s); + cn = efl_vg_dup(efl_super(obj, MY_CLASS)); + efl_gfx_gradient_stop_set(cn, pd->colors, pd->colors_count); + efl_gfx_gradient_spread_set(cn, pd->s); + return cn; } EAPI void diff --git
[EGIT] [core/efl] master 01/01: tests: Properly define access beta/protected
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=75a65ad41a02e2352a193b3b6cea2a99b7562591 commit 75a65ad41a02e2352a193b3b6cea2a99b7562591 Author: Jean-Philippe AndreDate: Wed Nov 8 14:18:05 2017 +0900 tests: Properly define access beta/protected This solves warnings (and likely errors) in the make check test cases for ATSPI, since most of efl_access APIs are now marked as beta. --- src/tests/elementary/elm_test_actionslider.c| 2 +- src/tests/elementary/elm_test_box.c | 2 +- src/tests/elementary/elm_test_bubble.c | 2 +- src/tests/elementary/elm_test_button.c | 2 +- src/tests/elementary/elm_test_calendar.c| 2 +- src/tests/elementary/elm_test_check.c | 2 +- src/tests/elementary/elm_test_clock.c | 2 +- src/tests/elementary/elm_test_colorselector.c | 2 +- src/tests/elementary/elm_test_conformant.c | 2 +- src/tests/elementary/elm_test_ctxpopup.c| 2 +- src/tests/elementary/elm_test_datetime.c| 2 +- src/tests/elementary/elm_test_dayselector.c | 2 +- src/tests/elementary/elm_test_diskselector.c| 2 +- src/tests/elementary/elm_test_entry.c | 2 +- src/tests/elementary/elm_test_fileselector.c| 2 +- src/tests/elementary/elm_test_fileselector_button.c | 2 +- src/tests/elementary/elm_test_fileselector_entry.c | 2 +- src/tests/elementary/elm_test_flip.c| 2 +- src/tests/elementary/elm_test_flipselector.c| 2 +- src/tests/elementary/elm_test_frame.c | 2 +- src/tests/elementary/elm_test_gengrid.c | 2 +- src/tests/elementary/elm_test_glview.c | 2 +- src/tests/elementary/elm_test_grid.c| 2 +- src/tests/elementary/elm_test_hover.c | 2 +- src/tests/elementary/elm_test_hoversel.c| 2 +- src/tests/elementary/elm_test_icon.c| 2 +- src/tests/elementary/elm_test_image.c | 2 +- src/tests/elementary/elm_test_index.c | 2 +- src/tests/elementary/elm_test_inwin.c | 2 +- src/tests/elementary/elm_test_label.c | 2 +- src/tests/elementary/elm_test_layout.c | 2 +- src/tests/elementary/elm_test_map.c | 2 +- src/tests/elementary/elm_test_mapbuf.c | 2 +- src/tests/elementary/elm_test_menu.c| 2 +- src/tests/elementary/elm_test_multibuttonentry.c| 2 +- src/tests/elementary/elm_test_naviframe.c | 2 +- src/tests/elementary/elm_test_notify.c | 2 +- src/tests/elementary/elm_test_panel.c | 2 +- src/tests/elementary/elm_test_panes.c | 2 +- src/tests/elementary/elm_test_photo.c | 2 +- src/tests/elementary/elm_test_photocam.c| 2 +- src/tests/elementary/elm_test_player.c | 2 +- src/tests/elementary/elm_test_plug.c| 2 +- src/tests/elementary/elm_test_popup.c | 2 +- src/tests/elementary/elm_test_prefs.c | 2 +- src/tests/elementary/elm_test_progressbar.c | 2 +- src/tests/elementary/elm_test_radio.c | 2 +- src/tests/elementary/elm_test_scroller.c| 2 +- src/tests/elementary/elm_test_segmentcontrol.c | 2 +- src/tests/elementary/elm_test_separator.c | 2 +- src/tests/elementary/elm_test_slider.c | 2 +- src/tests/elementary/elm_test_slideshow.c | 2 +- src/tests/elementary/elm_test_spinner.c | 2 +- src/tests/elementary/elm_test_table.c | 2 +- src/tests/elementary/elm_test_thumb.c | 2 +- src/tests/elementary/elm_test_toolbar.c | 2 +- src/tests/elementary/elm_test_video.c | 2 +- src/tests/elementary/elm_test_web.c | 2 +- src/tests/elementary/elm_test_win.c | 3 ++- 59 files changed, 60 insertions(+), 59 deletions(-) diff --git a/src/tests/elementary/elm_test_actionslider.c b/src/tests/elementary/elm_test_actionslider.c index ef5f849d8f..c84bfbac4b 100644 --- a/src/tests/elementary/elm_test_actionslider.c +++ b/src/tests/elementary/elm_test_actionslider.c @@ -2,7 +2,7 @@ # include "elementary_config.h" #endif -#define EFL_ACCESS_PROTECTED +#define EFL_ACCESS_BETA #include #include "elm_suite.h" diff --git a/src/tests/elementary/elm_test_box.c b/src/tests/elementary/elm_test_box.c index ca675f2f26..9e02995f90 100644 --- a/src/tests/elementary/elm_test_box.c +++ b/src/tests/elementary/elm_test_box.c @@ -2,7 +2,7 @@ # include "elementary_config.h" #endif -#define EFL_ACCESS_PROTECTED +#define EFL_ACCESS_BETA #include #include "elm_suite.h" diff --git a/src/tests/elementary/elm_test_bubble.c b/src/tests/elementary/elm_test_bubble.c index c227b4e133..490bef012a 100644 --- a/src/tests/elementary/elm_test_bubble.c
[EGIT] [core/efl] master 02/02: eina: Fix spelling/punctuation errors in documentation (prefix..promise)
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=50fba34e6c0e07deada58342c544ad8f1800a46f commit 50fba34e6c0e07deada58342c544ad8f1800a46f Author: Bryce HarringtonDate: Wed Nov 8 15:20:34 2017 +0900 eina: Fix spelling/punctuation errors in documentation (prefix..promise) Reviewers: cedric, ajwillia.ms Subscribers: jpeg, segfaultxavi Differential Revision: https://phab.enlightenment.org/D5438 --- src/lib/eina/eina_prefix.h | 12 ++-- src/lib/eina/eina_promise.h | 135 ++-- 2 files changed, 74 insertions(+), 73 deletions(-) diff --git a/src/lib/eina/eina_prefix.h b/src/lib/eina/eina_prefix.h index 925342cf35..e0f76d7388 100644 --- a/src/lib/eina/eina_prefix.h +++ b/src/lib/eina/eina_prefix.h @@ -46,7 +46,7 @@ typedef struct _Eina_Prefix Eina_Prefix; * that they need to load. A very primitive application ASSUMES a fixed install * location at compile-time, but this disallows the ability to re-locate * the application (or library) somewhere else after compilation (if you run - * out of space on a given disk, partition etc. for example), or necessitate + * out of space on a given disk, partition, etc. for example), or necessitate * the need for having to maintain environment variables for every piece of * software to let it know its location, or have to use large sets of * symlinks pointing from the compiled location to the new one. @@ -69,7 +69,7 @@ typedef struct _Eina_Prefix Eina_Prefix; * information. It uses the first argument, being the executable itself, * to look in absolute directories, relative paths, and PATH to see if it * finds the right executable to determine just where the actual binary is - * installed and being run from. If you develop a share library, just pass + * installed and being run from. If you develop a shared library, just pass * @c NULL as @a argv0. * * @note It would prefer to use the @a symbol function to determine the location as @@ -78,7 +78,7 @@ typedef struct _Eina_Prefix Eina_Prefix; * as this avoids more expensive searches via @a argv0. It uses this * symbol if given in preference to @a argv0. * - * @note The @a envprefix parameter, provides a string prefix to prepend before + * @note The @a envprefix parameter provides a string prefix to prepend before * environment variables to allow a fallback to specific environment variables * to locate the software. For example, if "MYAPP" is provided as the prefix, * then it uses "MYAPP_PREFIX" as a master environment variable to specify @@ -99,7 +99,7 @@ typedef struct _Eina_Prefix Eina_Prefix; * example, your app installs a wallpaper image as * /usr/local/share/appname/images/wallpaper.jpg and so to check that this * worked, provide "images/wallpaper.jpg" as the @a magicsharefile string - *so detection can know if it worked or not. + * so detection can know if it worked or not. * * @note The @a pkg_bin, @a pkg_lib, @a pkg_data, and @a pkg_locale are compile-time * strings (the kind standard autoconf/automake define) to be passed in @@ -120,7 +120,7 @@ typedef struct _Eina_Prefix Eina_Prefix; * locale dir is optional. If you don't need it, provide data dir as the * locale dir. Also note that the magicsharefile is optional for testing and * ensuring that the prefix check is correct. This file must be installed - * in the application data dir (eg /usr/local/share/appname) and be referred + * in the application data dir (e.g. /usr/local/share/appname) and be referred * to using a unix-style relative path from that dir, eg directory/filename.png) * * @code @@ -174,7 +174,7 @@ EAPI void eina_prefix_free(Eina_Prefix *pfx) EINA_ARG_NONNULL(1); * * @param[in] pfx The prefix object * @return The base prefix (eg "/usr/local", "/usr", "/opt/appname" or - * "/home/user/myapps/appname" etc.) that the software resides in at runtime + * "/home/user/myapps/appname", etc.) that the software resides in at runtime * * @since 1.1.0 */ diff --git a/src/lib/eina/eina_promise.h b/src/lib/eina/eina_promise.h index 573c019d6b..44e9aef655 100644 --- a/src/lib/eina/eina_promise.h +++ b/src/lib/eina/eina_promise.h @@ -38,13 +38,13 @@ typedef struct _Eina_Future_Cb_Log_Desc Eina_Future_Cb_Log_Desc; * context that called cancel using `ECANCELED` as error. * * @li eina_future_then(), eina_future_then_from_desc(), eina_future_chain(), eina_future_chain_array() - * or similar failed due invalid pointer or memory allocation. Then the callback is called from the + * or similar failed due to invalid pointer or memory allocation. Then the callback is called from the * failed context using `EINVAL` or `ENOMEM` as errors and @p dead_future will be @c NULL. * * @param data The data provided by the user * * @param value An Eina_Value which
[EGIT] [core/efl] master 01/02: focus: Some typos for efl_ui_focus_manager fixed
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e2ad1469a5954b62f1b07ba67abc831485645f04 commit e2ad1469a5954b62f1b07ba67abc831485645f04 Author: Pawel AksiutowiczDate: Wed Nov 8 15:14:53 2017 +0900 focus: Some typos for efl_ui_focus_manager fixed Reviewers: stanluk, lukasz.stanislawski Subscribers: lukasz.stanislawski, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5433 --- src/lib/elementary/efl_ui_focus_manager_calc.c | 2 +- src/lib/elementary/efl_ui_focus_manager_root_focus.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c b/src/lib/elementary/efl_ui_focus_manager_calc.c index 4d54a95903..f879d5440b 100644 --- a/src/lib/elementary/efl_ui_focus_manager_calc.c +++ b/src/lib/elementary/efl_ui_focus_manager_calc.c @@ -1049,7 +1049,7 @@ _coords_movement(Efl_Ui_Focus_Manager_Calc_Data *pd, Node *upper, Efl_Ui_Focus_D if (eina_list_data_find(DIRECTION_ACCESS(upper, direction).partners, candidate)) { - //this is the next accessable part + //this is the next accessible part return candidate; } } diff --git a/src/lib/elementary/efl_ui_focus_manager_root_focus.c b/src/lib/elementary/efl_ui_focus_manager_root_focus.c index b7fc93b1fa..23deb0bb79 100644 --- a/src/lib/elementary/efl_ui_focus_manager_root_focus.c +++ b/src/lib/elementary/efl_ui_focus_manager_root_focus.c @@ -149,7 +149,7 @@ _efl_ui_focus_manager_root_focus_efl_object_finalize(Eo *obj, Efl_Ui_Focus_Manag #include "efl_ui_focus_manager_root_focus.eo.c" -/* focus rectnangle implementation */ +/* focus rectangle implementation */ typedef struct { Eina_Bool focus; } Efl_Ui_Focus_Rectangle_Data; --
[EGIT] [core/efl] master 01/01: efl - fix build after cedric breakage
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a3b1b5d540321d8fe393b554c510b818f7c980ac commit a3b1b5d540321d8fe393b554c510b818f7c980ac Author: Carsten Haitzler (Rasterman)Date: Wed Nov 8 15:05:11 2017 +0900 efl - fix build after cedric breakage 25b6a280c087d39f66e30c9c4d07f86b97c989d6 broke the build... specifically building AGAINST efl. --- src/Makefile_Elementary.am | 1 + src/lib/ecore/Efl_Core.h | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 1c41f580f7..4101360d7b 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -415,6 +415,7 @@ includesub_HEADERS = \ lib/elementary/efl_ui_frame_legacy.h \ lib/elementary/elm_gen.h \ lib/elementary/elm_general.h \ + lib/elementary/efl_general.h \ lib/elementary/elm_gengrid.h \ lib/elementary/elm_gengrid_common.h \ lib/elementary/elm_gengrid_legacy.h \ diff --git a/src/lib/ecore/Efl_Core.h b/src/lib/ecore/Efl_Core.h index e70df033ef..a88e5412ed 100644 --- a/src/lib/ecore/Efl_Core.h +++ b/src/lib/ecore/Efl_Core.h @@ -64,7 +64,9 @@ extern "C" { extern EAPI double _efl_startup_time; #include "Ecore_Common.h" -#include "Ecore_Eo.h" +#ifdef EFL_OBJECT_BETA +# include "Ecore_Eo.h" +#endif #ifdef __cplusplus } --
[EGIT] [core/efl] master 08/12: elementary: use efl_exit to leave the mainloop instead of direct use of exit.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e729d6b994ef27e4299ac3719da976855a8db907 commit e729d6b994ef27e4299ac3719da976855a8db907 Author: Cedric BAILDate: Tue Nov 7 15:49:38 2017 -0800 elementary: use efl_exit to leave the mainloop instead of direct use of exit. --- src/bin/elementary/test.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index 7b47e3c01f..57b1916d53 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -572,7 +572,11 @@ my_win_main(const char *autorun, Eina_Bool test_win_only) * You can also set the title of the window at the same time. * ex) win = elm_win_util_standard_add("main", "Elementary Tests"); */ win = elm_win_add(NULL, "main", ELM_WIN_BASIC); - if (!win) exit(1); + if (!win) + { +efl_exit(1); +return ; + } explode_win_enable(win); /* Set the title of the window - This is in the titlebar. */ --
[EGIT] [core/efl] master 09/12: elementary: add debugging information to quicklaunch binary.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4f70a295801b5fd7600d43b3aaa90241165c4ac5 commit 4f70a295801b5fd7600d43b3aaa90241165c4ac5 Author: Cedric BAILDate: Tue Nov 7 15:50:13 2017 -0800 elementary: add debugging information to quicklaunch binary. --- src/bin/elementary/quicklaunch.c | 11 ++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/bin/elementary/quicklaunch.c b/src/bin/elementary/quicklaunch.c index 765806e823..b7fec56740 100644 --- a/src/bin/elementary/quicklaunch.c +++ b/src/bin/elementary/quicklaunch.c @@ -109,6 +109,7 @@ handle_run(int fd, unsigned long bytes) CRI("no bytes to quicklaunch"); return; } + DBG("Starting building up process."); _elm_startup_time = ecore_time_unix_get(); buf = alloca(bytes); @@ -157,9 +158,15 @@ handle_run(int fd, unsigned long bytes) } } #endif + + INF("Requested to run '%s' with %i arguments and %i environment.", + argv[0], argc - 1, envnum); // Try new form before trying old form if (!efl_quicklaunch_prepare(argc, argv, cwd)) - elm_quicklaunch_prepare(argc, argv, cwd); + { +WRN("Failed to prepare with new EFL_MAIN macro, switching to legacy."); +elm_quicklaunch_prepare(argc, argv, cwd); + } elm_quicklaunch_fork(argc, argv, cwd, post_fork, NULL); elm_quicklaunch_cleanup(); @@ -329,6 +336,8 @@ main(int argc, char **argv) len = sizeof(struct sockaddr_un); fd = accept(sock, (struct sockaddr *), ); + +DBG("Accepting connection."); elm_quicklaunch_sub_init(argc, argv); // don't seed since we are doing this AFTER launch request // elm_quicklaunch_seed(); --
[EGIT] [core/efl] master 10/12: elementary: fix ELM_MAIN macro to properly expose symbol.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d171cf9639ff859f398ac919cb291f02231e6461 commit d171cf9639ff859f398ac919cb291f02231e6461 Author: Cedric BAILDate: Tue Nov 7 15:51:52 2017 -0800 elementary: fix ELM_MAIN macro to properly expose symbol. --- src/lib/elementary/Elementary.h | 10 -- 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h index 9cfd3adaeb..3913084bf3 100644 --- a/src/lib/elementary/Elementary.h +++ b/src/lib/elementary/Elementary.h @@ -85,6 +85,7 @@ #endif #ifdef _WIN32 +# define EAPI_MAIN # ifdef ELEMENTARY_BUILD # ifdef DLL_EXPORT # define EAPI __declspec(dllexport) @@ -98,20 +99,17 @@ # ifdef __GNUC__ # if __GNUC__ >= 4 # define EAPI __attribute__ ((visibility("default"))) +# define EAPI_MAIN __attribute__ ((visibility("default"))) # else # define EAPI +# define EAPI_MAIN # endif # else # define EAPI +# define EAPI_MAIN # endif #endif /* ! _WIN32 */ -#ifdef _WIN32 -# define EAPI_MAIN -#else -# define EAPI_MAIN EAPI -#endif - /* allow usage from c++ */ #ifdef __cplusplus extern "C" --
[EGIT] [core/efl] master 05/12: evas: rely on ecore to reset ecore_pipe for evas_async_events.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=73e6404b1a89b26518f61b7a163e7dc9066bd8ca commit 73e6404b1a89b26518f61b7a163e7dc9066bd8ca Author: Cedric BAILDate: Tue Nov 7 15:45:03 2017 -0800 evas: rely on ecore to reset ecore_pipe for evas_async_events. Ecore being a dependency of evas, let's make our life easier and rely on ecore to tell us when to reset pipe due to a fork instead of trying to guess. --- src/lib/evas/canvas/evas_async_events.c | 30 -- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/src/lib/evas/canvas/evas_async_events.c b/src/lib/evas/canvas/evas_async_events.c index 58f26fb52e..ad03284b83 100644 --- a/src/lib/evas/canvas/evas_async_events.c +++ b/src/lib/evas/canvas/evas_async_events.c @@ -50,7 +50,6 @@ static int _thread_id_update = 0; static Eina_Bool _write_error = EINA_TRUE; static Eina_Bool _read_error = EINA_TRUE; -static pid_t _fd_pid = 0; static Eina_Spinlock async_lock; static Eina_Inarray async_queue; @@ -105,6 +104,14 @@ _async_events_pipe_read_cb(void *data EINA_UNUSED, void *buf, unsigned int len) _evas_async_events_fd_blocking_set(EINA_FALSE); } +static void +_evas_async_events_fork_handle(void *data EINA_UNUSED) +{ + ecore_pipe_del(_async_pipe); + _async_pipe = ecore_pipe_add(_async_events_pipe_read_cb, NULL); + ecore_pipe_freeze(_async_pipe); +} + int evas_async_events_init(void) { @@ -117,7 +124,7 @@ evas_async_events_init(void) return 0; } - _fd_pid = getpid(); + ecore_fork_reset_callback_add(_evas_async_events_fork_handle, NULL); _async_pipe = ecore_pipe_add(_async_events_pipe_read_cb, NULL); if ( !_async_pipe ) @@ -163,6 +170,8 @@ evas_async_events_shutdown(void) eina_spinlock_free(_lock); eina_inarray_flush(_queue); + ecore_fork_reset_callback_del(_evas_async_events_fork_handle, NULL); + ecore_pipe_del(_async_pipe); _read_error = EINA_TRUE; _write_error = EINA_TRUE; @@ -171,20 +180,9 @@ evas_async_events_shutdown(void) return _init_evas_event; } -static void -_evas_async_events_fork_handle(void) -{ - int i, count = _init_evas_event; - - if (getpid() == _fd_pid) return; - for (i = 0; i < count; i++) evas_async_events_shutdown(); - for (i = 0; i < count; i++) evas_async_events_init(); -} - EAPI int evas_async_events_fd_get(void) { - _evas_async_events_fork_handle(); return ecore_pipe_read_fd(_async_pipe); } @@ -192,8 +190,8 @@ EAPI int evas_async_events_process(void) { int count = 0; + if (_read_error) return -1; - _evas_async_events_fork_handle(); _event_count = 0; while (ecore_pipe_wait(_async_pipe, 1, 0.0)) @@ -224,8 +222,6 @@ evas_async_events_process_blocking(void) int ret; if (_read_error) return -1; - _evas_async_events_fork_handle(); - _evas_async_events_fd_blocking_set(EINA_TRUE); _event_count = 0; @@ -247,8 +243,6 @@ evas_async_events_put(const void *target, Evas_Callback_Type type, void *event_i if (!func) return EINA_FALSE; if (_write_error) return EINA_FALSE; - _evas_async_events_fork_handle(); - eina_spinlock_take(_lock); count = async_queue.len; --
[EGIT] [core/efl] master 11/12: elementary: refactor and clean efl_quicklaunch_prepare.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e32dd07c9d277b99d54cf5d7215e0acfd5075ee3 commit e32dd07c9d277b99d54cf5d7215e0acfd5075ee3 Author: Cedric BAILDate: Tue Nov 7 15:53:44 2017 -0800 elementary: refactor and clean efl_quicklaunch_prepare. --- src/lib/elementary/elm_main.c | 69 ++- 1 file changed, 15 insertions(+), 54 deletions(-) diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index 551df529c1..ac60653516 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -1014,7 +1014,6 @@ elm_quicklaunch_prepare(intargc, qr_handle = dlopen(exe2, RTLD_NOW | RTLD_GLOBAL); if (!qr_handle) { -fprintf(stderr, "dlerr: %s\n", dlerror()); WRN("dlopen('%s') failed: %s", exe2, dlerror()); free(exe2); return EINA_FALSE; @@ -1046,8 +1045,7 @@ efl_quicklaunch_prepare(intargc, const char *cwd) { #ifdef HAVE_FORK - char *exe, *exe2, *p; - char *exename; + char *exe, *exe2; if (argc <= 0 || argv == NULL) return EINA_FALSE; @@ -1058,74 +1056,37 @@ efl_quicklaunch_prepare(intargc, return EINA_FALSE; } - exe2 = malloc(strlen(exe) + 1 + 7 + strlen(LIBEXT)); - strcpy(exe2, exe); - p = strrchr(exe2, '/'); - if (p) p++; - else p = exe2; - exename = alloca(strlen(p) + 1); - strcpy(exename, p); - *p = 0; - strcat(p, "../lib/"); - strcat(p, exename); - strcat(p, LIBEXT); - if (access(exe2, R_OK | X_OK) != 0) - ELM_SAFE_FREE(exe2, free); - /* Try linking to executable first. Works with PIE files. */ - qr_handle = dlopen(exe, RTLD_NOW | RTLD_GLOBAL); - if (qr_handle) - { -INF("dlopen('%s') = %p", exe, qr_handle); -qre_main = dlsym(qr_handle, "efl_main"); -qre_pause = dlsym(qr_handle, "efl_pause"); -qre_resume = dlsym(qr_handle, "efl_resume"); -qre_terminate = dlsym(qr_handle, "efl_terminate"); -if (qre_main) - { - INF("dlsym(%p, 'elm_main') = %p", qr_handle, qre_main); - free(exe2); - free(exe); - return EINA_TRUE; - } -dlclose(qr_handle); -qr_handle = NULL; - } + exe2 = eina_file_path_sanitize(exe); - if (!exe2) - { -WRN("not quicklauncher capable: '%s'", exe); -free(exe); -return EINA_FALSE; - } - free(exe); + ELM_SAFE_FREE(exe, free); - /* Open companion .so file. -* Support for legacy quicklaunch apps with separate library. -*/ + /* Try linking to executable first. Works with PIE files. */ qr_handle = dlopen(exe2, RTLD_NOW | RTLD_GLOBAL); if (!qr_handle) { -fprintf(stderr, "dlerr: %s\n", dlerror()); -WRN("dlopen('%s') failed: %s", exe2, dlerror()); +ERR("dlopen('%s') failed: %s", exe2, dlerror()); free(exe2); return EINA_FALSE; } + INF("dlopen('%s') = %p", exe2, qr_handle); qre_main = dlsym(qr_handle, "efl_main"); - INF("dlsym(%p, 'elm_main') = %p", qr_handle, qre_main); + INF("dlsym(%p, 'efl_main') = %p", qr_handle, qre_main); qre_pause = dlsym(qr_handle, "efl_pause"); qre_resume = dlsym(qr_handle, "efl_resume"); qre_terminate = dlsym(qr_handle, "efl_terminate"); - if (!qre_main) + if (qre_main) { -WRN("not quicklauncher capable: no efl_main in '%s'", exe2); -dlclose(qr_handle); -qr_handle = NULL; free(exe2); -return EINA_FALSE; +return EINA_TRUE; } + + WRN("not quicklauncher capable: no efl_main in '%s'", exe2); + dlclose(qr_handle); + qr_handle = NULL; free(exe2); - return EINA_TRUE; + + return EINA_FALSE; #else (void)argc; (void)argv; --
[EGIT] [core/efl] master 02/12: ecore, elementary: move startup time accounting in ecore.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dd40079185577c5330f72817e0385aa9cda2e7f4 commit dd40079185577c5330f72817e0385aa9cda2e7f4 Author: Cedric BAILDate: Mon Nov 6 10:52:36 2017 -0800 ecore,elementary: move startup time accounting in ecore. --- src/lib/ecore/Efl_Core.h | 2 ++ src/lib/ecore/ecore.c| 3 +++ src/lib/elementary/efl_general.h | 4 ++-- src/lib/elementary/elm_general.h | 1 + src/lib/elementary/elm_main.c| 8 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore/Efl_Core.h b/src/lib/ecore/Efl_Core.h index 0f670b50fb..e70df033ef 100644 --- a/src/lib/ecore/Efl_Core.h +++ b/src/lib/ecore/Efl_Core.h @@ -61,6 +61,8 @@ extern "C" { #endif +extern EAPI double _efl_startup_time; + #include "Ecore_Common.h" #include "Ecore_Eo.h" diff --git a/src/lib/ecore/ecore.c b/src/lib/ecore/ecore.c index 35967d6a00..00bf640624 100644 --- a/src/lib/ecore/ecore.c +++ b/src/lib/ecore/ecore.c @@ -30,6 +30,7 @@ #include #include "Ecore.h" +#include "Efl_Core.h" #include "ecore_private.h" #if defined(HAVE_MALLINFO) || defined(HAVE_MALLOC_INFO) @@ -43,6 +44,8 @@ static Ecore_Version _version = { VMAJ, VMIN, VMIC, VREV }; EAPI Ecore_Version *ecore_version = &_version; +EAPI double _efl_startup_time = 0; + #if defined(HAVE_MALLINFO) || defined(HAVE_MALLOC_INFO) #define KEEP_MAX(Global, Local) \ if (Global < (Local)) \ diff --git a/src/lib/elementary/efl_general.h b/src/lib/elementary/efl_general.h index e10261cd63..e1e81a2287 100644 --- a/src/lib/elementary/efl_general.h +++ b/src/lib/elementary/efl_general.h @@ -35,8 +35,8 @@ { \ Eina_Value *ret__; \ int real__;\ + _efl_startup_time = ecore_time_unix_get(); \ _EFL_APP_VERSION_SET();\ - _elm_startup_time = ecore_time_unix_get(); \ elm_init(argc, argv); \ efl_event_callback_add(ecore_main_loop_get(), EFL_LOOP_EVENT_ARGUMENTS, efl_main, NULL); \ ret__ = efl_loop_begin(ecore_main_loop_get()); \ @@ -55,8 +55,8 @@ { \ Eina_Value *ret__; \ int real__;\ + _efl_startup_time = ecore_time_unix_get(); \ _EFL_APP_VERSION_SET();\ - _elm_startup_time = ecore_time_unix_get(); \ elm_init(argc, argv); \ efl_event_callback_array_add(ecore_main_loop_get(), _efl_main_ex(), NULL); \ ret__ = efl_loop_begin(ecore_main_loop_get()); \ diff --git a/src/lib/elementary/elm_general.h b/src/lib/elementary/elm_general.h index 7c2a28236a..5645bf471f 100644 --- a/src/lib/elementary/elm_general.h +++ b/src/lib/elementary/elm_general.h @@ -96,6 +96,7 @@ extern EAPI double _elm_startup_time; #define ELM_MAIN() int main(int argc, char **argv) { int ret__; _elm_startup_time = ecore_time_unix_get(); ret__ = elm_quicklaunch_fallback(argc, argv); elm_shutdown(); return ret__; } #endif +#include "Efl_Core.h" #include "efl_general.h" /**/ diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index cb96aa5b50..3b089583ee 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -424,6 +424,14 @@ elm_init(int argc, char **argv) _elm_config->web_backend = "none"; _elm_code_parse_setup(); + // For backward compability, EFL startup time and ELM startup time are made + // identical. It is fine to do it here as we are finishing initialisation + // and the startup time should have been accounted earlier. + if (_elm_startup_time >= 0) + if (_efl_startup_time <= 0) + _efl_startup_time = _elm_startup_time; + _elm_startup_time = _efl_startup_time; + return _elm_init_count; } --
[EGIT] [core/efl] master 06/12: evas: rely on ecore to reset upscaler thread on fork.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d125892601c6278bf40624843d637bbc0e1a0cf0 commit d125892601c6278bf40624843d637bbc0e1a0cf0 Author: Cedric BAILDate: Tue Nov 7 15:47:09 2017 -0800 evas: rely on ecore to reset upscaler thread on fork. --- src/lib/evas/common/evas_scale_sample.c | 28 1 file changed, 28 insertions(+) diff --git a/src/lib/evas/common/evas_scale_sample.c b/src/lib/evas/common/evas_scale_sample.c index daa57f6497..737aeb2fec 100644 --- a/src/lib/evas/common/evas_scale_sample.c +++ b/src/lib/evas/common/evas_scale_sample.c @@ -1,6 +1,8 @@ #include "evas_common_private.h" #include "evas_blend_private.h" +#include "Ecore.h" + static Eina_Bool scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); typedef struct _Evas_Scale_Thread Evas_Scale_Thread; @@ -860,6 +862,23 @@ _evas_common_scale_sample_thread(void *data EINA_UNUSED, return NULL; } +static void +evas_common_scale_sample_fork_reset(void *data EINA_UNUSED) +{ + eina_thread_queue_free(thread_queue); + eina_thread_queue_free(main_queue); + + thread_queue = eina_thread_queue_new(); + main_queue = eina_thread_queue_new(); + + if (!eina_thread_create(_thread, EINA_THREAD_NORMAL, -1, + _evas_common_scale_sample_thread, NULL)) + { +CRI("We failed to recreate the upscaling thread."); +use_thread = EINA_FALSE; + } +} + EAPI void evas_common_scale_sample_init(void) { @@ -870,6 +889,10 @@ evas_common_scale_sample_init(void) return; #endif + ecore_init(); + + ecore_fork_reset_callback_add(evas_common_scale_sample_fork_reset, NULL); + thread_queue = eina_thread_queue_new(); if (EINA_UNLIKELY(!thread_queue)) { @@ -886,6 +909,7 @@ evas_common_scale_sample_init(void) if (!eina_thread_create(_thread, EINA_THREAD_NORMAL, -1, _evas_common_scale_sample_thread, NULL)) { +CRI("We failed to create the upscaling thread."); goto cleanup; } @@ -905,6 +929,8 @@ evas_common_scale_sample_shutdown(void) if (!use_thread) return ; + ecore_fork_reset_callback_del(evas_common_scale_sample_fork_reset, NULL); + msg = eina_thread_queue_send(thread_queue, sizeof (Evas_Scale_Msg), ); msg->task = NULL; eina_thread_queue_send_done(thread_queue, ref); @@ -918,4 +944,6 @@ evas_common_scale_sample_shutdown(void) eina_thread_queue_free(thread_queue); eina_thread_queue_free(main_queue); + + ecore_shutdown(); } --
[EGIT] [core/efl] master 01/12: elementary: move Efl new general purpose API to efl_general.h
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=25b6a280c087d39f66e30c9c4d07f86b97c989d6 commit 25b6a280c087d39f66e30c9c4d07f86b97c989d6 Author: Cedric BAILDate: Mon Nov 6 10:28:15 2017 -0800 elementary: move Efl new general purpose API to efl_general.h --- src/lib/elementary/efl_general.h | 68 ++ src/lib/elementary/elm_general.h | 71 +--- 2 files changed, 69 insertions(+), 70 deletions(-) diff --git a/src/lib/elementary/efl_general.h b/src/lib/elementary/efl_general.h new file mode 100644 index 00..e10261cd63 --- /dev/null +++ b/src/lib/elementary/efl_general.h @@ -0,0 +1,68 @@ +#ifdef EFL_BETA_API_SUPPORT + +#ifdef EFL_VERSION_MICRO +# define _EFL_VERSION_MICRO EFL_VERSION_MICRO +#else +# define _EFL_VERSION_MICRO 0 +#endif + +#ifdef EFL_VERSION_REVISION +# define _EFL_VERSION_REVISION EFL_VERSION_REVISION +#else +# define _EFL_VERSION_REVISION 0 +#endif + +#ifdef EFL_VERSION_FLAVOR +# define _EFL_VERSION_FLAVOR EFL_VERSION_FLAVOR +#else +# define _EFL_VERSION_FLAVOR NULL +#endif + +#ifdef EFL_BUILD_ID +# define _EFL_BUILD_ID EFL_BUILD_ID +#else +# define _EFL_BUILD_ID NULL +#endif + +#define _EFL_APP_VERSION_SET() \ + do { \ + if (efl_build_version_set) \ + efl_build_version_set(EFL_VERSION_MAJOR, EFL_VERSION_MINOR, _EFL_VERSION_MICRO, \ + _EFL_VERSION_REVISION, _EFL_VERSION_FLAVOR, _EFL_BUILD_ID); \ + } while (0) + +#define EFL_MAIN() int main(int argc, char **argv) \ + { \ + Eina_Value *ret__; \ + int real__;\ + _EFL_APP_VERSION_SET();\ + _elm_startup_time = ecore_time_unix_get(); \ + elm_init(argc, argv); \ + efl_event_callback_add(ecore_main_loop_get(), EFL_LOOP_EVENT_ARGUMENTS, efl_main, NULL); \ + ret__ = efl_loop_begin(ecore_main_loop_get()); \ + real__ = efl_loop_exit_code_process(ret__);\ + elm_shutdown();\ + return real__; \ + } + +#define EFL_MAIN_EX() \ + EFL_CALLBACKS_ARRAY_DEFINE(_efl_main_ex, \ + { EFL_LOOP_EVENT_ARGUMENTS, efl_main },\ + { EFL_LOOP_EVENT_PAUSE, efl_pause }, \ + { EFL_LOOP_EVENT_RESUME, efl_resume }, \ + { EFL_LOOP_EVENT_TERMINATE, efl_terminate }); \ + int main(int argc, char **argv) \ + { \ + Eina_Value *ret__; \ + int real__;\ + _EFL_APP_VERSION_SET();\ + _elm_startup_time = ecore_time_unix_get(); \ + elm_init(argc, argv); \ + efl_event_callback_array_add(ecore_main_loop_get(), _efl_main_ex(), NULL); \ + ret__ = efl_loop_begin(ecore_main_loop_get()); \ + real__ = efl_loop_exit_code_process(ret__);\ + elm_shutdown();\ + return real__; \ + } + +#endif /* EFL_BETA_API_SUPPORT */ diff --git a/src/lib/elementary/elm_general.h b/src/lib/elementary/elm_general.h index 4e3097eac1..7c2a28236a 100644 --- a/src/lib/elementary/elm_general.h +++ b/src/lib/elementary/elm_general.h @@ -96,76 +96,7 @@ extern EAPI double _elm_startup_time; #define ELM_MAIN() int main(int argc, char **argv) { int ret__; _elm_startup_time = ecore_time_unix_get(); ret__ = elm_quicklaunch_fallback(argc, argv); elm_shutdown(); return ret__; } #endif - -#ifdef EFL_BETA_API_SUPPORT - -#ifdef EFL_VERSION_MICRO -# define _EFL_VERSION_MICRO EFL_VERSION_MICRO -#else -# define _EFL_VERSION_MICRO 0 -#endif - -#ifdef EFL_VERSION_REVISION -# define _EFL_VERSION_REVISION EFL_VERSION_REVISION -#else -# define _EFL_VERSION_REVISION 0 -#endif - -#ifdef EFL_VERSION_FLAVOR -# define _EFL_VERSION_FLAVOR EFL_VERSION_FLAVOR -#else -# define _EFL_VERSION_FLAVOR NULL -#endif - -#ifdef EFL_BUILD_ID -# define _EFL_BUILD_ID EFL_BUILD_ID -#else -# define _EFL_BUILD_ID NULL
[EGIT] [core/efl] master 07/12: evas: rely on ecore to reset evas rendering thread on fork.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=fa3e1dc784275cbcd2f0002cf30525528d5a2bc3 commit fa3e1dc784275cbcd2f0002cf30525528d5a2bc3 Author: Cedric BAILDate: Tue Nov 7 15:47:28 2017 -0800 evas: rely on ecore to reset evas rendering thread on fork. --- src/lib/evas/common/evas_thread_render.c | 50 1 file changed, 50 insertions(+) diff --git a/src/lib/evas/common/evas_thread_render.c b/src/lib/evas/common/evas_thread_render.c index 84ea7b4234..c823125f69 100644 --- a/src/lib/evas/common/evas_thread_render.c +++ b/src/lib/evas/common/evas_thread_render.c @@ -1,5 +1,6 @@ #include "evas_common_private.h" +#include "Ecore.h" #include static Eina_Thread evas_thread_worker; @@ -180,6 +181,43 @@ out: return NULL; } +static void +evas_thread_fork_reset(void *data EINA_UNUSED) +{ + if (!eina_lock_new(_thread_queue_lock)) + { +CRI("Could not create draw thread lock (%m)"); +goto on_error; + } + if (!eina_condition_new(_thread_queue_condition, _thread_queue_lock)) + { +CRI("Could not create draw thread condition (%m)"); +goto on_error; + } + + if (!eina_thread_create(_thread_worker, EINA_THREAD_NORMAL, -1, + evas_thread_worker_func, NULL)) + { +CRI("Could not recreate draw thread."); +goto on_error; + } + + return ; + + on_error: + eina_lock_free(_thread_queue_lock); + eina_condition_free(_thread_queue_condition); + + evas_thread_worker = 0; + + free(evas_thread_queue_cache); + evas_thread_queue_cache = NULL; + evas_thread_queue_cache_max = 0; + eina_inarray_flush(_thread_queue); + + eina_threads_shutdown(); +} + int evas_thread_init(void) { @@ -189,6 +227,8 @@ evas_thread_init(void) exit_thread = EINA_FALSE; evas_thread_exited = 0; + ecore_init(); + if(!eina_threads_init()) { CRI("Could not init eina threads"); @@ -215,6 +255,8 @@ evas_thread_init(void) goto fail_on_thread_creation; } + ecore_fork_reset_callback_add(evas_thread_fork_reset, NULL); + return init_count; fail_on_thread_creation: @@ -227,6 +269,7 @@ fail_on_lock_creation: fail_on_eina_thread_init: exit_thread = EINA_TRUE; evas_thread_exited = 1; + ecore_shutdown(); return --init_count; } @@ -244,8 +287,13 @@ evas_thread_shutdown(void) if (--init_count) return init_count; + if (!evas_thread_worker) + return init_count; + eina_lock_take(_thread_queue_lock); + ecore_fork_reset_callback_del(evas_thread_fork_reset, NULL); + exit_thread = EINA_TRUE; eina_condition_signal(_thread_queue_condition); @@ -275,5 +323,7 @@ timeout_shutdown: eina_threads_shutdown(); + ecore_shutdown(); + return 0; } --
[EGIT] [core/efl] master 04/12: ecore: introduce ecore_init_ex/ecore_shutdown_ex to propagate argc, argv properly.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ee65414ef6b75a61044227a9a4ab10201cee787d commit ee65414ef6b75a61044227a9a4ab10201cee787d Author: Cedric BAILDate: Mon Nov 6 13:49:18 2017 -0800 ecore: introduce ecore_init_ex/ecore_shutdown_ex to propagate argc,argv properly. --- src/lib/ecore/Ecore_Common.h | 26 ++ src/lib/ecore/ecore.c| 28 ++-- src/lib/elementary/efl_general.h | 12 ++-- src/lib/elementary/elm_main.c| 15 --- 4 files changed, 70 insertions(+), 11 deletions(-) diff --git a/src/lib/ecore/Ecore_Common.h b/src/lib/ecore/Ecore_Common.h index 999fb8633f..6102341446 100644 --- a/src/lib/ecore/Ecore_Common.h +++ b/src/lib/ecore/Ecore_Common.h @@ -62,6 +62,32 @@ EAPI int ecore_init(void); */ EAPI int ecore_shutdown(void); +/** + * This function will propagate the events on the main loop. So you + * should call ecore_init() first, then register your callback on + * @c EFL_LOOP_EVENT_ARGUMENTS and finally call ecore_init_ex(). + * + * Once you are shuting down your program, you should symetrically + * call ecore_shutdown_ex(). + */ +EAPI unsigned int ecore_init_ex(int argc, char **argv); + +/** + * Shuts down connections, signal handlers sockets etc. + * + * @return @c 0 if ecore shuts down, greater than @c 0 otherwise. + * This function shuts down all things set up in ecore_init_ex() and cleans + * up all event queues, handlers, filters, timers, idlers, idle enterers/exiters + * etc. set up after ecore_init_ex() was called. + * + * Do not call this function from any callback that may be called from the main + * loop, as the main loop will then fall over and not function properly. + * + * Note: This function should be called in symetric to ecore_init_ex() + */ +EAPI unsigned int ecore_shutdown_ex(void); + + #ifdef EFL_BETA_API_SUPPORT /** * @brief Inform EFL of the version this application was built for. diff --git a/src/lib/ecore/ecore.c b/src/lib/ecore/ecore.c index 5ac30d64b2..2e6644e422 100644 --- a/src/lib/ecore/ecore.c +++ b/src/lib/ecore/ecore.c @@ -489,6 +489,31 @@ ecore_shutdown(void) return _ecore_init_count; } +static unsigned int _ecore_init_ex = 0; + +EAPI unsigned int +ecore_init_ex(int argc, char **argv) +{ + if (_ecore_init_ex++ != 0) return _ecore_init_ex; + + ecore_init(); + ecore_loop_arguments_send(argc - 1, + (argc > 1) ? ((const char **) argv + 1) : NULL); + ecore_app_args_set(argc, (const char**) argv); + + return _ecore_init_ex; +} + +EAPI unsigned int +ecore_shutdown_ex(void) +{ + if (--_ecore_init_ex != 0) return _ecore_init_ex; + + ecore_shutdown(); + + return _ecore_init_ex; +} + struct _Ecore_Fork_Cb { Ecore_Cb func; @@ -543,7 +568,7 @@ ecore_fork_reset(void) { Eina_List *l, *ln; Ecore_Fork_Cb *fcb; - + eina_main_loop_define(); eina_lock_take(&_thread_safety); @@ -555,7 +580,6 @@ ecore_fork_reset(void) eina_lock_release(&_thread_safety); // should this be done withing the eina lock stuff? - fork_cbs_walking++; EINA_LIST_FOREACH(fork_cbs, l, fcb) { diff --git a/src/lib/elementary/efl_general.h b/src/lib/elementary/efl_general.h index e1e81a2287..9d7171b05f 100644 --- a/src/lib/elementary/efl_general.h +++ b/src/lib/elementary/efl_general.h @@ -37,11 +37,15 @@ int real__;\ _efl_startup_time = ecore_time_unix_get(); \ _EFL_APP_VERSION_SET();\ - elm_init(argc, argv); \ + ecore_init(); \ efl_event_callback_add(ecore_main_loop_get(), EFL_LOOP_EVENT_ARGUMENTS, efl_main, NULL); \ + ecore_init_ex(argc, argv); \ + elm_init(argc, argv); \ ret__ = efl_loop_begin(ecore_main_loop_get()); \ real__ = efl_loop_exit_code_process(ret__);\ elm_shutdown();\ + ecore_shutdown_ex(); \ + ecore_shutdown(); \ return real__; \ } @@ -57,11 +61,15 @@ int real__;\ _efl_startup_time = ecore_time_unix_get(); \ _EFL_APP_VERSION_SET();\ - elm_init(argc, argv); \ + ecore_init(); \ efl_event_callback_array_add(ecore_main_loop_get(), _efl_main_ex(), NULL);
[EGIT] [core/efl] master 12/12: elementary: fix quicklaunch support.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=50cc85f426e736d7ffafc8e7441392910cd278f0 commit 50cc85f426e736d7ffafc8e7441392910cd278f0 Author: Cedric BAILDate: Tue Nov 7 15:55:25 2017 -0800 elementary: fix quicklaunch support. --- src/lib/elementary/elm_main.c | 32 +--- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index ac60653516..d91d423407 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -730,7 +730,7 @@ elm_quicklaunch_mode_get(void) } EAPI int -elm_quicklaunch_init(intargc, +elm_quicklaunch_init(intargc EINA_UNUSED, char **argv) { _elm_ql_init_count++; @@ -745,6 +745,8 @@ elm_quicklaunch_init(intargc, eet_init(); ecore_init(); + edje_init(); + eio_init(); #ifdef HAVE_ELEMENTARY_EMAP emap_init(); @@ -760,7 +762,6 @@ elm_quicklaunch_init(intargc, if (!ecore_file_init()) ERR("Elementary cannot init ecore_file"); - eio_init(); _elm_exit_handler = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _elm_signal_exit, NULL); @@ -798,21 +799,14 @@ elm_quicklaunch_sub_init(intargc, { _elm_sub_init_count++; if (_elm_sub_init_count > 1) return _elm_sub_init_count; - if (quicklaunch_on) - { -//_elm_config_init(); -//#ifdef SEMI_BROKEN_QUICKLAUNCH -//return _elm_sub_init_count; -//#endif - } + _elm_config_init(); + ecore_main_loop_iterate(); if (!quicklaunch_on) { ecore_evas_init(); // FIXME: check errors -edje_init(); elm_color_class_init(); _elm_module_init(); -_elm_config_init(); _elm_config_sub_init(); ecore_imf_init(); ecore_con_init(); @@ -830,12 +824,6 @@ elm_quicklaunch_sub_shutdown(void) { _elm_sub_init_count--; if (_elm_sub_init_count > 0) return _elm_sub_init_count; - if (quicklaunch_on) - { -//#ifdef SEMI_BROKEN_QUICKLAUNCH -//return _elm_sub_init_count; -//#endif - } if (!quicklaunch_on) { _elm_win_shutdown(); @@ -846,12 +834,15 @@ elm_quicklaunch_sub_shutdown(void) edje_shutdown(); ecore_evas_shutdown(); _elm_config_sub_shutdown(); -_elm_config_shutdown(); _elm_module_shutdown(); if (_elm_prefs_initted) _elm_prefs_shutdown(); elm_color_class_shutdown(); } + + _elm_config_shutdown(); + ecore_main_loop_iterate(); + return _elm_sub_init_count; } @@ -,6 +1102,7 @@ elm_quicklaunch_fork(intargc, int i; char **args; +WRN("No main function found."); child = fork(); if (child > 0) return EINA_TRUE; else if (child < 0) @@ -1128,6 +1120,8 @@ elm_quicklaunch_fork(intargc, ERR("failed to execute '%s': %s", argv[0], strerror(errno)); exit(-1); } + INF("Main function found (legacy: %p, efl: %p)", + qr_main, qre_main); child = fork(); if (child > 0) return EINA_TRUE; else if (child < 0) @@ -1137,8 +1131,8 @@ elm_quicklaunch_fork(intargc, } if (postfork_func) postfork_func(postfork_data); - ecore_fork_reset(); eina_main_loop_define(); + ecore_fork_reset(); if (quicklaunch_on) { --
[EGIT] [tools/clouseau] master 02/02: clouseau: fix now private eo symbols
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/tools/clouseau.git/commit/?id=7dadc722c5c5b3c3a32481dc527ea89156463f04 commit 7dadc722c5c5b3c3a32481dc527ea89156463f04 Author: Marcel HollerbachDate: Tue Nov 7 20:32:09 2017 +0100 clouseau: fix now private eo symbols --- src/bin/clouseau_client.c | 6 +-- src/bin/gui.c | 4 +- src/lib/extensions/objects_introspection/gui.c | 2 +- src/lib/extensions/objects_introspection/main.c | 60 - 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/bin/clouseau_client.c b/src/bin/clouseau_client.c index d854fc7..2e9a545 100644 --- a/src/bin/clouseau_client.c +++ b/src/bin/clouseau_client.c @@ -577,10 +577,10 @@ _connection_type_change(Connection_Type conn_type) } void -remote_port_entry_changed(void *data, const Efl_Event *event) +remote_port_entry_changed(void *data, Evas_Object *obj, void *event_info) { Eo *inwin = data; - const char *ptr = elm_entry_entry_get(event->object); + const char *ptr = elm_entry_entry_get(obj); _selected_port = atoi(ptr); _connection_type_change(REMOTE_CONNECTION); efl_del(inwin); @@ -780,7 +780,7 @@ _extensions_cfgs_inwin_create(const char *filename) evas_object_size_hint_align_set(box, -1, -1); efl_gfx_visible_set(box, EINA_TRUE); - Eo *label = efl_add(ELM_LABEL_CLASS, box); + Eo *label = elm_label_add(box); elm_object_text_set(label, "Choose an extension to open the file with:"); evas_object_size_hint_align_set(label, 0, -1); evas_object_size_hint_weight_set(label, 1, 1); diff --git a/src/bin/gui.c b/src/bin/gui.c index 13d51df..b789816 100644 --- a/src/bin/gui.c +++ b/src/bin/gui.c @@ -18,7 +18,7 @@ conn_menu_show(void *data, Evas_Object *obj, void *event_info); extern void save_load_perform(void *data, Evas_Object *obj, void *event_info); extern void -remote_port_entry_changed(void *data, const Efl_Event *event); +remote_port_entry_changed(void *data, Evas_Object *obj, void *event_info); static void _pubs_free_cb(void *data, const Efl_Event *event EINA_UNUSED) @@ -129,7 +129,7 @@ gui_remote_port_win_create(Eo *__main_parent) elm_entry_scrollable_set(entry, EINA_TRUE); elm_entry_single_line_set(entry, EINA_TRUE); elm_object_part_text_set(entry, "guide", "Port to connect to remote device"); - efl_event_callback_add(entry, ELM_ENTRY_EVENT_ACTIVATED, remote_port_entry_changed, inwin); + evas_object_smart_callback_add(entry, "activated", remote_port_entry_changed, inwin); evas_object_show(entry); elm_win_inwin_content_set(inwin, entry); diff --git a/src/lib/extensions/objects_introspection/gui.c b/src/lib/extensions/objects_introspection/gui.c index 5bd196c..7ebf528 100644 --- a/src/lib/extensions/objects_introspection/gui.c +++ b/src/lib/extensions/objects_introspection/gui.c @@ -119,7 +119,7 @@ gui_win_create(Eo *__main_parent) pub_widgets->object_infos_list = object_infos_list; evas_object_size_hint_weight_set(object_infos_list, 1.00, 1.00); efl_gfx_visible_set(object_infos_list, EINA_TRUE); - objects_list = efl_add(ELM_GENLIST_CLASS, panes); + objects_list = elm_genlist_add(panes); pub_widgets->objects_list = objects_list; evas_object_size_hint_weight_set(objects_list, 1.00, 1.00); efl_gfx_visible_set(objects_list, EINA_TRUE); diff --git a/src/lib/extensions/objects_introspection/main.c b/src/lib/extensions/objects_introspection/main.c index 6a20699..5de0342 100644 --- a/src/lib/extensions/objects_introspection/main.c +++ b/src/lib/extensions/objects_introspection/main.c @@ -348,16 +348,16 @@ _snapshot_load(Clouseau_Extension *ext, void *buffer, int size, int version EINA } static void -_obj_info_expand_request_cb(void *data EINA_UNUSED, const Efl_Event *event) +_obj_info_expand_request_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info) { - Elm_Object_Item *glit = event->info; + Elm_Object_Item *glit = event_info; elm_genlist_item_expanded_set(glit, EINA_TRUE); } static void -_obj_info_contract_request_cb(void *data EINA_UNUSED, const Efl_Event *event) +_obj_info_contract_request_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info) { - Elm_Object_Item *glit = event->info; + Elm_Object_Item *glit = event_info; elm_genlist_item_expanded_set(glit, EINA_FALSE); } @@ -401,9 +401,9 @@ _obj_info_gl_selected(void *data EINA_UNUSED, Evas_Object *pobj, } static void -_obj_info_expanded_cb(void *data EINA_UNUSED, const Efl_Event *event) +_obj_info_expanded_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info) { - Elm_Object_Item *glit = event->info; + Elm_Object_Item *glit = event_info; const Elm_Genlist_Item_Class *itc = elm_genlist_item_item_class_get(glit); if (itc == _obj_kl_info_itc) { @@ -413,7 +413,7 @@ _obj_info_expanded_cb(void *data EINA_UNUSED, const
[EGIT] [tools/examples] master 01/01: eo-classes: Add an example using eolian to define a class heirarchy
ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/tools/examples.git/commit/?id=c2fd813ea64c270f2dc58beb72d070e8c9a0c5a8 commit c2fd813ea64c270f2dc58beb72d070e8c9a0c5a8 Author: Andy WilliamsDate: Tue Nov 7 17:35:34 2017 + eo-classes: Add an example using eolian to define a class heirarchy --- c-eo-classes/meson.build | 14 c-eo-classes/src/eo_classes_main.c| 57 +++ c-eo-classes/src/example_rectangle.c | 51 c-eo-classes/src/example_rectangle.eo | 31 + c-eo-classes/src/example_shape.c | 5 +++ c-eo-classes/src/example_shape.eo | 24 + c-eo-classes/src/example_square.c | 64 +++ c-eo-classes/src/example_square.eo| 23 + c-eo-classes/src/meson.build | 32 ++ 9 files changed, 301 insertions(+) diff --git a/c-eo-classes/meson.build b/c-eo-classes/meson.build new file mode 100644 index 000..a84c7ba --- /dev/null +++ b/c-eo-classes/meson.build @@ -0,0 +1,14 @@ +project( + 'efl-example-eo-classes', 'c', + version : '0.0.1', + default_options: [ 'c_std=gnu99', 'warning_level=2' ], + meson_version : '>= 0.38.0') + +eina = dependency('eina', version : '>=1.20.99') +efl = dependency('efl', version : '>=1.20.99') +elm = dependency('elementary', version : '>=1.20.99') +eolian = dependency('eolian', version : '>=1.20.99') + +inc = include_directories('.') +subdir('src') + diff --git a/c-eo-classes/src/eo_classes_main.c b/c-eo-classes/src/eo_classes_main.c new file mode 100644 index 000..aaf3a0c --- /dev/null +++ b/c-eo-classes/src/eo_classes_main.c @@ -0,0 +1,57 @@ +#define EFL_EO_API_SUPPORT 1 +#define EFL_BETA_API_SUPPORT 1 + +#include +#include +#include + +#include "example_shape.eo.h" +#include "example_rectangle.eo.h" +#include "example_square.eo.h" + +Example_Shape * +_rect_create() +{ + Example_Rectangle *rectangle; + + rectangle = efl_add(EXAMPLE_RECTANGLE_CLASS, NULL, + efl_name_set(efl_added, "Rectangle"), + example_rectangle_width_set(efl_added, 5), + example_rectangle_height_set(efl_added, 10)); + + return rectangle; +} + +Example_Shape * +_square_create() +{ + Example_Square *square; + + square = efl_add(EXAMPLE_SQUARE_CLASS, NULL, +efl_name_set(efl_added, "Square"), +example_square_side_set(efl_added, 7)); + + return square; +} + +void +_shape_print(Example_Shape *shape) +{ + printf("Shape named %s has area %d\n", efl_name_get(shape), example_shape_area(shape)); +} + +EAPI_MAIN void +efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) +{ + Eo *shape; + + shape = _rect_create(); + _shape_print(shape); + + shape = _square_create(); + _shape_print(shape); + + efl_exit(0); +} +EFL_MAIN() + diff --git a/c-eo-classes/src/example_rectangle.c b/c-eo-classes/src/example_rectangle.c new file mode 100644 index 000..c268bc1 --- /dev/null +++ b/c-eo-classes/src/example_rectangle.c @@ -0,0 +1,51 @@ +#define EFL_BETA_API_SUPPORT +#include +#include "example_rectangle.eo.h" +#include "example_shape.eo.h" + +typedef struct +{ + int width, height; +} Example_Rectangle_Data; + +EOLIAN static void +_example_rectangle_width_set(Eo *obj EINA_UNUSED, Example_Rectangle_Data *pd, int width) +{ + pd->width = width; +} + +EOLIAN static int +_example_rectangle_width_get(Eo *obj EINA_UNUSED, Example_Rectangle_Data *pd) +{ + return pd->width; +} + +EOLIAN static void +_example_rectangle_height_set(Eo *obj EINA_UNUSED, Example_Rectangle_Data *pd, int height) +{ + pd->height = height; +} + +EOLIAN static int +_example_rectangle_height_get(Eo *obj EINA_UNUSED, Example_Rectangle_Data *pd) +{ + return pd->height; +} + +EOLIAN static int +_example_rectangle_example_shape_area(Eo *obj EINA_UNUSED, Example_Rectangle_Data *pd) +{ + return pd->width * pd->height; +} + +EOLIAN static void +_example_rectangle_class_constructor(Efl_Class *klass EINA_UNUSED) +{ +} + +EOLIAN static void +_example_rectangle_class_destructor(Efl_Class *klass EINA_UNUSED) +{ +} + +#include "example_rectangle.eo.c" diff --git a/c-eo-classes/src/example_rectangle.eo b/c-eo-classes/src/example_rectangle.eo new file mode 100644 index 000..35ce9fc --- /dev/null +++ b/c-eo-classes/src/example_rectangle.eo @@ -0,0 +1,31 @@ +class Example.Rectangle (Efl.Object, Example.Shape) { + [[A rectangle shape object]] + eo_prefix: example_rectangle; + methods { + @property width { + [[The width of this rectangle]] + set { + } + get { + } + values { +width: int; [[Rectangle width]] + } + } + @property height { + [[The height of this rectangle]] + set { + } + get { + } + values { +height: int;
[EGIT] [core/enlightenment] master 05/10: use E_BITFIELD define for bitfield struct members
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=59fa0e418dc78abc2d9e35635e44197ac8091520 commit 59fa0e418dc78abc2d9e35635e44197ac8091520 Author: Mike BlumenkrantzDate: Mon Nov 6 12:46:08 2017 -0500 use E_BITFIELD define for bitfield struct members on release builds this will be a bitfield, on devel builds it will make bools a normal unsigned char for easier debugging --- src/bin/e_bindings.h | 20 +- src/bin/e_client.h| 368 +++--- src/bin/e_comp.h | 20 +- src/bin/e_comp_object.h | 2 +- src/bin/e_comp_wl.h | 58 ++--- src/bin/e_comp_wl_data.h | 6 +- src/bin/e_comp_x.h| 60 ++--- src/bin/e_config_dialog.h | 14 +- src/bin/e_confirm_dialog.h| 2 +- src/bin/e_desk.h | 4 +- src/bin/e_desklock.h | 2 +- src/bin/e_dialog.h| 2 +- src/bin/e_dnd.h | 10 +- src/bin/e_exec.h | 4 +- src/bin/e_fm.h| 52 ++--- src/bin/e_fm_op_registry.h| 4 +- src/bin/e_gadcon.h| 26 +-- src/bin/e_gadcon_popup.h | 8 +- src/bin/e_ilist.h | 6 +- src/bin/e_macros.h| 6 + src/bin/e_menu.h | 30 +-- src/bin/e_module.h| 6 +- src/bin/e_object.h| 6 +- src/bin/e_pointer.h | 10 +- src/bin/e_randr2.h| 22 +- src/bin/e_remember.h | 2 +- src/bin/e_shelf.h | 18 +- src/bin/e_sys.h | 2 +- src/bin/e_zone.h | 12 +- src/modules/battery/e_mod_main.h | 8 +- src/modules/luncher/luncher.h | 4 +- src/modules/music-control/private.h | 4 +- src/modules/notification/e_mod_main.h | 2 +- src/modules/sysinfo/batman/batman.h | 8 +- src/modules/sysinfo/sysinfo.h | 4 +- src/modules/teamwork/e_mod_main.h | 6 +- src/modules/temperature/e_mod_main.h | 4 +- src/modules/vkbd/e_kbd_buf.h | 4 +- src/modules/vkbd/e_kbd_int.h | 26 +-- src/modules/wireless/wireless.h | 4 +- src/modules/wl_desktop_shell/e_mod_main.h | 6 +- 41 files changed, 434 insertions(+), 428 deletions(-) diff --git a/src/bin/e_bindings.h b/src/bin/e_bindings.h index 940cac120..0bc9892a1 100644 --- a/src/bin/e_bindings.h +++ b/src/bin/e_bindings.h @@ -51,10 +51,10 @@ struct E_Binding_Event_Mouse_Button unsigned int modifiers; /**< modifier keys pressed during the event */ unsigned int timestamp; - Eina_Bool double_click : 1; - Eina_Bool triple_click : 1; - Eina_Bool hold : 1; - Eina_Bool scroll : 1; + Eina_Bool double_click E_BITFIELD; + Eina_Bool triple_click E_BITFIELD; + Eina_Bool hold E_BITFIELD; + Eina_Bool scroll E_BITFIELD; }; struct E_Binding_Event_Wheel @@ -73,7 +73,7 @@ struct _E_Binding_Mouse E_Binding_Context ctxt; int button; E_Binding_Modifier mod; - unsigned char any_mod : 1; + unsigned char any_mod E_BITFIELD; const char *action; const char *params; }; @@ -83,7 +83,7 @@ struct _E_Binding_Key E_Binding_Context ctxt; const char *key; E_Binding_Modifier mod; - unsigned char any_mod : 1; + unsigned char any_mod E_BITFIELD; const char *action; const char *params; }; @@ -98,8 +98,8 @@ struct _E_Binding_Edge float delay; Ecore_Timer *timer; - Eina_Bool any_mod : 1; - Eina_Bool drag_only : 1; + Eina_Bool any_mod E_BITFIELD; + Eina_Bool drag_only E_BITFIELD; }; struct _E_Binding_Signal @@ -108,7 +108,7 @@ struct _E_Binding_Signal const char *sig; const char *src; E_Binding_Modifier mod; - unsigned char any_mod : 1; + unsigned char any_mod E_BITFIELD; const char *action; const char *params; }; @@ -119,7 +119,7 @@ struct _E_Binding_Wheel int direction; int z; E_Binding_Modifier mod; - unsigned char any_mod : 1; + unsigned char any_mod E_BITFIELD; const char *action; const char *params; }; diff --git a/src/bin/e_client.h b/src/bin/e_client.h index 3687ddfd1..c2f7128b9 100644 --- a/src/bin/e_client.h +++ b/src/bin/e_client.h @@ -214,7 +214,7 @@ struct _E_Client_Hook E_Client_Hook_Point hookpoint; E_Client_Hook_Cb func; void *data; - unsigned char delete_me : 1; + unsigned char delete_me E_BITFIELD; }; struct _E_Client_Pending_Resize @@ -272,7 +272,7 @@ struct E_Client E_Client *next; E_Client *prev; int
[EGIT] [core/enlightenment] master 07/10: prevent double shutdown of x11 compositor in xwayland mode
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3fb8253edb37fcb1bd325a400cb8151ca548ed50 commit 3fb8253edb37fcb1bd325a400cb8151ca548ed50 Author: Mike BlumenkrantzDate: Mon Nov 6 13:58:53 2017 -0500 prevent double shutdown of x11 compositor in xwayland mode only do shutdown in xwl module if not actively shutting down --- src/modules/xwayland/e_mod_main.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index f3826c3cd..7848595b3 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -451,8 +451,11 @@ xwl_shutdown(void) if (exs->sig_hdlr) ecore_event_handler_del(exs->sig_hdlr); free(exs); - if (e_comp_util_has_x()) e_comp_x_shutdown(); - ecore_x_shutdown(); + if (!stopping) + { +if (e_comp_util_has_x()) e_comp_x_shutdown(); +ecore_x_shutdown(); + } e_util_env_set("DISPLAY", NULL); } --
[EGIT] [core/enlightenment] master 09/10: use last client from E_Exec_Instance list when updating luncher popups
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4178e875182531c013ec78106e93247e891faf67 commit 4178e875182531c013ec78106e93247e891faf67 Author: Mike BlumenkrantzDate: Mon Nov 6 14:21:11 2017 -0500 use last client from E_Exec_Instance list when updating luncher popups the last client is the most recently-added fix T6288 --- src/modules/luncher/bar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c index 58c0f07c1..68b2057a2 100644 --- a/src/modules/luncher/bar.c +++ b/src/modules/luncher/bar.c @@ -1403,7 +1403,7 @@ _bar_cb_exec_new(void *data EINA_UNUSED, int type, E_Exec_Instance *ex) if (type == E_EVENT_EXEC_NEW_CLIENT) { -ec = eina_list_data_get(ex->clients); +ec = eina_list_last_data_get(ex->clients); if (ec->netwm.state.skip_taskbar || e_client_util_is_popup(ec)) skip = EINA_TRUE; else --
[EGIT] [core/enlightenment] master 10/10: unify meson version requirements for efl
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=791f70541ddcce46107491f66361498142be75c2 commit 791f70541ddcce46107491f66361498142be75c2 Author: Mike BlumenkrantzDate: Mon Nov 6 15:23:06 2017 -0500 unify meson version requirements for efl --- src/bin/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/meson.build b/src/bin/meson.build index d20165c6a..b06dc0c35 100644 --- a/src/bin/meson.build +++ b/src/bin/meson.build @@ -39,7 +39,7 @@ if config_h.has('HAVE_PAM') == true endif requires_e = ' '.join([ - 'eina >= 1.20.5', + ' '.join(['eina', efl_version]), 'eet', 'ecore', 'ecore-ipc', --
[EGIT] [core/enlightenment] master 06/10: avoid performing client rescales during shutdown
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e7cfd0667598d0213b2425ef7b9cd60ac666df69 commit e7cfd0667598d0213b2425ef7b9cd60ac666df69 Author: Mike BlumenkrantzDate: Mon Nov 6 13:58:16 2017 -0500 avoid performing client rescales during shutdown --- src/bin/e_client.c | 2 ++ src/bin/e_comp.c | 1 + src/bin/e_zone.c | 3 ++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 7c68bc407..6ea96054c 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -3331,6 +3331,8 @@ e_client_rescale(E_Client *ec) { Eina_Bool shaded; int shade_dir; + + if (stopping) return; E_OBJECT_CHECK(ec); E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE); diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 650e4a978..42a47736c 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -1813,6 +1813,7 @@ e_comp_clients_rescale(void) { int i; + if (stopping) return; for (i = 0; i < 11; i++) { Eina_List *tmp = NULL; diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index 4a24ed540..0d769b876 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -1312,7 +1312,8 @@ e_zone_useful_geometry_dirty(E_Zone *zone) e_object_ref(E_OBJECT(ev->zone)); ecore_event_add(E_EVENT_ZONE_USEFUL_GEOMETRY_CHANGED, ev, _e_zone_event_generic_free, NULL); - e_comp_clients_rescale(); + if (!stopping) + e_comp_clients_rescale(); } E_API E_Zone_Obstacle * --
[EGIT] [core/enlightenment] master 04/10: requeue client for render if show animation completes and damages exist
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f78eb3c108fbbb84edcb4c62fc499b4be558169a commit f78eb3c108fbbb84edcb4c62fc499b4be558169a Author: Mike BlumenkrantzDate: Mon Nov 6 10:31:58 2017 -0500 requeue client for render if show animation completes and damages exist attempt to catch clients which have a render queued prior to the image becoming visible --- src/bin/e_comp_object.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 92a66020d..f53aff26e 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -827,7 +827,11 @@ _e_comp_object_done_defer(void *data, Evas_Object *obj EINA_UNUSED, const char * if (cw->defer_hide && ((!strcmp(emission, "e,action,hide,done")) || (!strcmp(emission, "e,action,done" evas_object_hide(cw->smart_obj); else - e_comp_shape_queue(); + { +e_comp_shape_queue(); +if (cw->visible && cw->updates_exist) + e_comp_object_render_update_add(cw->smart_obj); + } } /* run a visibility compositor effect if available, return false if object is dead */ --
[EGIT] [core/enlightenment] master 03/10: do not add iconify provider for luncher when creating a demo gadget
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=18de7db6f635e465eb556241701691ca2738bc03 commit 18de7db6f635e465eb556241701691ca2738bc03 Author: Mike BlumenkrantzDate: Mon Nov 6 09:22:24 2017 -0500 do not add iconify provider for luncher when creating a demo gadget --- src/modules/luncher/bar.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c index a411493ef..58c0f07c1 100644 --- a/src/modules/luncher/bar.c +++ b/src/modules/luncher/bar.c @@ -1880,8 +1880,9 @@ _bar_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSED) if (inst->cfg->type != E_LUNCHER_MODULE_LAUNCH_ONLY) { -inst->iconify_provider = e_comp_object_effect_mover_add(80, "e,action,*iconify", -_bar_iconify_start, inst); +if (inst->cfg->id != -1) + inst->iconify_provider = e_comp_object_effect_mover_add(80, "e,action,*iconify", + _bar_iconify_start, inst); } _bar_fill(inst); --
[EGIT] [core/enlightenment] master 02/10: destroy luncher iconify provider on gadget delete
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a5adcb1df761293360f661db82108b69f5e786b3 commit a5adcb1df761293360f661db82108b69f5e786b3 Author: Mike BlumenkrantzDate: Mon Nov 6 09:20:37 2017 -0500 destroy luncher iconify provider on gadget delete this is removed on object delete, not config delete fix T6258 --- src/modules/luncher/bar.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c index 2cfb1a5f8..a411493ef 100644 --- a/src/modules/luncher/bar.c +++ b/src/modules/luncher/bar.c @@ -1656,8 +1656,6 @@ _bar_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_data) if (e_user_dir_snprintf(buf, sizeof(buf), "applications/bar/%s", inst->cfg->dir) >= sizeof(buf)) return; - E_FREE_FUNC(inst->iconify_provider, e_comp_object_effect_mover_del); - luncher_config->items = eina_list_remove(luncher_config->items, inst->cfg); eina_stringshare_del(inst->cfg->dir); E_FREE(inst->cfg); @@ -1670,6 +1668,7 @@ _bar_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_data EIN Ecore_Event_Handler *handler; evas_object_smart_callback_del_full(e_gadget_site_get(obj), "gadget_removed", _bar_removed_cb, inst); + E_FREE_FUNC(inst->iconify_provider, e_comp_object_effect_mover_del); inst->main_del = EINA_TRUE; _bar_empty(inst); e_object_del(E_OBJECT(inst->order)); --
[EGIT] [core/enlightenment] master 01/10: add field width limits to all fscanf params in e_intlc.
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=dde4bafd7f015cf958df1da33be7dc04cfae46a9 commit dde4bafd7f015cf958df1da33be7dc04cfae46a9 Author: Mike BlumenkrantzDate: Mon Nov 6 08:34:24 2017 -0500 add field width limits to all fscanf params in e_intlc. fix T6316 --- src/bin/e_intl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/e_intl.c b/src/bin/e_intl.c index 3cb7deaee..57198d925 100644 --- a/src/bin/e_intl.c +++ b/src/bin/e_intl.c @@ -585,7 +585,7 @@ _e_intl_locale_alias_hash_get(void) char alias[4096], locale[4096]; /* read locale alias lines */ - while (fscanf(f, "%4090s %[^\n]\n", alias, locale) == 2) + while (fscanf(f, "%4095s %4095[^\n]\n", alias, locale) == 2) { /* skip comments */ if ((alias[0] == '!') || (alias[0] == '#')) @@ -873,7 +873,7 @@ _e_intl_locale_system_locales_get(void) if (output) { char line[32]; -while (fscanf(output, "%[^\n]\n", line) == 1) +while (fscanf(output, "%31[^\n]\n", line) == 1) locales = eina_list_append(locales, strdup(line)); pclose(output); --
[EGIT] [core/enlightenment] master 08/10: always emit E_EVENT_COMP_OBJECT_ADD events
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=19a807bdb26b336ce08e9f0183182f410d9f144e commit 19a807bdb26b336ce08e9f0183182f410d9f144e Author: Mike BlumenkrantzDate: Mon Nov 6 14:08:33 2017 -0500 always emit E_EVENT_COMP_OBJECT_ADD events fix T6322 --- src/bin/e_comp_object.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index f53aff26e..d7130d2cc 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -172,7 +172,6 @@ _e_comp_object_event_add(Evas_Object *obj) E_Event_Comp_Object *ev; E_Client *ec; - if (stopping) return; ev = E_NEW(E_Event_Comp_Object, 1); evas_object_ref(obj); ev->comp_object = obj; --
[EGIT] [website/www-content] master 01/01: Wiki page documentation-guide.md changed with summary [] by Gareth Halfacree
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=c5632499edd8c9297d32a8c62d69a71b26059e7b commit c5632499edd8c9297d32a8c62d69a71b26059e7b Author: Gareth HalfacreeDate: Tue Nov 7 06:54:20 2017 -0800 Wiki page documentation-guide.md changed with summary [] by Gareth Halfacree --- pages/contrib/docs/documentation-guide.md.txt | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pages/contrib/docs/documentation-guide.md.txt b/pages/contrib/docs/documentation-guide.md.txt index 915736ee..01ada098 100644 --- a/pages/contrib/docs/documentation-guide.md.txt +++ b/pages/contrib/docs/documentation-guide.md.txt @@ -135,6 +135,8 @@ Where a code block contains extracts from a larger program it should follow the Where referencing code within a paragraph of documentation, use paired double-backticks (\`\`) to format the reference as in-line code. Writing \`\`-EINVAL;\`\`, for example, will render as ``-EINVAL;``. +When referencing a method in a document always include the parentheses that go with it: ``efl_add()`` rather than ``efl_add``, for example. + For information on the formatting of the code itself, please consult the [Coding Convention Guide](https://phab.enlightenment.org/w/coding_convention/). ### Table Formatting ### @@ -262,7 +264,11 @@ Note that these pages are in DokuWiki markup format, not Markdown Extra. Each en ## Programming Tutorials ## -Programming tutorials, and other hands-on educational documentation, require a specific approach in order to be both accessible and informative. The template below demonstrates a rough approach to which you should adhere: +Programming tutorials, and other hands-on educational documentation, require a specific approach in order to be both accessible and informative. As with all other documentation, programming tutorials must be written in American English and in the second person active voice, present tense. If using a text editor with spell-checking capabilities, please install an American English dictionary. Additionally, treat the Enlightenment Foundation Libraries (EFL) as a collective noun and refer to [...] + +Particular care should be taken that programming tutorials adhere to the guidelines in the [Code Formatting section](#Code_Formatting) of this guide, and any freshly-written code follows the [Coding Conventions](https://www.enlightenment.org/contrib/devs/coding-conventions.md). + +The template below demonstrates a rough approach to which you should adhere where possible: markdown --- --
[EGIT] [website/www-content] master 01/01: Wiki page strings.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=f91627356e44b4251b6bce6f1c1a31cc912f0457 commit f91627356e44b4251b6bce6f1c1a31cc912f0457 Author: PaulDate: Tue Nov 7 06:47:06 2017 -0800 Wiki page strings.md changed with summary [] by Paul --- pages/eina-programming-guide/strings.md.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/eina-programming-guide/strings.md.txt b/pages/eina-programming-guide/strings.md.txt index d7a1fc56..56024b9a 100644 --- a/pages/eina-programming-guide/strings.md.txt +++ b/pages/eina-programming-guide/strings.md.txt @@ -166,10 +166,10 @@ eina_strbuf_free(mybuffer); :The functions that allow you to store a single copy of a string, and use it in multiple places throughout your program. [Stringshare Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_stringshare_01_8c-example.html) -:Example code showing how to use Streamshares. +:Example code showing how to use Stringshares. [String Buffer API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__String__Buffer__Group.html) :The functions that provide string buffers management. [String Buffer Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_strbuf_01_8c-example.html) -:Example code showing how to use Stream Buffers. \ No newline at end of file +:Example code showing how to use String Buffers. \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page strings.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=d1f72a36d728ceddf284e7ed100c05f6d01a5dd6 commit d1f72a36d728ceddf284e7ed100c05f6d01a5dd6 Author: PaulDate: Tue Nov 7 06:44:52 2017 -0800 Wiki page strings.md changed with summary [] by Paul --- pages/eina-programming-guide/strings.md.txt | 16 +++- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pages/eina-programming-guide/strings.md.txt b/pages/eina-programming-guide/strings.md.txt index 81ddc0ad..d7a1fc56 100644 --- a/pages/eina-programming-guide/strings.md.txt +++ b/pages/eina-programming-guide/strings.md.txt @@ -159,11 +159,17 @@ eina_strbuf_free(mybuffer); ## Further Reading ## +[String Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_str_01_8c-example.html) +:Example code using Eina strings. + [Stringshare API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Stringshare__Group.html) -:The functions that allow you to store a single copy of a string, and use it in multiple places throughout your program. +:The functions that allow you to store a single copy of a string, and use it in multiple places throughout your program. + +[Stringshare Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_stringshare_01_8c-example.html) +:Example code showing how to use Streamshares. +[String Buffer API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__String__Buffer__Group.html) +:The functions that provide string buffers management. -* [String Buffer API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__String__Buffer__Group.html) -* [String Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_str_01_8c-example.html) -* [String Buffer Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_strbuf_01_8c-example.html) -* [Stringshare Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_stringshare_01_8c-example.html) +[String Buffer Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_strbuf_01_8c-example.html) +:Example code showing how to use Stream Buffers. \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page iterator-functions.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=1ef1869af4760a0b589c3f7b2eacff61f2597577 commit 1ef1869af4760a0b589c3f7b2eacff61f2597577 Author: PaulDate: Tue Nov 7 06:39:08 2017 -0800 Wiki page iterator-functions.md changed with summary [] by Paul --- pages/eina-programming-guide/iterator-functions.md.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/eina-programming-guide/iterator-functions.md.txt b/pages/eina-programming-guide/iterator-functions.md.txt index bebf3f10..8ed042dd 100644 --- a/pages/eina-programming-guide/iterator-functions.md.txt +++ b/pages/eina-programming-guide/iterator-functions.md.txt @@ -20,5 +20,5 @@ In addition to iterator functions, each data type also owns a set of macros that [Iterator Functions API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Iterator__Group.html) :The functions that manage iterators on containers. -* [Eina Iterator Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_iterator_01_8c-example.html) +[Eina Iterator Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_iterator_01_8c-example.html) :An example using iterator functions. \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page iterator-functions.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=db39f53a2cd3e534a44474b4a1f821a2bb02d3c7 commit db39f53a2cd3e534a44474b4a1f821a2bb02d3c7 Author: PaulDate: Tue Nov 7 06:38:43 2017 -0800 Wiki page iterator-functions.md changed with summary [] by Paul --- pages/eina-programming-guide/iterator-functions.md.txt | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pages/eina-programming-guide/iterator-functions.md.txt b/pages/eina-programming-guide/iterator-functions.md.txt index c8f8acf6..bebf3f10 100644 --- a/pages/eina-programming-guide/iterator-functions.md.txt +++ b/pages/eina-programming-guide/iterator-functions.md.txt @@ -17,6 +17,8 @@ In addition to iterator functions, each data type also owns a set of macros that ## Further Reading ## -* [Iterator Functions API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Iterator__Group.html) +[Iterator Functions API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Iterator__Group.html) +:The functions that manage iterators on containers. -* [Eina Iterator Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_iterator_01_8c-example.html) \ No newline at end of file +* [Eina Iterator Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_iterator_01_8c-example.html) +:An example using iterator functions. \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page strings.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=b4adf7be7b181c791f462a1288d313f79cccddcb commit b4adf7be7b181c791f462a1288d313f79cccddcb Author: PaulDate: Tue Nov 7 06:36:29 2017 -0800 Wiki page strings.md changed with summary [] by Paul --- pages/eina-programming-guide/strings.md.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/eina-programming-guide/strings.md.txt b/pages/eina-programming-guide/strings.md.txt index 2b81a2fc..81ddc0ad 100644 --- a/pages/eina-programming-guide/strings.md.txt +++ b/pages/eina-programming-guide/strings.md.txt @@ -160,7 +160,7 @@ eina_strbuf_free(mybuffer); ## Further Reading ## [Stringshare API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Stringshare__Group.html) -:A list of the functions that allow you to store a single copy of a string, and use it in multiple places throughout your program. +:The functions that allow you to store a single copy of a string, and use it in multiple places throughout your program. * [String Buffer API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__String__Buffer__Group.html) --
[EGIT] [website/www-content] master 01/01: Wiki page strings.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=a98e835426c5b91ca6f02eed639dacb14d4c15e7 commit a98e835426c5b91ca6f02eed639dacb14d4c15e7 Author: PaulDate: Tue Nov 7 06:35:37 2017 -0800 Wiki page strings.md changed with summary [] by Paul --- pages/eina-programming-guide/strings.md.txt | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pages/eina-programming-guide/strings.md.txt b/pages/eina-programming-guide/strings.md.txt index 52fe5220..2b81a2fc 100644 --- a/pages/eina-programming-guide/strings.md.txt +++ b/pages/eina-programming-guide/strings.md.txt @@ -159,7 +159,10 @@ eina_strbuf_free(mybuffer); ## Further Reading ## -* [Stringshare API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Stringshare__Group.html) +[Stringshare API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Stringshare__Group.html) +:A list of the functions that allow you to store a single copy of a string, and use it in multiple places throughout your program. + + * [String Buffer API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__String__Buffer__Group.html) * [String Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_str_01_8c-example.html) * [String Buffer Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_strbuf_01_8c-example.html) --
[EGIT] [core/efl] efl-1.20 01/01: Revert "ecore_wl2: Remove just the flush from the idle handler"
derekf pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=d1e5e3ff5ee19e44e722e153ffd260f4a1f04bb2 commit d1e5e3ff5ee19e44e722e153ffd260f4a1f04bb2 Author: Derek ForemanDate: Tue Nov 7 07:55:16 2017 -0600 Revert "ecore_wl2: Remove just the flush from the idle handler" This reverts commit e67aa661a0077f4069b67eefcb016424a630ab55. I accidentally flagged this as a fix when it should've been a ref, the bug (T6250) this was related to was actually fixed by the previous 1.21 commit (a revert, returning the code to its 1.20 state). The bug didn't exist on stable branch. The patch was actually an optimization that requires all of my 1.21 wayland work. Ironically, backporting it to stable will introduce the bug in T6250 there. @ref T6250 --- src/lib/ecore_wl2/ecore_wl2_display.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/lib/ecore_wl2/ecore_wl2_display.c b/src/lib/ecore_wl2/ecore_wl2_display.c index 69188674fb..79a9e59fc5 100644 --- a/src/lib/ecore_wl2/ecore_wl2_display.c +++ b/src/lib/ecore_wl2/ecore_wl2_display.c @@ -553,6 +553,12 @@ _cb_connect_idle(void *data) code = errno; if (ret < 0) goto err; + ret = wl_display_flush(ewd->wl.display); + code = errno; + if ((ret < 0) && (code == EAGAIN)) + ecore_main_fd_handler_active_set(ewd->fd_hdl, + (ECORE_FD_READ | ECORE_FD_WRITE)); + return ECORE_CALLBACK_RENEW; err: --
[EGIT] [core/efl] efl-1.20 01/01: efl net - handle proxy helper fails better and abort proxy lookups
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=fe62ed345b8de5b3431fa2e9d7bbbc01a7fb5473 commit fe62ed345b8de5b3431fa2e9d7bbbc01a7fb5473 Author: Carsten Haitzler (Rasterman)Date: Tue Nov 7 22:41:20 2017 +0900 efl net - handle proxy helper fails better and abort proxy lookups if proxy fails are too many then give up on queued lookups as they likely will continue. i noticed a process continually spawning efl net proxy helper because one queued lookup failed and could be looked up so it kept trying again and again. @fix --- src/lib/ecore_con/ecore_con_proxy_helper.c | 16 +++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_con/ecore_con_proxy_helper.c b/src/lib/ecore_con/ecore_con_proxy_helper.c index 43feead87e..c8ba462332 100644 --- a/src/lib/ecore_con/ecore_con_proxy_helper.c +++ b/src/lib/ecore_con/ecore_con_proxy_helper.c @@ -25,6 +25,7 @@ typedef struct { char **proxies; int id; int busy; + int fails; } Efl_Net_Proxy_Helper_Req; typedef struct { @@ -205,6 +206,7 @@ static Eina_Bool _efl_net_proxy_helper_cb_exe_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *info) { Ecore_Exe_Event_Del *event = info; + int min_fails = 0; if (!_efl_net_proxy_helper_exe) return EINA_TRUE; if (event->exe == _efl_net_proxy_helper_exe) @@ -222,10 +224,22 @@ _efl_net_proxy_helper_cb_exe_del(void *data EINA_UNUSED, int type EINA_UNUSED, v { if ((t - last_respawn) > 5.0) respawn = EINA_TRUE; } + if (respawn) + { + Eina_List *l; + Efl_Net_Proxy_Helper_Req *req; + + EINA_LIST_FOREACH(_efl_net_proxy_helper_queue, l, req) +{ + req->fails++; + if (req->fails > min_fails) min_fails = req->fails; +} + } locks--; } eina_spinlock_release(&_efl_net_proxy_helper_queue_lock); -if (respawn) +if (min_fails >= 5) _efl_net_proxy_helper_cancel(); +else if (respawn) { last_respawn = t; _efl_net_proxy_helper_spawn(); --
[EGIT] [core/efl] master 01/01: efl net - handle proxy helper fails better and abort proxy lookups
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ede0587887704fc166e1631304f660e703e3489b commit ede0587887704fc166e1631304f660e703e3489b Author: Carsten Haitzler (Rasterman)Date: Tue Nov 7 22:41:20 2017 +0900 efl net - handle proxy helper fails better and abort proxy lookups if proxy fails are too many then give up on queued lookups as they likely will continue. i noticed a process continually spawning efl net proxy helper because one queued lookup failed and could be looked up so it kept trying again and again. @fix --- src/lib/ecore_con/ecore_con_proxy_helper.c | 16 +++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_con/ecore_con_proxy_helper.c b/src/lib/ecore_con/ecore_con_proxy_helper.c index ff0253f055..c313b4d4f7 100644 --- a/src/lib/ecore_con/ecore_con_proxy_helper.c +++ b/src/lib/ecore_con/ecore_con_proxy_helper.c @@ -25,6 +25,7 @@ typedef struct { char **proxies; int id; int busy; + int fails; } Efl_Net_Proxy_Helper_Req; typedef struct { @@ -205,6 +206,7 @@ static Eina_Bool _efl_net_proxy_helper_cb_exe_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *info) { Ecore_Exe_Event_Del *event = info; + int min_fails = 0; if (!_efl_net_proxy_helper_exe) return EINA_TRUE; if (event->exe == _efl_net_proxy_helper_exe) @@ -222,10 +224,22 @@ _efl_net_proxy_helper_cb_exe_del(void *data EINA_UNUSED, int type EINA_UNUSED, v { if ((t - last_respawn) > 5.0) respawn = EINA_TRUE; } + if (respawn) + { + Eina_List *l; + Efl_Net_Proxy_Helper_Req *req; + + EINA_LIST_FOREACH(_efl_net_proxy_helper_queue, l, req) +{ + req->fails++; + if (req->fails > min_fails) min_fails = req->fails; +} + } locks--; } eina_spinlock_release(&_efl_net_proxy_helper_queue_lock); -if (respawn) +if (min_fails >= 5) _efl_net_proxy_helper_cancel(); +else if (respawn) { last_respawn = t; _efl_net_proxy_helper_spawn(); --
[EGIT] [core/efl] master 01/03: slider: Advertise indicator part in the EO file
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8aeccdb7a19a33349e7bc7ca734ba9ed7f948c14 commit 8aeccdb7a19a33349e7bc7ca734ba9ed7f948c14 Author: Jean-Philippe AndreDate: Tue Nov 7 22:00:32 2017 +0900 slider: Advertise indicator part in the EO file There are 3 other indicator APIs that aren't in the part class... why? --- src/lib/elementary/efl_ui_slider.eo | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/elementary/efl_ui_slider.eo b/src/lib/elementary/efl_ui_slider.eo index 0368087ffd..31f2d89b51 100644 --- a/src/lib/elementary/efl_ui_slider.eo +++ b/src/lib/elementary/efl_ui_slider.eo @@ -65,6 +65,9 @@ class Efl.Ui.Slider (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction, } } } + parts { + indicator: Efl.Ui.Slider.Part; [[A floating indicator above the slider.]] + } implements { class.constructor; Efl.Object.constructor; --
[EGIT] [core/efl] master 03/03: cxx: Fix slider example
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a0dc0eb5161f88507e3e44bb426ac26245aa6847 commit a0dc0eb5161f88507e3e44bb426ac26245aa6847 Author: Jean-Philippe AndreDate: Tue Nov 7 22:21:13 2017 +0900 cxx: Fix slider example The fix is not complete. We need to make efl_part() work nicely in C++: - Get the refs work properly (maybe without auto-del) - Generate the parts from the EO file as methods on the object Final form should be close to: slider.indicator().format_string_set("%1.2f"); Where everything autocompletes nicely :) --- src/examples/elementary/slider_cxx_example.cc | 12 +--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/examples/elementary/slider_cxx_example.cc b/src/examples/elementary/slider_cxx_example.cc index 797e1bd5b6..b3b3676205 100644 --- a/src/examples/elementary/slider_cxx_example.cc +++ b/src/examples/elementary/slider_cxx_example.cc @@ -30,7 +30,9 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) efl::ui::Image ic2(instantiate, win); ic2.icon_set("folder"); ic2.scalable_set(false, false); - efl::eo::downcast(sl2.part("end")).content_set(ic2); + // FIXME: C++ part API needs special reference handling! This will show ERR! + efl::eo::downcast(sl2.part("elm.swallow.end")) + .content_set(ic2); sl2.hint_align_set(EFL_GFX_SIZE_HINT_FILL, 0.5); bx.pack_end(sl2); @@ -48,8 +50,12 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) bx.pack_end(sl4); efl::ui::Slider sl5(instantiate, win); - sl5.indicator_format_set("%1.2f"); - sl4.direction_set(EFL_UI_DIR_UP); + + // FIXME: C++ part API needs special reference handling! This will show ERR! + efl::eo::downcast(sl5.part("indicator")) + .format_string_set("%1.2f"); + + sl5.direction_set(EFL_UI_DIR_UP); sl5.hint_align_set(EFL_GFX_SIZE_HINT_FILL, 0.5); bx.pack_end(sl5); --
[EGIT] [core/efl] master 02/03: slider: Export the part class
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=528dfce251e3fdf566379e27b262486da62e9e85 commit 528dfce251e3fdf566379e27b262486da62e9e85 Author: Jean-Philippe AndreDate: Tue Nov 7 22:17:04 2017 +0900 slider: Export the part class It needs to be exposed for things like c++ and others to work. --- src/lib/elementary/Elementary.h| 1 - src/lib/elementary/efl_ui_slider.c | 2 -- src/lib/elementary/elm_slider.h| 2 ++ 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h index 4d22b69b83..9cfd3adaeb 100644 --- a/src/lib/elementary/Elementary.h +++ b/src/lib/elementary/Elementary.h @@ -290,7 +290,6 @@ EAPI extern Elm_Version *elm_version; # include # include # include -# include #endif /* include deprecated calls last of all */ diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index 8362b06d24..e4d7276ccf 100644 --- a/src/lib/elementary/efl_ui_slider.c +++ b/src/lib/elementary/efl_ui_slider.c @@ -12,8 +12,6 @@ #include "elm_priv.h" #include "efl_ui_slider_private.h" #include "elm_widget_layout.h" - -#include "efl_ui_slider_part.eo.h" #include "elm_part_helper.h" #define MY_CLASS EFL_UI_SLIDER_CLASS diff --git a/src/lib/elementary/elm_slider.h b/src/lib/elementary/elm_slider.h index 9264fc6d47..4182e4e02a 100644 --- a/src/lib/elementary/elm_slider.h +++ b/src/lib/elementary/elm_slider.h @@ -77,6 +77,8 @@ #include "elm_slider_common.h" #ifdef EFL_EO_API_SUPPORT #include "efl_ui_slider_eo.h" +#include "efl_ui_slider_part.eo.h" +#include #endif #ifndef EFL_NOLEGACY_API_SUPPORT #include "elm_slider_legacy.h" --
[EGIT] [website/www-content] master 01/01: Wiki page strings.md changed with summary [created] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=064c71dd69c330d786fe195ce6d97dfabb9458be commit 064c71dd69c330d786fe195ce6d97dfabb9458be Author: PaulDate: Tue Nov 7 05:02:26 2017 -0800 Wiki page strings.md changed with summary [created] by Paul --- pages/eina-programming-guide/strings.md.txt | 166 1 file changed, 166 insertions(+) diff --git a/pages/eina-programming-guide/strings.md.txt b/pages/eina-programming-guide/strings.md.txt new file mode 100644 index ..52fe5220 --- /dev/null +++ b/pages/eina-programming-guide/strings.md.txt @@ -0,0 +1,166 @@ +--- +~~Title: Strings~~ +--- + +# Strings # + +You can create and manipulate strings in Enlightenment using two Eina types: Stringshares and String Buffers. + +## Stringshares ## + +The ``Eina_Stringshare`` data type functions allow you to store a single copy of a string and use it in multiple places throughout your program. This way you can save a lot of strings with less memory. It improves string creation and destruction speed, reduces memory use, and decreases memory fragmentation. + +With this data type you can reduce the number of duplicated strings kept in memory. It is common for the same strings to be dynamically allocated repeatedly between applications and libraries, especially in circumstances where you can have multiple copies of a structure that allocates the string. Rather than duplicating and freeing these strings, request a read-only pointer +to an existing string and only incur the overhead of a hash lookup. This can sound like micro-optimizing, but profiling has shown that this can have a significant impact as the number of copies grows. + +### Managing Stringshares ### + +To create a stringshare, declare a string variable and call the ``eina_stringshare_add()`` function: + +```c +[...] +const char *mystr; +const char *prologue = "Enlightenment is not just a window manager for Linux/X11 and others" + +mystr = eina_stringshare_add(prologue); +[...] +``` +> **NOTE:** +> ``[...]`` in a Code Block indicates there will usually be code above and below the shown snippet, but that it has been excluded for the sake of brevity. There is no need to type ``[...]`` into your program. + +To retrieve or modify the string data, retrieve a string for use in a program from a format string using the ``eina_stringshare_printf()`` function. If you have a "format" string to pass to a function like ``printf``, you can store it as a stringshare as well. The following example produces "1 desktop manager to rule them all". + +```c +[...] +const char *myfmtstr = "%d desktop manager to rule them all"; +const char *str; + +str = eina_stringshare_printf(myfmtstr, 1); + +print(str) +[...] +``` + +You can replace the value of a stringshare with the ``eina_stringshare_replace()`` function. Pass the pointer address and the new value to the function. + +```c +[...] +eina_stringshare_replace(,"One desktop manager to rule them all"); +[...] +``` + +You can retrieve the length of the stringshare value with the ``eina_stringshare_strlen()`` function. + +```c +[...] +printf("length: %d\n", eina_stringshare_strlen(str)); +[...] +``` + +When the string is no longer needed, delete it using the ``eina_stringshare_del()`` function: + +```c +[...] +eina_stringshare_del(mystr); +[...] +``` + +## String Buffer ## + +The string buffer data type is designed to be a mutable string, allowing you to append, prepend or insert a string to a buffer. It allows easy handling of buffers in your applications. + +### Managing string buffer ### + +First initialize the ``Eina_Strbuf`` instance and create the buffer: + +```c +[...] +Eina_Strbuf *buf; +mybuffer = eina_strbuf_new(); +[...] +``` +You can append basic strings to the buffer using the ``eina_strbuf_append()`` function: + +```c +[...] +eina_strbuf_append(mybuffer, "This is my string."); +[...] +``` + +To append 1 character to your buffer, use the ``eina_strbuf_append_char()`` function. You can also append a sized string to the buffer using the ``eina_strbuf_append_length()`` function: + +```c +[...] +eina_strbuf_append_length(mybuffer, "Buffe", 5); +eina_strbuf_append_char(mybuffer, 'r'); +[...] +``` + +To handle "printf" format strings, use the ``eina_strbuf_append_printf()`` function to add formatted strings to the buffer: + +```c +[...] +eina_strbuf_append_printf(buf, "%s%c", "buffe", 'r'); +[...] +``` + +To remove characters from one position to another, use the ``eina_strbuf_remove()`` function. The first parameter is the buffer, the second is the start position of the characters you want to delete, and the last the end position. \\ This example removes the first 19 characters of the buffer: + +```c +[...] +eina_strbuf_remove(buf, 0, 18); +[...] +``` + +To replace characters use ``eina_strbuf_replace()`` to replace a specific occurrence of a given string in
[EGIT] [website/www-content] master 01/01: Wiki page eina-programming-guide.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=774d805891c241dd5197fb7c4066f0cf7538853c commit 774d805891c241dd5197fb7c4066f0cf7538853c Author: PaulDate: Tue Nov 7 05:03:17 2017 -0800 Wiki page eina-programming-guide.md changed with summary [] by Paul --- pages/eina-programming-guide.md.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/eina-programming-guide.md.txt b/pages/eina-programming-guide.md.txt index 94c2e114..94def48c 100644 --- a/pages/eina-programming-guide.md.txt +++ b/pages/eina-programming-guide.md.txt @@ -8,6 +8,7 @@ Just a dummy page to contain and index the documents belonging to the Eina programming guide, to wit: * [Iterator Functions](https://www.enlightenment.org/eina-programming-guide/iterator-functions.md) +* [Strings](https://www.enlightenment.org/eina-programming-guide/strings.md) This can deleted when all the documents in the playground/eina-programming-guide/ namespace have been moved to their final resting place. \ No newline at end of file --
[EGIT] [core/efl] master 02/02: evas: Yet another OSX build fix...
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0076f541129ec9b969db5da5c19a16fc5d1c4b2c commit 0076f541129ec9b969db5da5c19a16fc5d1c4b2c Author: Jean-Philippe AndreDate: Tue Nov 7 21:53:45 2017 +0900 evas: Yet another OSX build fix... Please tell me this is the last one --- src/lib/evas/common/evas_font.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/common/evas_font.h b/src/lib/evas/common/evas_font.h index 613cc31de7..5c4f07c699 100644 --- a/src/lib/evas/common/evas_font.h +++ b/src/lib/evas/common/evas_font.h @@ -18,6 +18,8 @@ typedef unsigned long longDATA64; # define FT_LOAD_COLOR FT_LOAD_DEFAULT #endif +#include + #ifdef EAPI # undef EAPI #endif @@ -44,8 +46,6 @@ typedef unsigned long longDATA64; # endif #endif /* ! _WIN32 */ -#include - #define LK(x) Eina_Lock x #define LKI(x) eina_lock_new(&(x)) #define LKD(x) eina_lock_free(&(x)) --
[EGIT] [core/efl] master 01/02: example: Add elocation to elm build
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7ab444acbcc1f8578db6061a50fad69d74dc9993 commit 7ab444acbcc1f8578db6061a50fad69d74dc9993 Author: Lauro MouraDate: Tue Nov 7 21:49:26 2017 +0900 example: Add elocation to elm build Summary: 9d2dcd92 requires elocation to build. cxx examples still broken due to elm cleanup Test Plan: make examples Reviewers: jpeg, felipealmeida Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D5426 --- src/examples/elementary/Makefile.am | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/examples/elementary/Makefile.am b/src/examples/elementary/Makefile.am index 2db4ea7e0b..25ea9a8c63 100644 --- a/src/examples/elementary/Makefile.am +++ b/src/examples/elementary/Makefile.am @@ -38,6 +38,8 @@ AM_CPPFLAGS = \ -I$(top_builddir)/src/lib/evas/gesture \ -I$(top_srcdir)/src/lib/elementary \ -I$(top_builddir)/src/lib/elementary \ +-I$(top_srcdir)/src/lib/elocation\ +-I$(top_builddir)/src/lib/elocation\ -DPACKAGE_DATA_DIR="\"$(datadir)/elementary\"" \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ @@ -63,7 +65,8 @@ $(top_builddir)/src/lib/ecore_imf_evas/libecore_imf_evas.la \ $(top_builddir)/src/lib/embryo/libembryo.la \ $(top_builddir)/src/lib/edje/libedje.la \ $(top_builddir)/src/lib/elementary/libelementary.la \ -$(top_builddir)/src/lib/ethumb_client/libethumb_client.la +$(top_builddir)/src/lib/ethumb_client/libethumb_client.la \ +$(top_builddir)/src/lib/elocation/libelocation.la SRCS = \ actionslider_example_01.c \ --
[EGIT] [core/efl] master 01/01: efl_ui_radio: keep radio state when theme is changed
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=439fbe4bcb4c34ff7dabd802bd4e139b57f6dd50 commit 439fbe4bcb4c34ff7dabd802bd4e139b57f6dd50 Author: Sungtaek HongDate: Tue Nov 7 21:08:40 2017 +0900 efl_ui_radio: keep radio state when theme is changed Summary: during elm_widget_theme_apply() state was set to off when state is on. @fix Test Plan: change locale/theme when a radio is on. Reviewers: jpeg, cedric, woohyun Differential Revision: https://phab.enlightenment.org/D5432 --- src/lib/elementary/efl_ui_radio.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/elementary/efl_ui_radio.c b/src/lib/elementary/efl_ui_radio.c index 3281fecaa9..c6ef4f0904 100644 --- a/src/lib/elementary/efl_ui_radio.c +++ b/src/lib/elementary/efl_ui_radio.c @@ -157,8 +157,6 @@ _efl_ui_radio_elm_widget_theme_apply(Eo *obj, Efl_Ui_Radio_Data *sd) if (sd->state) elm_layout_signal_emit(obj, "elm,state,radio,on", "elm"); else elm_layout_signal_emit(obj, "elm,state,radio,off", "elm"); - if (sd->state) _state_set(obj, EINA_FALSE, EINA_FALSE); - edje_object_message_signal_process(wd->resize_obj); /* FIXME: replicated from elm_layout just because radio's icon --
[EGIT] [core/efl] master 01/01: evas: Another attempt at fixing OSX build
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=12fa8caec5fcf0deefd343f28f1522965516d4e6 commit 12fa8caec5fcf0deefd343f28f1522965516d4e6 Author: Jean-Philippe AndreDate: Tue Nov 7 20:15:48 2017 +0900 evas: Another attempt at fixing OSX build Build failed with LKI not found, as a symbol, but it's a macro. Copy & pasted from evas_common_private.h How can this work on one platform and not another? I don't get it... --- src/lib/evas/common/evas_font.h | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/common/evas_font.h b/src/lib/evas/common/evas_font.h index 8d57476953..613cc31de7 100644 --- a/src/lib/evas/common/evas_font.h +++ b/src/lib/evas/common/evas_font.h @@ -47,9 +47,12 @@ typedef unsigned long longDATA64; #include #define LK(x) Eina_Lock x -#define LKU(x) eina_lock_release(&(x)) -#define LKL(x) eina_lock_take(&(x)) +#define LKI(x) eina_lock_new(&(x)) #define LKD(x) eina_lock_free(&(x)) +#define LKL(x) eina_lock_take(&(x)) +#define LKT(x) eina_lock_take_try(&(x)) +#define LKU(x) eina_lock_release(&(x)) +#define LKDBG(x) eina_lock_debug(&(x)) #include "evas_text_utils.h" --
[EGIT] [website/www-content] master 01/01: Wiki page iterator-functions.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=ef66c83fbccd7023d996227a805b8c6db608f72d commit ef66c83fbccd7023d996227a805b8c6db608f72d Author: PaulDate: Tue Nov 7 02:46:32 2017 -0800 Wiki page iterator-functions.md changed with summary [] by Paul --- pages/eina-programming-guide/iterator-functions.md.txt | 12 +--- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pages/eina-programming-guide/iterator-functions.md.txt b/pages/eina-programming-guide/iterator-functions.md.txt index 88aa8f73..c8f8acf6 100644 --- a/pages/eina-programming-guide/iterator-functions.md.txt +++ b/pages/eina-programming-guide/iterator-functions.md.txt @@ -5,12 +5,6 @@ # Iterator Functions # -## Related Info ## - -* [Iterator Functions API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Iterator__Group.html) - -* [Eina Iterator Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_iterator_01_8c-example.html) - Eina provides a set of iterator functions to manipulate data types, such as arrays. These functions allow access to container elements in a generic way, without knowing which container is used (similar to iterators in the C++ STL). Iterators only allow sequential access (that is, from one element to the next one). For random access, Eina provides accessor functions. @@ -21,4 +15,8 @@ To get the data and iterate, use the ``eina_iterator_next()`` function. To call In addition to iterator functions, each data type also owns a set of macros that provide the iterators, such as ``FOREACH`` or ``REVERSE_FOREACH``. -[Back to Eina Programming Guide](https://www.enlightenment.org/eina-programming-guide.md) \ No newline at end of file +## Further Reading ## + +* [Iterator Functions API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Iterator__Group.html) + +* [Eina Iterator Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_iterator_01_8c-example.html) \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page eina-programming-guide.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=c2283b5fccb5133a3c5dc2fa7e41cc3cb239e8d2 commit c2283b5fccb5133a3c5dc2fa7e41cc3cb239e8d2 Author: PaulDate: Tue Nov 7 02:40:53 2017 -0800 Wiki page eina-programming-guide.md changed with summary [] by Paul --- pages/eina-programming-guide.md.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pages/eina-programming-guide.md.txt b/pages/eina-programming-guide.md.txt index d7d08e0c..94c2e114 100644 --- a/pages/eina-programming-guide.md.txt +++ b/pages/eina-programming-guide.md.txt @@ -7,5 +7,7 @@ Just a dummy page to contain and index the documents belonging to the Eina programming guide, to wit: +* [Iterator Functions](https://www.enlightenment.org/eina-programming-guide/iterator-functions.md) + This can deleted when all the documents in the playground/eina-programming-guide/ namespace have been moved to their final resting place. \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page eina-programming-guide.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=adadfee394800de8a50761f554b9251df2b5c8bb commit adadfee394800de8a50761f554b9251df2b5c8bb Author: PaulDate: Tue Nov 7 02:40:04 2017 -0800 Wiki page eina-programming-guide.md changed with summary [] by Paul --- pages/eina-programming-guide.md.txt | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pages/eina-programming-guide.md.txt b/pages/eina-programming-guide.md.txt index 6c10bfb4..d7d08e0c 100644 --- a/pages/eina-programming-guide.md.txt +++ b/pages/eina-programming-guide.md.txt @@ -1,8 +1,11 @@ --- -~~Title: EINA Programming Guide~~ +~~Title: Eina Programming Guide~~ ~~NOCACHE~~ --- -# EINA Programming Guide # +# Eina Programming Guide # -Just a dummy page to contain and index the documents belonging to the EINA programming guide, to wit: \ No newline at end of file +Just a dummy page to contain and index the documents belonging to the Eina programming guide, to wit: + + +This can deleted when all the documents in the playground/eina-programming-guide/ namespace have been moved to their final resting place. \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page iterator-functions.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=035789a081352c24be90d897e1bd0dafa4201142 commit 035789a081352c24be90d897e1bd0dafa4201142 Author: PaulDate: Tue Nov 7 02:36:42 2017 -0800 Wiki page iterator-functions.md changed with summary [] by Paul --- pages/eina-programming-guide/iterator-functions.md.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/eina-programming-guide/iterator-functions.md.txt b/pages/eina-programming-guide/iterator-functions.md.txt index d8b53f08..88aa8f73 100644 --- a/pages/eina-programming-guide/iterator-functions.md.txt +++ b/pages/eina-programming-guide/iterator-functions.md.txt @@ -21,4 +21,4 @@ To get the data and iterate, use the ``eina_iterator_next()`` function. To call In addition to iterator functions, each data type also owns a set of macros that provide the iterators, such as ``FOREACH`` or ``REVERSE_FOREACH``. -[Back to EINA Programming Guide](https://www.enlightenment.org/eina-programming-guide.md) \ No newline at end of file +[Back to Eina Programming Guide](https://www.enlightenment.org/eina-programming-guide.md) \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page iterator-functions.md changed with summary [created] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=2d9a69db3e3b1f4c02d3de8a3a45bb618cdfc0bc commit 2d9a69db3e3b1f4c02d3de8a3a45bb618cdfc0bc Author: PaulDate: Tue Nov 7 02:17:48 2017 -0800 Wiki page iterator-functions.md changed with summary [created] by Paul --- .../iterator-functions.md.txt | 24 ++ 1 file changed, 24 insertions(+) diff --git a/pages/eina-programming-guide/iterator-functions.md.txt b/pages/eina-programming-guide/iterator-functions.md.txt new file mode 100644 index ..c589731c --- /dev/null +++ b/pages/eina-programming-guide/iterator-functions.md.txt @@ -0,0 +1,24 @@ +--- +~~Title: Iterator Functions~~ +~~NOCACHE~~ +--- + +# Iterator Functions # + +## Related Info ## + +* (Iterator Functions API)[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Iterator__Group.html] + +* (Eina Iterator Example)[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_iterator_01_8c-example.html] + +Eina provides a set of iterator functions to manipulate data types, such as arrays. + +These functions allow access to container elements in a generic way, without knowing which container is used (similar to iterators in the C++ STL). Iterators only allow sequential access (that is, from one element to the next one). For random access, Eina provides accessor functions. + +Getting an iterator to access elements of a given container is done through the functions of that particular container. There is no function to create a generic iterator as iterators absolutely depend on the container. Note that all iterators, regardless of the container type, are always deleted with the same ``eina_iterator_free()`` function. + +To get the data and iterate, use the ``eina_iterator_next()`` function. To call a function on every single element of a container, use the ``eina_iterator_foreach()`` function. + +In addition to iterator functions, each data type also owns a set of macros that provide the iterators, such as ``FOREACH`` or ``REVERSE_FOREACH``. + +[Back to EINA Programming Guide](https://www.enlightenment.org/eina-programming-guide.md) \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page iterator-functions.md changed with summary [] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=37cc08f5b140fa2e82277a527575d25944e8d37d commit 37cc08f5b140fa2e82277a527575d25944e8d37d Author: PaulDate: Tue Nov 7 02:19:01 2017 -0800 Wiki page iterator-functions.md changed with summary [] by Paul --- pages/eina-programming-guide/iterator-functions.md.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/eina-programming-guide/iterator-functions.md.txt b/pages/eina-programming-guide/iterator-functions.md.txt index c589731c..d8b53f08 100644 --- a/pages/eina-programming-guide/iterator-functions.md.txt +++ b/pages/eina-programming-guide/iterator-functions.md.txt @@ -7,9 +7,9 @@ ## Related Info ## -* (Iterator Functions API)[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Iterator__Group.html] +* [Iterator Functions API](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Iterator__Group.html) -* (Eina Iterator Example)[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_iterator_01_8c-example.html] +* [Eina Iterator Example](https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_iterator_01_8c-example.html) Eina provides a set of iterator functions to manipulate data types, such as arrays. --
[EGIT] [website/www-content] master 01/01: Wiki page eina-programming-guide.md changed with summary [created] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=3fe97cabc211c66bf80a59e10f04a513e840c2d1 commit 3fe97cabc211c66bf80a59e10f04a513e840c2d1 Author: PaulDate: Tue Nov 7 02:16:03 2017 -0800 Wiki page eina-programming-guide.md changed with summary [created] by Paul --- pages/eina-programming-guide.md.txt | 8 1 file changed, 8 insertions(+) diff --git a/pages/eina-programming-guide.md.txt b/pages/eina-programming-guide.md.txt new file mode 100644 index ..6c10bfb4 --- /dev/null +++ b/pages/eina-programming-guide.md.txt @@ -0,0 +1,8 @@ +--- +~~Title: EINA Programming Guide~~ +~~NOCACHE~~ +--- + +# EINA Programming Guide # + +Just a dummy page to contain and index the documents belonging to the EINA programming guide, to wit: \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page eina-programming-guide changed with summary [created] by Paul
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=f0bc9865357434a876cabc79be118b9744fffe3c commit f0bc9865357434a876cabc79be118b9744fffe3c Author: PaulDate: Tue Nov 7 02:15:04 2017 -0800 Wiki page eina-programming-guide changed with summary [created] by Paul --- pages/eina-programming-guide.txt | 8 1 file changed, 8 insertions(+) diff --git a/pages/eina-programming-guide.txt b/pages/eina-programming-guide.txt new file mode 100644 index ..6c10bfb4 --- /dev/null +++ b/pages/eina-programming-guide.txt @@ -0,0 +1,8 @@ +--- +~~Title: EINA Programming Guide~~ +~~NOCACHE~~ +--- + +# EINA Programming Guide # + +Just a dummy page to contain and index the documents belonging to the EINA programming guide, to wit: \ No newline at end of file --
[EGIT] [core/efl] efl-1.20 35/47: edje_cc: fix spelling
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=83c548fef502473b9f207ff317443f933a958d3b commit 83c548fef502473b9f207ff317443f933a958d3b Author: Andrii KroitorDate: Mon Oct 30 11:23:44 2017 +0200 edje_cc: fix spelling @fix --- src/bin/edje/edje_cc_handlers.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index fbc4864486..c3d9251308 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -2923,7 +2923,7 @@ st_data_item(void) [parameter name] [parameter filename] @effect Defines a new parameter, the value will be the contents of the -specified file formated as a single string of text. This property only +specified file formatted as a single string of text. This property only works with plain text files. @endproperty */ @@ -6005,7 +6005,7 @@ st_collections_group_limits_vertical(void) It will send a signal: "limit,name,over" when the object is resized and pass the limit by growing over it. And it will send: "limit,name,below" when it pass below that limit. -This limit will be applied on the x absis and is expressed in pixels. +This limit will be applied on the x axis and is expressed in pixels. @endproperty */ static void @@ -7414,7 +7414,7 @@ st_collections_group_parts_part_entry_mode(void) mouse, drag and release to end. @li EXPLICIT mode requires the application controlling the edje object has to explicitly begin and end selection -modes, and the selection itself is dragable at both ends. +modes, and the selection itself is draggable at both ends. @endproperty */ static void @@ -7560,7 +7560,7 @@ st_collections_group_parts_part_dragable_x(void) used to enable (1 or -1) and disable (0) dragging along the axis. When enabled, 1 will set the starting point at 0.0 and -1 at 1.0. The second parameter takes any integer and will limit movement to values -divisibles by it, causing the part to jump from position to position. +divisible by it, causing the part to jump from position to position. If step is set to 0 it is calculated as height of confine part divided by count. @@ -8954,8 +8954,8 @@ st_collections_group_parts_part_description_limit(void) axis inside its container. @c "0.0" means left/top edges of the object touching container's respective ones, while @c "1.0" stands for right/bottom edges of the object (on -horizonal/vertical axis, respectively). -There is one more parametr for Z axis in case of MESH_NODE. +horizontal/vertical axis, respectively). +There is one more parameter for Z axis in case of MESH_NODE. Defaults: 0.5 0.5 (0.5) @endproperty @@ -9052,7 +9052,7 @@ st_collections_group_parts_part_description_min(void) @property minmul @parameters -[width multipler] [height multiplier] +[width multiplier] [height multiplier] @effect A multiplier FORCIBLY applied to whatever minimum size is only during minimum size calculation. @@ -9470,7 +9470,7 @@ st_collections_group_parts_part_description_rel1_offset(void) [another part's name] @effect Causes a corner to be positioned relatively to another part's -container. Setting to "" will un-set this value for inherited +container. Setting to "" will unset this value for inherited parts. @endproperty */ @@ -9521,7 +9521,7 @@ st_collections_group_parts_part_description_rel1_to(void) @effect Causes a corner to be positioned relatively to the X axis of another part's container. Simply put affects the first parameter of "relative". -Setting to "" will un-set this value for inherited parts. +Setting to "" will unset this value for inherited parts. @endproperty */ static void @@ -9572,7 +9572,7 @@ st_collections_group_parts_part_description_rel1_to_x(void) @effect Causes a corner to be positioned relatively to the Y axis of another part's container. Simply put, affects the second parameter of -"relative". Setting to "" will un-set this value for inherited parts. +"relative". Setting to "" will unset this value for inherited parts. @endproperty */ static void @@ -11931,7 +11931,7 @@ st_collections_group_parts_part_description_proxy_source_visible(void) } /** - @edcsubsection{collections_group_parts_description_positon, + @edcsubsection{collections_group_parts_description_position, Group.Parts.Part.Description.Position} */ @@ -12713,7 +12713,7 @@
[EGIT] [core/efl] efl-1.20 33/47: edje_cc: move part_remove and program_remove to group
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=0c2cf93b6fe98b7a2d8702c2d27514396370b0de commit 0c2cf93b6fe98b7a2d8702c2d27514396370b0de Author: Andrii KroitorDate: Fri Oct 27 13:20:37 2017 +0300 edje_cc: move part_remove and program_remove to group These properties belong to group, but were in part's block in edcref. @fix --- src/bin/edje/edje_cc_handlers.c | 259 1 file changed, 132 insertions(+), 127 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 5a0367be40..748fd19a0a 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -196,6 +196,9 @@ static void edje_cc_handlers_hierarchy_pop(void); static void _program_target_add(char *name); static void _program_after(const char *name); static void _program_free(Edje_Program *pr); +static Eina_Bool _program_remove(const char *name, Edje_Program **pgrms, unsigned int count); + +static void * _part_free(Edje_Part_Collection *pc, Edje_Part *ep); static void check_has_anchors(void); @@ -4710,6 +4713,135 @@ st_collections_group_use_custom_seat_names(void) /** @page edcref @property +part_remove +@parameters +[part name] (part name) (part name) ... +@effect +Removes the listed parts from an inherited group. Removing nonexistent +parts is not allowed. +@since 1.10 +@endproperty +*/ +static void +st_collections_group_part_remove(void) +{ + unsigned int n, argc, orig_count, part_type; + Edje_Part_Collection *pc; + + check_min_arg_count(1); + + if (!current_group_inherit) + { +ERR("Cannot remove parts from non-inherited group '%s'", current_de->entry); +exit(-1); + } + + pc = eina_list_last_data_get(edje_collections); + orig_count = pc->parts_count; + + for (n = 0, argc = get_arg_count(); n < argc; n++) + { +char *name; +unsigned int j, cur_count = pc->parts_count; + +name = parse_str(n); + +for (j = 0; j < pc->parts_count; j++) + { + unsigned int i; + + if (strcmp(pc->parts[j]->name, name)) continue; + + part_type = pc->parts[j]->type; + pc->parts[j] = _part_free(pc, pc->parts[j]); + for (i = j; i < pc->parts_count - 1; i++) + { + if (!pc->parts[i + 1]) break; + pc->parts[i] = pc->parts[i + 1]; + } + pc->parts_count--; + _parts_count_update(part_type, -1); + break; + } +if (cur_count == pc->parts_count) + { + ERR("Attempted removal of nonexistent part '%s' in group '%s'.", + name, current_de->entry); + exit(-1); + } +free(name); + } + if (orig_count == pc->parts_count) return; + if (pc->parts_count) + pc->parts = realloc(pc->parts, pc->parts_count * sizeof(Edje_Part *)); + else + { +free(pc->parts); +pc->parts = NULL; + } +} + +/** +@page edcref +@property +program_remove +@parameters +[program name] (program name) (program name) ... +@effect +Removes the listed programs from an inherited group. Removing nonexistent +programs is not allowed. +This will break program sequences if a program in the middle of the sequence is removed. +@since 1.10 +@endproperty +*/ +static void +st_collections_group_program_remove(void) +{ + unsigned int n, argc; + Edje_Part_Collection *pc; + + check_min_arg_count(1); + + if (!current_group_inherit) + { +ERR("Cannot remove programs from non-inherited group '%s'", current_de->entry); +exit(-1); + } + + pc = eina_list_last_data_get(edje_collections); + + for (n = 0, argc = get_arg_count(); n < argc; n++) + { +char *name; +Eina_Bool success = EINA_FALSE; + +name = parse_str(n); + +success |= _program_remove(name, pc->programs.fnmatch, pc->programs.fnmatch_count); +success |= _program_remove(name, pc->programs.strcmp, pc->programs.strcmp_count); +success |= _program_remove(name, pc->programs.strncmp, pc->programs.strncmp_count); +success |= _program_remove(name, pc->programs.strrncmp, pc->programs.strrncmp_count); +success |= _program_remove(name, pc->programs.nocmp, pc->programs.nocmp_count); + +if (anonymous_delete) + { + copied_program_anonymous_lookup_delete(pc, anonymous_delete); + anonymous_delete = NULL; + } +if (!success) + { + ERR("Attempted removal of nonexistent program '%s' in group '%s'.", + name, current_de->entry); + exit(-1); + } +free(name); + } +} + + +/** +@page edcref +
[EGIT] [core/efl] efl-1.20 14/47: ecore_wl2: Remove just the flush from the idle handler
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=e67aa661a0077f4069b67eefcb016424a630ab55 commit e67aa661a0077f4069b67eefcb016424a630ab55 Author: Derek ForemanDate: Sun Oct 22 10:19:50 2017 -0500 ecore_wl2: Remove just the flush from the idle handler Flushing should be done where it's needed now, but we still need the rest of the idle handler as something like mesa may have dispatched its queue, which reads all the pending wayland events. In that case we have events to process but the fd will not poll readable. @fix T6250 --- src/lib/ecore_wl2/ecore_wl2_display.c | 6 -- 1 file changed, 6 deletions(-) diff --git a/src/lib/ecore_wl2/ecore_wl2_display.c b/src/lib/ecore_wl2/ecore_wl2_display.c index 79a9e59fc5..69188674fb 100644 --- a/src/lib/ecore_wl2/ecore_wl2_display.c +++ b/src/lib/ecore_wl2/ecore_wl2_display.c @@ -553,12 +553,6 @@ _cb_connect_idle(void *data) code = errno; if (ret < 0) goto err; - ret = wl_display_flush(ewd->wl.display); - code = errno; - if ((ret < 0) && (code == EAGAIN)) - ecore_main_fd_handler_active_set(ewd->fd_hdl, - (ECORE_FD_READ | ECORE_FD_WRITE)); - return ECORE_CALLBACK_RENEW; err: --
[EGIT] [core/efl] efl-1.20 26/47: edje_cc: fix errors in documentation
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=168d5e07b14a99d172d04f464b58cf527556ccec commit 168d5e07b14a99d172d04f464b58cf527556ccec Author: Andrii KroitorDate: Fri Oct 27 09:40:43 2017 +0300 edje_cc: fix errors in documentation @fix --- src/bin/edje/edje_cc_handlers.c | 108 1 file changed, 87 insertions(+), 21 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 43c292f1d7..9d2365f315 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -3048,9 +3048,9 @@ ob_color_tree(void) color_classes { color_class { name: "colorclassname"; -color: [0-255] [0-255] [0-255] [0-255]; -color2: [0-255] [0-255] [0-255] [0-255]; -color3: [0-255] [0-255] [0-255] [0-255] +color: 255 0 0 255; +color2: "#0F0F"; +color3: "#"; } .. } @@ -3168,9 +3168,20 @@ parse_color(void *base) @property color @parameters -[red] [green] [blue] [alpha] +[red] [green] [blue] [alpha] or "#[RR][GG][BB](AA)" or "#[R][G][B](A)" @effect The main color. + +Format: +@li [red] [green] [blue] [alpha]: one integer [0-255] for each +RGBA channel, i.e. 255 0 0 255 +@li "#[RR][GG][BB](AA)": string with two hex values per RGBA channel, +i.e "#FFFF" or "#FF" +@li "#[R][G][B](A)": string with one hex value per RGBA channel, +i.e "#F00F" or "#F00".\n +In string format you can omit alpha channel and it will be set to FF. + +Defaults: 0 0 0 0 @endproperty */ static void @@ -3188,9 +3199,20 @@ st_color_class_color(void) @property color2 @parameters -[red] [green] [blue] [alpha] +[red] [green] [blue] [alpha] or "#[RR][GG][BB](AA)" or "#[R][G][B](A)" @effect Used as outline in text and textblock parts. + +Format: +@li [red] [green] [blue] [alpha]: one integer [0-255] for each +RGBA channel, i.e. 255 0 0 255 +@li "#[RR][GG][BB](AA)": string with two hex values per RGBA channel, +i.e "#FFFF" or "#FF" +@li "#[R][G][B](A)": string with one hex value per RGBA channel, +i.e "#F00F" or "#F00".\n +In string format you can omit alpha channel and it will be set to FF. + +Defaults: 0 0 0 0 @endproperty */ static void @@ -3208,9 +3230,20 @@ st_color_class_color2(void) @property color3 @parameters -[red] [green] [blue] [alpha] +[red] [green] [blue] [alpha] or "#[RR][GG][BB](AA)" or "#[R][G][B](A)" @effect Used as shadow in text and textblock parts. + +Format: +@li [red] [green] [blue] [alpha]: one integer [0-255] for each +RGBA channel, i.e. 255 0 0 255 +@li "#[RR][GG][BB](AA)": string with two hex values per RGBA channel, +i.e "#FFFF" or "#FF" +@li "#[R][G][B](A)": string with one hex value per RGBA channel, +i.e "#F00F" or "#F00".\n +In string format you can omit alpha channel and it will be set to FF. + +Defaults: 0 0 0 0 @endproperty */ static void @@ -3809,7 +3842,7 @@ st_collections_group_sound_tone(void) Valid types are: @li RAW: Uncompressed. @li COMP: Lossless compression. -@li LOSSY [-0.1 - 1.0]: Lossy compression with quality from 0.0 to 1.0. +@li LOSSY [45.0 - 1000.0]: Lossy compression with quality from 45.0 to 1000.0. @li AS_IS: Check for re-encoding, no compression/encoding, just write the file information as it is. @since 1.1 @@ -5132,7 +5165,7 @@ st_collections_group_max(void) /** @page edcref @property -scne_size +scene_size @parameters [width] [height] @effect @@ -8996,7 +9029,7 @@ st_collections_group_parts_part_description_size_class(void) @parameters [width] [height] @effect -Restricts resizing of each dimension to values divisibles by its value. +Restricts resizing of each dimension to values divisible by its value. This causes the part to jump from value to value while resizing. The default value is "0 0" disabling stepping. @endproperty @@ -9066,7 +9099,7 @@ st_collections_group_parts_part_description_aspect_preference(void) [color class name] @effect The part will use the color values of the named color_class, these -values can be overrided by the "color", "color2" and "color3" +values can be overridden by the "color", "color2" and "color3" properties set below. @endproperty */ @@ -9090,9 +9123,20 @@
[EGIT] [core/efl] efl-1.20 44/47: evas-software-generic: Check for render engine function before calling
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=0ac05964478627c5413b39f51bb87715234979a4 commit 0ac05964478627c5413b39f51bb87715234979a4 Author: Chris MichaelDate: Mon Nov 6 09:10:28 2017 -0500 evas-software-generic: Check for render engine function before calling In most engines which inherit from software_generic, they do not implement the outbuf_free_region_for_update function. Most engines have it as an unused function. If we simply add a check here, then we can reduce the need for having useless function in multiple engines. @fix Signed-off-by: Chris Michael --- src/modules/evas/engines/software_generic/evas_engine.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index 7697592a30..10ccc8c4c1 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c @@ -4289,7 +4289,8 @@ eng_output_redraws_next_update_push(void *engine EINA_UNUSED, void *data, void * evas_common_pipe_map_begin(surface); #endif /* BUILD_PIPE_RENDER */ re->outbuf_push_updated_region(re->ob, surface, x, y, w, h); - re->outbuf_free_region_for_update(re->ob, surface); + if (re->outbuf_free_region_for_update) + re->outbuf_free_region_for_update(re->ob, surface); evas_common_cpu_end_opt(); } --
[EGIT] [core/efl] efl-1.20 46/47: ector: use cairo_pattern_add_color_stop_rgba in gradient_radial
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=f5871c09b280f027cad61d10634b4f45183461b7 commit f5871c09b280f027cad61d10634b4f45183461b7 Author: Vitalii VorobiovDate: Tue Feb 7 17:05:02 2017 +0200 ector: use cairo_pattern_add_color_stop_rgba in gradient_radial It actually invoked SIGSEGV when trying to load SVG file with Radial Gradient @fix --- src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c b/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c index 94225b6590..850bd8777f 100644 --- a/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c +++ b/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c @@ -152,6 +152,7 @@ _ector_renderer_cairo_gradient_radial_efl_object_finalize(Eo *obj, Ector_Rendere USE(base, cairo_pattern_destroy, NULL); USE(base, cairo_pattern_set_extend, NULL); USE(base, cairo_pattern_create_radial, NULL); + USE(base, cairo_pattern_add_color_stop_rgba, NULL); return obj; } --
[EGIT] [core/efl] efl-1.20 23/47: eina: fix spelling errors in documentation
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=940bb84a63e049411003afbdf9ec545ea9055653 commit 940bb84a63e049411003afbdf9ec545ea9055653 Author: Bryce HarringtonDate: Fri Oct 27 11:35:10 2017 -0700 eina: fix spelling errors in documentation Reviewers: cedric, ajwillia.ms Reviewed By: cedric Subscribers: segfaultxavi, jpeg Differential Revision: https://phab.enlightenment.org/D5395 Signed-off-by: Cedric Bail --- src/lib/eina/eina_array.h | 12 ++-- src/lib/eina/eina_benchmark.h | 18 +- src/lib/eina/eina_bezier.h | 4 ++-- src/lib/eina/eina_binbuf.h | 10 +- src/lib/eina/eina_convert.h | 2 +- src/lib/eina/eina_counter.h | 8 src/lib/eina/eina_cow.h | 24 src/lib/eina/eina_debug.h | 2 +- src/lib/eina/eina_evlog.h | 16 src/lib/eina/eina_file.h| 4 ++-- src/lib/eina/eina_file_common.h | 6 +++--- src/lib/eina/eina_freeq.h | 4 ++-- 12 files changed, 55 insertions(+), 55 deletions(-) diff --git a/src/lib/eina/eina_array.h b/src/lib/eina/eina_array.h index c17fbd9dd0..823f824958 100644 --- a/src/lib/eina/eina_array.h +++ b/src/lib/eina/eina_array.h @@ -43,7 +43,7 @@ * Here we have a callback that prints the element given to it: * @until } * - * Now we create our entry point and declare some variables, nothing especial: + * Now we create our entry point and declare some variables, nothing special: * @until unsigned * * Before we can start using any array function we need to initialize eina: @@ -262,7 +262,7 @@ EAPI Eina_Array *eina_array_new(unsigned int step) EINA_WARN_UNUSED_RESULT EINA_ * @param array The array to free. * * This function frees @p array. It calls first eina_array_flush() then - * free the memory of the pointer. It does not free the memory + * frees the memory of the pointer. It does not free the memory * allocated for the elements of @p array. To free them, walk the array with * #EINA_ARRAY_ITER_NEXT. */ @@ -316,7 +316,7 @@ EAPI void eina_array_flush(Eina_Array *array) EINA_ARG_NONNULL(1); * @param gdata The data to pass to the function keep. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * - * This function rebuilds @p array be specifying the elements to keep with the + * This function rebuilds @p array by specifying the elements to keep with the * function @p keep. No empty/invalid fields are left in the array. @p gdata is * an additional data to pass to @p keep. For performance reasons, there is no * check of @p array. If it is @c NULL or invalid, the program may crash. @@ -414,7 +414,7 @@ static inline unsigned int eina_array_count_get(const Eina_Array *array) EINA_AR static inline unsigned int eina_array_count(const Eina_Array *array) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** - * @brief Gets a new iterator associated to an array. + * @brief Gets a new iterator associated with an array. * * @param array The array. * @return A new iterator. @@ -427,7 +427,7 @@ static inline unsigned int eina_array_count(const Eina_Array *array) EINA_ARG_NO EAPI Eina_Iterator*eina_array_iterator_new(const Eina_Array *array) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** - * @brief Gets a new accessor associated to an array. + * @brief Gets a new accessor associated with an array. * * @param array The array. * @return A new accessor. @@ -445,7 +445,7 @@ EAPI Eina_Accessor*eina_array_accessor_new(const Eina_Array *array) EINA * @param array The array to iterate over. * @param cb The callback to call for each item. * @param fdata The user data to pass to the callback. - * @return #EINA_TRUE if it successfully iterate all items of the array. + * @return #EINA_TRUE if it successfully iterated all items of the array. * * This function provides a safe way to iterate over an array. @p cb should * return #EINA_TRUE as long as you want the function to continue iterating. diff --git a/src/lib/eina/eina_benchmark.h b/src/lib/eina/eina_benchmark.h index b54c984db2..695ad5673a 100644 --- a/src/lib/eina/eina_benchmark.h +++ b/src/lib/eina/eina_benchmark.h @@ -27,9 +27,9 @@ * @page tutorial_benchmark_page Benchmark Tutorial * * The Benchmark module allows you to write easily benchmarks - * framework in a project for timing critical part and detect slow + * framework to a project for timing critical parts and detecting slow * parts of code. In addition it automatically creates data files of - * these benchmark, as well as a gnuplot file which can display the + * these benchmarks, as well as a gnuplot file which can display the * comparison curves of the benchmarks. * * @section tutorial_benchmark_basic_usage Basic Usage @@ -116,7 +116,7 @@ * The first column (specimen) is the integer
[EGIT] [core/efl] efl-1.20 02/47: edje_cc: fix a memory leak issue when edje_cc writes images
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=eb7053a6728e4e92c522b244a519ef03abca59f5 commit eb7053a6728e4e92c522b244a519ef03abca59f5 Author: Youngbok ShinDate: Fri Oct 13 11:55:02 2017 -0700 edje_cc: fix a memory leak issue when edje_cc writes images Summary: If there is no given pathes for image files as parameter of edje_cc, "img_dirs" will be NULL. Then, a local variable "load_err" is always EVAS_LOAD_ERROR_NONE. Because of this, the "if" condition just after EINA_LIST_FOREACH() will fail. It causes memory leak from "iw". @fix Test Plan: N/A Reviewers: raster, cedric, jpeg, woohyun Differential Revision: https://phab.enlightenment.org/D5285 Signed-off-by: Cedric Bail --- src/bin/edje/edje_cc_out.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c index 391e46cc9f..d793cacc8b 100644 --- a/src/bin/edje/edje_cc_out.c +++ b/src/bin/edje/edje_cc_out.c @@ -1390,7 +1390,7 @@ data_write_images(Eet_File *ef, int *image_num) break; } } -if (load_err != EVAS_LOAD_ERROR_NONE) +if (!img_dirs || (load_err != EVAS_LOAD_ERROR_NONE)) { evas_object_image_file_set(im, img->entry, NULL); load_err = evas_object_image_load_error_get(im); --
[EGIT] [core/efl] efl-1.20 28/47: edje_cc: fix color2 and color3 descriptions
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=7d361dfda8f2693afcb37a49d6e4eb30ea87f534 commit 7d361dfda8f2693afcb37a49d6e4eb30ea87f534 Author: Andrii KroitorDate: Fri Oct 27 10:05:37 2017 +0300 edje_cc: fix color2 and color3 descriptions color2 is used for outline color3 is used for shadow @fix --- src/bin/edje/edje_cc_handlers.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 565a092a8a..b54de02a8b 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -9271,7 +9271,7 @@ st_collections_group_parts_part_description_color(void) @parameters [red] [green] [blue] [alpha] or "#[RR][GG][BB](AA)" or "#[R][G][B](A)" @effect -Sets the text shadow color. +Sets the text outline color. Format: @li [red] [green] [blue] [alpha]: one integer [0-255] for each @@ -9305,7 +9305,7 @@ st_collections_group_parts_part_description_color2(void) @parameters [red] [green] [blue] [alpha] or "#[RR][GG][BB](AA)" or "#[R][G][B](A)" @effect -Sets the text outline color. +Sets the text shadow color. Format: @li [red] [green] [blue] [alpha]: one integer [0-255] for each --
[EGIT] [core/efl] efl-1.20 21/47: elementary index: fix wrong reference in its header document
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=48b74e171052aa79dce933ec7eda61fa7d903518 commit 48b74e171052aa79dce933ec7eda61fa7d903518 Author: Youngbok ShinDate: Thu Oct 26 14:36:32 2017 +0900 elementary index: fix wrong reference in its header document Summary: elm_index.h uses legacy keyword for ref tag. The patch update each keywords for widgets. And colon ":" character should be seperated from reference keyword. It will remove doxygen warning messages from elm_index.h file. Test Plan: N/A Reviewers: cedric, raster, jpeg Differential Revision: https://phab.enlightenment.org/D5387 --- src/lib/elementary/elm_index.h | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/elementary/elm_index.h b/src/lib/elementary/elm_index.h index 538e96b601..e10bc2e110 100644 --- a/src/lib/elementary/elm_index.h +++ b/src/lib/elementary/elm_index.h @@ -14,21 +14,21 @@ * * Index widgets are by default hidden and just appear when the * user clicks over it's reserved area in the canvas. In its - * default theme, it's an area one @ref Fingers "finger" wide on + * default theme, it's an area one @ref Elm_Fingers "finger" wide on * the right side of the index widget's container. * * When items on the index are selected, smart callbacks get * called, so that its user can make other container objects to * show a given area or child object depending on the index item * selected. You'd probably be using an index together with @ref - * List "lists", @ref Genlist "generic lists" or @ref Gengrid + * Elm_List "lists", @ref Elm_Genlist "generic lists" or @ref Elm_Gengrid * "general grids". * - * This widget inherits from the @ref Layout one, so that all the + * This widget inherits from the @ref Elm_Layout one, so that all the * functions acting on it also work for index objects. * * This widget emits the following signals, besides the ones sent from - * @ref Layout: + * @ref Elm_Layout : * - @c "changed" - When the selected index item changes. @c * event_info is the selected item's data pointer. * - @c "delay,changed" - When the selected index item changes, but --
[EGIT] [core/efl] efl-1.20 06/47: edje_edit: duplicate assignment to variable.
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=ea7d87f05f7d65651853b601f9b03ce7a807dca5 commit ea7d87f05f7d65651853b601f9b03ce7a807dca5 Author: Subodh KumarDate: Mon Oct 16 13:27:35 2017 -0700 edje_edit: duplicate assignment to variable. Summary: Avoid duplicate assignment to same variable. @fix Reviewers: cedric, jpeg Reviewed By: cedric, jpeg Subscribers: shilpasingh, jpeg Differential Revision: https://phab.enlightenment.org/D5275 Signed-off-by: Cedric BAIL --- src/lib/edje/edje_edit.c | 6 -- 1 file changed, 6 deletions(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 16839baea5..f3fb546bca 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -14186,9 +14186,6 @@ fill: size_abs = ((img->image.fill.abs_x == 0) && (img->image.fill.abs_y == 0)) ? EINA_FALSE : EINA_TRUE; } - - - attr_amount = smooth + type; attr_orig_amount = orig_rel + orig_abs; attr_size_amount = size_rel + size_abs; attr_amount = smooth + type + attr_orig_amount + attr_size_amount; @@ -14532,9 +14529,6 @@ fill_proxy: size_abs = ((pro->proxy.fill.abs_x == 0) && (pro->proxy.fill.abs_y == 0)) ? EINA_FALSE : EINA_TRUE; } - - - attr_amount = smooth + type; attr_orig_amount = orig_rel + orig_abs; attr_size_amount = size_rel + size_abs; attr_amount = smooth + type + attr_orig_amount + attr_size_amount; --
[EGIT] [core/efl] efl-1.20 04/47: eolian: fix setter generation for @auto functions
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=81ef814cdb88850fc8d1d5b89c941309902959c8 commit 81ef814cdb88850fc8d1d5b89c941309902959c8 Author: Daniel KolesaDate: Fri Oct 13 23:48:34 2017 +0200 eolian: fix setter generation for @auto functions Because of a typo in generator source (and overlooked error in tests) we were previously generating incorrect code for setters with the @auto qualifier. This was brought up in D5306 and is now fixed. --- src/bin/eolian/sources.c | 2 +- src/tests/eolian/data/override_ref.c | 12 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bin/eolian/sources.c b/src/bin/eolian/sources.c index d1ab3d5870..097293add0 100644 --- a/src/bin/eolian/sources.c +++ b/src/bin/eolian/sources.c @@ -281,7 +281,7 @@ _gen_func(const Eolian_Unit *src, const Eolian_Class *cl, if (is_auto) { if (ftype == EOLIAN_PROP_SET) -eina_strbuf_append_printf(params_init, " %s = pd->%s;\n", prn, prn); +eina_strbuf_append_printf(params_init, " pd->%s = %s;\n", prn, prn); else { eina_strbuf_append_printf(params_init, " if (%s) *%s = pd->%s;\n", diff --git a/src/tests/eolian/data/override_ref.c b/src/tests/eolian/data/override_ref.c index 967914a09d..95ee937ae0 100644 --- a/src/tests/eolian/data/override_ref.c +++ b/src/tests/eolian/data/override_ref.c @@ -6,9 +6,9 @@ EOAPI EFL_VOID_FUNC_BODY_CONST(override_a_get); static void __eolian_override_b_set(Eo *obj EINA_UNUSED, Override_Data *pd, int idx EINA_UNUSED, float a, char b, int c) { - a = pd->a; - b = pd->b; - c = pd->c; + pd->a = a; + pd->b = b; + pd->c = c; } EOAPI EFL_VOID_FUNC_BODYV(override_b_set, EFL_FUNC_CALL(idx, a, b, c), int idx, float a, char b, int c); @@ -42,9 +42,9 @@ void _override_base_constructor(Eo *obj, Override_Data *pd); static void __eolian_override_base_z_set(Eo *obj EINA_UNUSED, Override_Data *pd, int a, char b, float c) { - a = pd->a; - b = pd->b; - c = pd->c; + pd->a = a; + pd->b = b; + pd->c = c; } --
[EGIT] [core/efl] efl-1.20 11/47: elm_scroller: fix scrolling with key move
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=3850a903e4d1426c1686938d1bea674ebe82b442 commit 3850a903e4d1426c1686938d1bea674ebe82b442 Author: Jeonghyun YunDate: Wed Oct 18 20:15:12 2017 +0900 elm_scroller: fix scrolling with key move Use content_region_show instead of content_pos_set in _key_action_move Summary: When user keep pressing key down or else on scroller content, scroller animation is lagging because of elm_interface_scrollable_content_pos_set by step_x or step_y value. When focus moved to next object by press key down or else, content_pos_set by ecore_animator continuously. In this time, content_pos_set in _key_action_move by step_x or step_y value caused animation lagging problem. I fixed to use content_region_show instead of content_pos_set in _key_action_move for remove exist animator. Test Plan: 1. elementary_test -> Scroller3 2. Press 3 times "Append 10 Items in 3s" button 3. focus to Item1 and keep pressing key_down Reviewers: jpeg, woohyun Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5278 --- src/lib/elementary/elm_scroller.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c index d736884fa2..f51731914b 100644 --- a/src/lib/elementary/elm_scroller.c +++ b/src/lib/elementary/elm_scroller.c @@ -255,8 +255,7 @@ _key_action_move(Evas_Object *obj, const char *params) } else return EINA_FALSE; - elm_interface_scrollable_content_pos_set(obj, x, y, EINA_TRUE); - + elm_interface_scrollable_content_region_show(obj, x, y, v_w, v_h); return EINA_TRUE; } --
[EGIT] [core/efl] efl-1.20 22/47: evas: fix typo in eo file
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=68218e7920f4d2f489e0ca93e689452da5546050 commit 68218e7920f4d2f489e0ca93e689452da5546050 Author: JinYong ParkDate: Fri Oct 27 11:33:37 2017 -0700 evas: fix typo in eo file Summary: Change the first letter of the sentence from lowercase to uppercase, and fix typo "top be" to "to be" Reviewers: cedric, jpeg, stefan_schmidt, myoungwoon, Jaehyun_Cho, conr2d Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D5398 Signed-off-by: Cedric Bail --- src/lib/evas/canvas/evas_box.eo | 2 +- src/lib/evas/canvas/evas_grid.eo | 2 +- src/lib/evas/canvas/evas_table.eo | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/evas/canvas/evas_box.eo b/src/lib/evas/canvas/evas_box.eo index 36fca8a4dc..862ed5c622 100644 --- a/src/lib/evas/canvas/evas_box.eo +++ b/src/lib/evas/canvas/evas_box.eo @@ -521,7 +521,7 @@ class Evas.Box (Efl.Canvas.Group.Clipped) legacy: null; return: ptr(Evas_Object_Box_Option); [[Box option]] params { -@in child: Efl.Canvas.Object; [[Object top be inserted]] +@in child: Efl.Canvas.Object; [[Object to be inserted]] @in reference: const(Efl.Canvas.Object); [[Reference where the object will be inserted]] } } diff --git a/src/lib/evas/canvas/evas_grid.eo b/src/lib/evas/canvas/evas_grid.eo index 7d7ea916c1..22a56bda79 100644 --- a/src/lib/evas/canvas/evas_grid.eo +++ b/src/lib/evas/canvas/evas_grid.eo @@ -68,7 +68,7 @@ class Evas.Grid (Efl.Canvas.Group.Clipped) @since 1.1]] params { -@in clear: bool; [[if $true, it will delete just removed children.]] +@in clear: bool; [[If $true, it will delete just removed children.]] } } iterator_new @const { diff --git a/src/lib/evas/canvas/evas_table.eo b/src/lib/evas/canvas/evas_table.eo index 768e2bcaab..fca93b5803 100644 --- a/src/lib/evas/canvas/evas_table.eo +++ b/src/lib/evas/canvas/evas_table.eo @@ -110,7 +110,7 @@ class Evas.Table (Efl.Canvas.Group.Clipped) accounted proportionally.]] } values { -cols: int; [[Columns in Table]] +cols: int; [[Columns in table]] rows: int; [[Rows in table]] } } --
[EGIT] [core/efl] efl-1.20 41/47: edje_cc: fix program.filter description
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=0582a459676f4bd4ef28d63300626bd2c4bef612 commit 0582a459676f4bd4ef28d63300626bd2c4bef612 Author: Andrii KroitorDate: Mon Oct 30 15:12:23 2017 +0200 edje_cc: fix program.filter description @fix --- src/bin/edje/edje_cc_handlers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 5af5fc6904..0711c29c48 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -15106,7 +15106,7 @@ st_collections_group_programs_program_source(void) [part] [state] @effect Filter signals to be only accepted if the part [part] is in state named [state]. -Only one filter per program can be used. If [state] is not given, the source of +Only one filter per program can be used. If [part] is not given, the source of the event will be used instead. @endproperty */ --
[EGIT] [core/efl] efl-1.20 24/47: ecore: fix typo in documentation
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=3d4e84a7f208082e5171775a0b03d32d96a2da65 commit 3d4e84a7f208082e5171775a0b03d32d96a2da65 Author: Jean Guyomarc'hDate: Wed Sep 27 23:40:10 2017 +0200 ecore: fix typo in documentation --- src/lib/ecore/ecore_exe.eo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ecore/ecore_exe.eo b/src/lib/ecore/ecore_exe.eo index 78a1da9e03..3782229a85 100644 --- a/src/lib/ecore/ecore_exe.eo +++ b/src/lib/ecore/ecore_exe.eo @@ -17,7 +17,7 @@ struct Ecore.Exe.Event_Data exe: Efl.Object; [[The handle to the process. FIXME: should actually be Ecore.Exe, workaround cyclic]] data: void_ptr; [[The raw binary data from the child process that was received]] size: int; [[The size of this data in bytes]] - lines: ptr(Ecore.Exe.Event_Data.Line); [[An array of line data if line buffered, the last one has it's line member set to $NULL]] + lines: ptr(Ecore.Exe.Event_Data.Line); [[An array of line data if line buffered, the last one has its line member set to $NULL]] } enum Ecore.Exe_Flags --
[EGIT] [core/efl] efl-1.20 19/47: efl_wl: more closely follow wl spec for input regions
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=09ff9ee26d3249d1c3bedfd3f985aeac7e0e594d commit 09ff9ee26d3249d1c3bedfd3f985aeac7e0e594d Author: Mike BlumenkrantzDate: Wed Oct 18 17:11:11 2017 -0400 efl_wl: more closely follow wl spec for input regions @fix --- src/lib/efl_wl/efl_wl.c | 8 1 file changed, 8 insertions(+) diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c index cacaddfb73..bb11163b24 100644 --- a/src/lib/efl_wl/efl_wl.c +++ b/src/lib/efl_wl/efl_wl.c @@ -1653,6 +1653,8 @@ comp_surface_set_input_region(struct wl_client *client EINA_UNUSED, struct wl_re { Comp_Surface *cs = wl_resource_get_user_data(resource); + if (cs->cursor) return; + cs->pending.set_input = 1; eina_tiler_clear(cs->pending.input); if (region_resource) @@ -2416,6 +2418,8 @@ comp_surface_create(struct wl_client *client, struct wl_resource *resource, uint cs->opaque = tiler_new(); cs->input = tiler_new(); comp_buffer_state_alloc(>pending); + cs->pending.set_input = 1; + eina_tiler_rect_add(cs->pending.input, &(Eina_Rectangle){0, 0, 65535, 65535}); wl_resource_set_implementation(res, _surface_interface, cs, comp_surface_impl_destroy); } @@ -2822,6 +2826,8 @@ data_device_start_drag(struct wl_client *client, struct wl_resource *resource, s ics->cursor = 1; ics->drag = s; +ics->pending.set_input = 1; +eina_tiler_clear(ics->pending.input); evas_object_smart_member_del(ics->obj); evas_object_pass_events_set(ics->obj, 1); evas_object_layer_set(ics->obj, EVAS_LAYER_MAX - 1); @@ -3674,6 +3680,8 @@ seat_ptr_set_cursor(struct wl_client *client, struct wl_resource *resource, uint if (cs) { cs->cursor = 1; +cs->pending.set_input = 1; +eina_tiler_clear(cs->pending.input); evas_object_pass_events_set(cs->obj, 1); } if (s->ptr.cursor.surface) s->ptr.cursor.surface->cursor = 0; --
[EGIT] [core/efl] efl-1.20 27/47: edje_cc: add missing default values to documentation
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=43e19589556e4dc80882002cd1eedd17baffa432 commit 43e19589556e4dc80882002cd1eedd17baffa432 Author: Andrii KroitorDate: Fri Oct 27 09:52:15 2017 +0300 edje_cc: add missing default values to documentation @fix --- src/bin/edje/edje_cc_handlers.c | 306 1 file changed, 249 insertions(+), 57 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 9d2365f315..565a092a8a 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -2281,6 +2281,8 @@ st_externals_external(void) @li LOSSY_ETC1 [0-100]: ETC1 lossy texture compression with quality from 0 to 100. @li LOSSY_ETC2 [0-100]: ETC2 lossy texture compression with quality from 0 to 100 (supports alpha). @li USER: Do not embed the file, refer to the external file instead. + +Defaults: compression level for lossy methods is 90. @endproperty */ static void @@ -2664,6 +2666,8 @@ ob_images_set_image(void) @li LOSSY_ETC1 [0-100]: ETC1 lossy texture compression with quality from 0 to 100. @li LOSSY_ETC2 [0-100]: ETC2 lossy texture compression with quality from 0 to 100 (supports alpha). @li USER: Do not embed the file, refer to the external file instead. + +Defaults: compression level for lossy methods is 90. @endproperty **/ static void @@ -2698,6 +2702,8 @@ st_images_set_image_image(void) [minw] [minh] [maxw] [maxh] @effect Define the minimal and maximal size that will select the specified image. + +Defaults: 0 0 0 0 @endproperty */ static void @@ -2735,6 +2741,8 @@ st_images_set_image_size(void) If set, the area (in pixels) of each side of the image will be displayed as a fixed size border, from the side -> inwards, preventing the corners from being changed on a resize. + +Defaults: 0 0 0 0 @since 1.8 @endproperty */ @@ -2770,6 +2778,8 @@ st_images_set_image_border(void) the highest resolution artwork and then runtime scaling it down. Valid values are: 0.0 or bigger (0.0 or 1.0 to turn it off) + +Defaults: 0.0 @since 1.8 @endproperty */ @@ -3519,6 +3529,8 @@ st_text_class_font(void) [font size in points (pt)] @effect Sets the font size for the text class. + +Defaults: 0 @endproperty */ static void @@ -3627,6 +3639,8 @@ st_size_class_name(void) [width] [height] @effect The minimum size. + +Defaults: 0 0 @endproperty */ static void @@ -3649,6 +3663,8 @@ st_size_class_min(void) [width] [height] @effect The maximum size. + +Defaults: -1 -1 @endproperty */ static void @@ -3711,6 +3727,8 @@ ob_collections(void) which is same with a desktop(The monitor has 96 dpi). If you make a collection in another environment(ex: 115 dpi), you have to set the base_scale(ex: 1.2). Then it will be shown same size in the desktop. + +Defaults: 1.0 @since 1.11 @endproperty */ @@ -4634,6 +4652,8 @@ _part_copy(Edje_Part *ep, Edje_Part *ep2) will inhibit edje_cc resolving of programs and parts that may not exist in this group, but are located in the group which is inheriting this group. + +Defaults: 0 @since 1.10 @endproperty */ @@ -4671,6 +4691,8 @@ st_collections_group_inherit_only(void) system, as seat names, or when the application sets the devices names to guarantee they'll match seat names on EDC. + +Defaults: 0 @since 1.19 @endproperty */ @@ -5035,6 +5057,8 @@ st_collections_group_inherit(void) @effect The flag (on/off) as to if this group is defined ONLY by script callbacks such as init(), resize() and shutdown() + +Defaults: off @endproperty */ static void @@ -5060,6 +5084,8 @@ st_collections_group_lua_script_only(void) For example, running an Embryo script which calls EDC which has a script{} block is unsafe, and the outer-most (first) Embryo stack is GUARANTEED to be corrupted. Only use this flag if you are sure that you know what you are doing. + +Defaults: 0 @since 1.10 @endproperty */ @@ -5125,6 +5151,8 @@ st_collections_group_alias(void) @effect The minimum size for the container defined by the composition of the parts. It is not enforced. + +Defaults: 0 0 @endproperty */ static void @@ -5148,6 +5176,8 @@ st_collections_group_min(void) @effect The maximum size for the container defined by the totality of the parts. It is not enforced. + +Defaults: 0 0 @endproperty */ static void @@ -5170,6 +5200,8 @@
[EGIT] [core/efl] efl-1.20 10/47: eina: fix eina_hash_stringshared_new to actually compute the hash on the pointer.
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=2818e8d481990156d57b4d5ddff16dbf1673ff38 commit 2818e8d481990156d57b4d5ddff16dbf1673ff38 Author: Cedric BailDate: Tue Oct 17 16:11:25 2017 -0700 eina: fix eina_hash_stringshared_new to actually compute the hash on the pointer. Before this patch, the key would always be zero and the hash would solely rely on the rbtree to be efficient. This improve the situation by using the pointer as the key during hash computation. --- src/lib/eina/eina_hash.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib/eina/eina_hash.c b/src/lib/eina/eina_hash.c index b2d338d832..39a7a9c984 100644 --- a/src/lib/eina/eina_hash.c +++ b/src/lib/eina/eina_hash.c @@ -484,6 +484,12 @@ _eina_hash_del_by_key(Eina_Hash *hash, const void *key, const void *data) return _eina_hash_del_by_key_hash(hash, key, key_length, key_hash, data); } +static int +_eina_stringshared_hash(const void *key, int key_length EINA_UNUSED) +{ + return eina_hash_superfast(, sizeof (void*)); +} + static unsigned int _eina_string_key_length(const char *key) { @@ -840,7 +846,7 @@ eina_hash_stringshared_new(Eina_Free_Cb data_free_cb) { return eina_hash_new(NULL, EINA_KEY_CMP(_eina_stringshared_key_cmp), -EINA_KEY_HASH(eina_hash_superfast), +EINA_KEY_HASH(_eina_stringshared_hash), data_free_cb, EINA_HASH_BUCKET_SIZE); } --
[EGIT] [core/efl] efl-1.20 34/47: edje_cc: fix default color_class colors
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=946d5f2dd6c034884a86c15d1477a54ff3fcce9e commit 946d5f2dd6c034884a86c15d1477a54ff3fcce9e Author: Andrii KroitorDate: Mon Oct 30 09:59:19 2017 +0200 edje_cc: fix default color_class colors If you have undefined color_class, edje will use solid white for its colors. If you define color_class name without colors edje_cc now has same defaults instead of 0 0 0 0. @fix --- src/bin/edje/edje_cc_handlers.c | 30 +++--- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 748fd19a0a..fbc4864486 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -3082,18 +3082,18 @@ ob_color_class(void) cc = mem_alloc(SZ(Edje_Color_Class)); edje_file->color_classes = eina_list_append(edje_file->color_classes, cc); - cc->r = 0; - cc->g = 0; - cc->b = 0; - cc->a = 0; - cc->r2 = 0; - cc->g2 = 0; - cc->b2 = 0; - cc->a2 = 0; - cc->r3 = 0; - cc->g3 = 0; - cc->b3 = 0; - cc->a3 = 0; + cc->r = 255; + cc->g = 255; + cc->b = 255; + cc->a = 255; + cc->r2 = 255; + cc->g2 = 255; + cc->b2 = 255; + cc->a2 = 255; + cc->r3 = 255; + cc->g3 = 255; + cc->b3 = 255; + cc->a3 = 255; } static void @@ -3194,7 +3194,7 @@ parse_color(void *base) i.e "#F00F" or "#F00".\n In string format you can omit alpha channel and it will be set to FF. -Defaults: 0 0 0 0 +Defaults: 255 255 255 255 @endproperty */ static void @@ -3225,7 +3225,7 @@ st_color_class_color(void) i.e "#F00F" or "#F00".\n In string format you can omit alpha channel and it will be set to FF. -Defaults: 0 0 0 0 +Defaults: 255 255 255 255 @endproperty */ static void @@ -3256,7 +3256,7 @@ st_color_class_color2(void) i.e "#F00F" or "#F00".\n In string format you can omit alpha channel and it will be set to FF. -Defaults: 0 0 0 0 +Defaults: 255 255 255 255 @endproperty */ static void --
[EGIT] [core/efl] efl-1.20 15/47: example: improve location example, fix crash
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=ea4de5c2e34dbbf7d01ecf7e7601e07e59df5c82 commit ea4de5c2e34dbbf7d01ecf7e7601e07e59df5c82 Author: Prince Kumar DubeyDate: Tue Oct 24 15:29:22 2017 +0900 example: improve location example, fix crash Summary: Printing Address detail with Position. Label added to show the detail of address. Test Plan: Compiled with cmd: gcc -o location_example_01 \ location_example_01.c -g `pkg-config --cflags --libs elementary \ elocation` Reviewers: raster, cedric Subscribers: rajeshps, jpeg Differential Revision: https://phab.enlightenment.org/D5356 --- src/examples/elementary/location_example_01.c | 78 +++ 1 file changed, 68 insertions(+), 10 deletions(-) diff --git a/src/examples/elementary/location_example_01.c b/src/examples/elementary/location_example_01.c index a46bf75fc5..96ca818069 100644 --- a/src/examples/elementary/location_example_01.c +++ b/src/examples/elementary/location_example_01.c @@ -1,12 +1,13 @@ //Compile with: //gcc -o location_example_01 location_example_01.c -g `pkg-config --cflags --libs elementary elocation` +#define EFL_BETA_API_SUPPORT #include #ifdef ELM_ELOCATION #include #endif -static Evas_Object *label, *win; +static Evas_Object *pos_label, *addr_label, *box, *win; #ifdef ELM_ELOCATION static void @@ -16,6 +17,7 @@ _print_position(Elocation_Position *position) if (!position) return; snprintf(buffer, sizeof(buffer), +"### Position Detail ###" "GeoClue position reply with data from timestamp %i" "Latitude: %f" "Longitude: %f" @@ -26,7 +28,32 @@ _print_position(Elocation_Position *position) position->timestamp, position->latitude, position->longitude, position->altitude, position->accur->level, position->accur->horizontal, position->accur->vertical); - elm_object_text_set(label, buffer); + elm_object_text_set(pos_label, buffer); +} + +static void +_print_address(Elocation_Address *address) +{ + char buffer[1024]; + + if (!address) return; + snprintf(buffer, sizeof(buffer), +"### Address Detail ###" +"Address update with data from timestamp: %i" +"Country: %s" +"Countrycode: %s" +"Locality: %s" +"Postalcode: %s" +"Region: %s" +"Timezone: %s" +"Accuracy level: %i" +"Accuracy horizontal: %f" +"Accuracy vertical: %f", +address->timestamp, address->country, address->countrycode, +address->locality, address->postalcode, address->region, +address->timezone, address->accur->level, address->accur->horizontal, +address->accur->vertical); + elm_object_text_set(addr_label, buffer); } static Eina_Bool @@ -38,6 +65,17 @@ _position_changed(void *data, int ev_type, void *event) _print_position(position); return ECORE_CALLBACK_DONE; } + +static Eina_Bool +_address_changed(void *data EINA_UNUSED, int ev_type EINA_UNUSED, void *event) +{ + Elocation_Address *address; + + address = event; + _print_address(address); + + return ECORE_CALLBACK_DONE; +} #endif EAPI_MAIN int @@ -57,25 +95,45 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) win = elm_win_util_standard_add("elocation", "Elocation example"); elm_win_autodel_set(win, EINA_TRUE); - label = elm_label_add(win); - elm_label_line_wrap_set(label, ELM_WRAP_CHAR); - elm_object_text_set(label, "Getting location ..."); - evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0); - evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_ALWAYS); - evas_object_resize(label, 600, 480); - evas_object_show(label); + box = elm_box_add(win); + elm_win_resize_object_add(win, box); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + + pos_label = elm_label_add(box); + elm_label_line_wrap_set(pos_label, ELM_WRAP_CHAR); + elm_object_text_set(pos_label, "Getting location ..."); + evas_object_size_hint_weight_set(pos_label, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(pos_label, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_label_slide_mode_set(pos_label, ELM_LABEL_SLIDE_MODE_ALWAYS); + elm_box_pack_end(box, pos_label); + evas_object_show(pos_label); + elm_box_padding_set(box, 0, 50); + + addr_label = elm_label_add(box); + elm_label_line_wrap_set(addr_label, ELM_WRAP_CHAR); + elm_object_text_set(addr_label, "Getting location ..."); + evas_object_size_hint_weight_set(addr_label, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(addr_label, EVAS_HINT_FILL,
[EGIT] [core/efl] efl-1.20 37/47: edje_cc: make color parsing consistent
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=835a63f99b136081aa4ecef3062a429ccdf1cf9b commit 835a63f99b136081aa4ecef3062a429ccdf1cf9b Author: Andrii KroitorDate: Mon Oct 30 12:51:45 2017 +0200 edje_cc: make color parsing consistent All colors now accept 4 ints or hex string. @fix --- src/bin/edje/edje_cc_handlers.c | 130 1 file changed, 77 insertions(+), 53 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 6022893d23..e457326fc3 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -3147,16 +3147,16 @@ st_color_class_name(void) } static void -parse_color(void *base) +parse_color(unsigned int first_arg, void *base) { Edje_Color *color = (Edje_Color *)base; int r, g, b, a; char *str; - switch (get_arg_count()) + switch (get_arg_count() - first_arg) { case 1: - str = parse_str(0); + str = parse_str(first_arg); convert_color_code(str, , , , ); color->r = r; color->g = g; @@ -3164,10 +3164,10 @@ parse_color(void *base) color->a = a; break; case 4: - color->r = parse_int_range(0, 0, 255); - color->g = parse_int_range(1, 0, 255); - color->b = parse_int_range(2, 0, 255); - color->a = parse_int_range(3, 0, 255); + color->r = parse_int_range(first_arg + 0, 0, 255); + color->g = parse_int_range(first_arg + 1, 0, 255); + color->b = parse_int_range(first_arg + 2, 0, 255); + color->a = parse_int_range(first_arg + 3, 0, 255); break; default: ERR("%s:%i. color code should be a string or a set of 4 integers.", @@ -3204,7 +3204,7 @@ st_color_class_color(void) cc = eina_list_data_get(eina_list_last(edje_file->color_classes)); - parse_color(&(cc->r)); + parse_color(0, &(cc->r)); } /** @@ -3235,7 +3235,7 @@ st_color_class_color2(void) cc = eina_list_data_get(eina_list_last(edje_file->color_classes)); - parse_color(&(cc->r2)); + parse_color(0, &(cc->r2)); } /** @@ -3266,7 +3266,7 @@ st_color_class_color3(void) cc = eina_list_data_get(eina_list_last(edje_file->color_classes)); - parse_color(&(cc->r3)); + parse_color(0, &(cc->r3)); } /** @@ -9268,7 +9268,7 @@ st_collections_group_parts_part_description_color(void) exit(-1); } - parse_color(&(current_desc->color.r)); + parse_color(0, &(current_desc->color.r)); } /** @@ -9304,7 +9304,7 @@ st_collections_group_parts_part_description_color2(void) exit(-1); } - parse_color(&(current_desc->color2.r)); + parse_color(0, &(current_desc->color2.r)); } /** @@ -9348,7 +9348,7 @@ st_collections_group_parts_part_description_color3(void) ed = (Edje_Part_Description_Text*)current_desc; - parse_color(&(ed->text.color3.r)); + parse_color(0, &(ed->text.color3.r)); } /** @@ -12169,15 +12169,26 @@ st_collections_group_parts_part_description_camera_properties(void) } } @description -A properties block defines main lighting atributes of LIGHT and MESH_NODE. +A properties block defines main lighting attributes of LIGHT and MESH_NODE. @endblock @property ambient @parameters -[red] [green] [blue] [alpha] +[red] [green] [blue] [alpha] or "#[RR][GG][BB](AA)" or "#[R][G][B](A)" @effect Sets the components of the ambient color. + +Format: +@li [red] [green] [blue] [alpha]: one integer [0-255] for each +RGBA channel, i.e. 255 0 0 255 +@li "#[RR][GG][BB](AA)": string with two hex values per RGBA channel, +i.e "#FFFF" or "#FF" +@li "#[R][G][B](A)": string with one hex value per RGBA channel, +i.e "#F00F" or "#F00".\n +In string format you can omit alpha channel and it will be set to FF. + +Defaults: 50 50 50 255 @endproperty */ static void @@ -12193,10 +12204,7 @@ st_collections_group_parts_part_description_properties_ambient(void) ed = (Edje_Part_Description_Light*) current_desc; - ed->light.properties.ambient.r = parse_int_range(0, 0, 255); - ed->light.properties.ambient.g = parse_int_range(1, 0, 255); - ed->light.properties.ambient.b = parse_int_range(2, 0, 255); - ed->light.properties.ambient.a = parse_int_range(3, 0, 255); + parse_color(0, &(ed->light.properties.ambient)); break; } case EDJE_PART_TYPE_MESH_NODE: @@ -12205,10 +12213,7 @@ st_collections_group_parts_part_description_properties_ambient(void) ed = (Edje_Part_Description_Mesh_Node*) current_desc; - ed->mesh_node.properties.ambient.r = parse_int_range(0, 0, 255); - ed->mesh_node.properties.ambient.g =
[EGIT] [core/efl] efl-1.20 45/47: emotion: Fix data race condition
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=9032a6517deef0e76f1831d04dca258b00026fa3 commit 9032a6517deef0e76f1831d04dca258b00026fa3 Author: Chris MichaelDate: Mon Nov 6 10:07:48 2017 -0500 emotion: Fix data race condition Coverity reports that we access vfmapped here without holding a lock. This patch implements eina_lock_take/release while accessing priv->vfmapped. Fixes Coverity CID1381624 @fix Signed-off-by: Chris Michael --- src/modules/emotion/gstreamer1/emotion_sink.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/emotion/gstreamer1/emotion_sink.c b/src/modules/emotion/gstreamer1/emotion_sink.c index a4f768cd27..931368d261 100644 --- a/src/modules/emotion/gstreamer1/emotion_sink.c +++ b/src/modules/emotion/gstreamer1/emotion_sink.c @@ -137,6 +137,7 @@ emotion_video_sink_dispose(GObject* object) sink = EMOTION_VIDEO_SINK(object); priv = sink->priv; + eina_lock_take(>m); if (priv->vfmapped) { if (priv->evas_object) @@ -166,6 +167,7 @@ emotion_video_sink_dispose(GObject* object) priv->last_buffer = NULL; } + eina_lock_release(>m); eina_lock_free(>m); eina_condition_free(>c); --
[EGIT] [core/efl] efl-1.20 32/47: edje_cc: fix color_class description
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=6cede0247dd29890214241b303503ed570db195f commit 6cede0247dd29890214241b303503ed570db195f Author: Andrii KroitorDate: Fri Oct 27 13:03:28 2017 +0300 edje_cc: fix color_class description It can't be overridden by color values in state. Colors can only be modified. @fix --- src/bin/edje/edje_cc_handlers.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index aa43325611..5a0367be40 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -9211,7 +9211,7 @@ st_collections_group_parts_part_description_aspect_preference(void) [color class name] @effect The part will use the color values of the named color_class, these -values can be overridden by the "color", "color2" and "color3" +values can be modified by the "color", "color2" and "color3" properties set below. @endproperty */ @@ -9248,6 +9248,8 @@ st_collections_group_parts_part_description_color_class(void) i.e "#F00F" or "#F00".\n In string format you can omit alpha channel and it will be set to FF. +If color_class is set resulting color channel values will be (color * color_class / 255) + Defaults: 255 255 255 255 @endproperty */ @@ -9282,6 +9284,8 @@ st_collections_group_parts_part_description_color(void) i.e "#F00F" or "#F00".\n In string format you can omit alpha channel and it will be set to FF. +If color_class is set resulting color channel values will be (color * color_class / 255) + Defaults: 0 0 0 255 @endproperty */ @@ -9316,6 +9320,8 @@ st_collections_group_parts_part_description_color2(void) i.e "#F00F" or "#F00".\n In string format you can omit alpha channel and it will be set to FF. +If color_class is set resulting color channel values will be (color * color_class / 255) + Defaults: 0 0 0 128 @endproperty */ --
[EGIT] [core/efl] efl-1.20 12/47: evas: Prevent crash with image_data_get
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=b97783d4c400f8a2c0bf3bc6c649079798d14068 commit b97783d4c400f8a2c0bf3bc6c649079798d14068 Author: Jean-Philippe AndreDate: Wed Oct 18 21:40:01 2017 +0900 evas: Prevent crash with image_data_get If the image has no data, it may get an allocated surface of 1x1 but it is not sane to return the pointer to that data, as the user would expect a normally sized image (in my case, 1920x1080). I do not fully understand what is going on with this image. But at least this transforms a crash into a simple ERR in ~/.xessions-errors Two similar crashes happened: - SIGSEGV by writing data outside of the image data - abort() in free() because the malloc metadata has been overridden when writing outside of the image data (newly allocated 1x1). Fixes T5957 @fix --- src/modules/evas/engines/gl_generic/evas_engine.c | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c index 3fe5eb8dfa..3386baf8e1 100644 --- a/src/modules/evas/engines/gl_generic/evas_engine.c +++ b/src/modules/evas/engines/gl_generic/evas_engine.c @@ -672,7 +672,6 @@ _rotate_image_data(Render_Engine_GL_Generic *re, Evas_GL_Image *im1) w = im1->w; h = im1->h; - alpha = eng_image_alpha_get(re, im1); if (im1->orient == EVAS_IMAGE_ORIENT_90 || im1->orient == EVAS_IMAGE_ORIENT_270 || @@ -683,6 +682,10 @@ _rotate_image_data(Render_Engine_GL_Generic *re, Evas_GL_Image *im1) h = im1->w; } + if ((w * h) <= 0) return NULL; + + alpha = eng_image_alpha_get(re, im1); + gl_context = gl_generic_context_find(re, 1); im2 = evas_gl_common_image_surface_new(gl_context, w, h, alpha, EINA_FALSE); evas_gl_common_context_target_surface_set(gl_context, im2); @@ -874,8 +877,18 @@ eng_image_data_get(void *engine, void *image, int to_write, DATA32 **image_data, #endif error = evas_cache_image_load_data(>im->cache_entry); + if (err) *err = error; if (error != EVAS_LOAD_ERROR_NONE) { +if (!im->im->image.data || +(im->im->cache_entry.allocated.w != (unsigned) im->w) || +(im->im->cache_entry.allocated.h != (unsigned) im->h)) + { + ERR("GL image has no source data, failed to get pixel data"); + *image_data = NULL; + return im; + } + if (tofree && !to_write) goto rotate_image; } --
[EGIT] [core/efl] efl-1.20 13/47: elm_code_widget: make sure the widget is cleared properly.
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=5526474e8f560c6bf63888ed2adb9f47e76c6c53 commit 5526474e8f560c6bf63888ed2adb9f47e76c6c53 Author: Al PooleDate: Sat Oct 21 01:28:06 2017 +0100 elm_code_widget: make sure the widget is cleared properly. This ensures the widget is clearer if the file has been cleared. @fix T6185 --- src/lib/elementary/elm_code_widget.c | 21 - 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_code_widget.c b/src/lib/elementary/elm_code_widget.c index 185a9a435a..0b4b817c25 100644 --- a/src/lib/elementary/elm_code_widget.c +++ b/src/lib/elementary/elm_code_widget.c @@ -463,6 +463,19 @@ _elm_code_widget_refresh(Elm_Code_Widget *widget, Elm_Code_Line *line) } static void +_elm_code_widget_clear(Elm_Code_Widget *widget) +{ + Elm_Code_Widget_Data *pd; + Evas_Object *grid; + + pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS); + EINA_LIST_FREE(pd->grids, grid) + { +evas_object_del(grid); + } +} + +static void _elm_code_widget_fill(Elm_Code_Widget *widget) { Elm_Code_Widget_Data *pd; @@ -492,10 +505,16 @@ static void _elm_code_widget_file_cb(void *data, const Efl_Event *event EINA_UNUSED) { Elm_Code_Widget *widget; + Elm_Code_Widget_Data *pd; widget = (Elm_Code_Widget *)data; - _elm_code_widget_fill(widget); + pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS); + + if (elm_code_file_lines_get(pd->code->file)) + _elm_code_widget_fill(widget); + else + _elm_code_widget_clear(widget); } static void --
[EGIT] [core/efl] efl-1.20 40/47: edje_cc: fix text.align description
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=0d28a0d6d7abe15b510886a03f8648f27c64254f commit 0d28a0d6d7abe15b510886a03f8648f27c64254f Author: Andrii KroitorDate: Mon Oct 30 14:26:43 2017 +0200 edje_cc: fix text.align description @fix --- src/bin/edje/edje_cc_handlers.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 0219a182af..5af5fc6904 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -11406,7 +11406,9 @@ st_collections_group_parts_part_description_text_max(void) @parameters [horizontal] [vertical] @effect -Change the position of the point of balance inside the container [-1.0 - 1.0]. +Change the alignment of the text [0.0(left) - 1.0(right)]. +You can set horizontal alignment to -1.0 to use bidirectional based alignment( +0.0 for LTR content or 1.0 for RTL) Defaults: 0.5 0.5 @endproperty --
[EGIT] [core/efl] efl-1.20 17/47: doc: add missing parameters and fix references for some elm widgets
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=960e6d3c05cd60fdf8656f778abac8f6ac7dccb4 commit 960e6d3c05cd60fdf8656f778abac8f6ac7dccb4 Author: Thiep HaDate: Tue Oct 24 15:13:07 2017 +0900 doc: add missing parameters and fix references for some elm widgets --- src/lib/elementary/elm_button.h| 12 ++-- src/lib/elementary/elm_calendar.h | 4 ++-- src/lib/elementary/elm_check.h | 4 ++-- src/lib/elementary/elm_colorselector.h | 4 ++-- src/lib/elementary/elm_config.h| 3 +++ src/lib/elementary/elm_conform.h | 4 ++-- src/lib/elementary/elm_entry.h | 6 +++--- src/lib/elementary/elm_entry_legacy.h | 2 ++ src/lib/elementary/elm_layout.h| 14 +++--- 9 files changed, 29 insertions(+), 24 deletions(-) diff --git a/src/lib/elementary/elm_button.h b/src/lib/elementary/elm_button.h index f8396a730c..49053e54f1 100644 --- a/src/lib/elementary/elm_button.h +++ b/src/lib/elementary/elm_button.h @@ -15,11 +15,11 @@ * This is a push-button. Press it and run some function. It can contain * a simple label and icon object and it also has an autorepeat feature. * - * This widget inherits from the @ref Layout one, so that all the + * This widget inherits from the @ref Elm_Layout one, so that all the * functions acting on it also work for button objects. * * This widget emits the following signals, besides the ones sent from - * @ref Layout: + * @ref Elm_Layout : * @li "clicked": the user clicked the button (press/release). * @li "repeated": the user pressed the button without releasing it. * @li "pressed": button was pressed. @@ -34,11 +34,11 @@ * @li default: a normal button. * @li anchor: Like default, but the button fades away when the mouse is not * over it, leaving only the text or icon. - * @li hoversel_vertical: Internally used by @ref Hoversel to give a + * @li hoversel_vertical: Internally used by @ref Elm_Hoversel to give a * continuous look across its options. - * @li hoversel_vertical_entry: Another internal for @ref Hoversel. - * @li naviframe: Internally used by @ref Naviframe for its back button. - * @li colorselector: Internally used by @ref Colorselector + * @li hoversel_vertical_entry: Another internal for @ref Elm_Hoversel. + * @li naviframe: Internally used by @ref Elm_Naviframe for its back button. + * @li colorselector: Internally used by @ref Elm_Colorselector * for its left and right buttons. * * Default content parts of the button widget that you can use for are: diff --git a/src/lib/elementary/elm_calendar.h b/src/lib/elementary/elm_calendar.h index f0fc828a7b..f67daf5ee2 100644 --- a/src/lib/elementary/elm_calendar.h +++ b/src/lib/elementary/elm_calendar.h @@ -17,11 +17,11 @@ * - setting the day names of the week (e.g. "Thu" or "Thursday") * - setting the year and month format. * - * This widget inherits from the @ref Layout one, so that all the + * This widget inherits from the @ref Elm_Layout one, so that all the * functions acting on it also work for calendar objects. * * This widget emits the following signals, besides the ones sent from - * @ref Layout: + * @ref Elm_Layout : * - @c "changed" - emitted when the date in the calendar is changed. * - @c "display,changed" - emitted when the current month displayed in the * calendar is changed. diff --git a/src/lib/elementary/elm_check.h b/src/lib/elementary/elm_check.h index 6004ca1de6..0cf6b821c7 100644 --- a/src/lib/elementary/elm_check.h +++ b/src/lib/elementary/elm_check.h @@ -23,11 +23,11 @@ * like the radio objects, you can set a pointer to a boolean directly * with elm_check_state_pointer_set() for it to modify. * - * This widget inherits from the @ref Layout one, so that all the + * This widget inherits from the @ref Elm_Layout one, so that all the * functions acting on it also work for check objects. * * This widget emits the following signals, besides the ones sent from - * @ref Layout: + * @ref Elm_Layout : * - @c "changed" - This is called whenever the user changes the state of * the check objects (@p event_info is always @c NULL). * - @c "focused" - When the check has received focus. (since 1.8) diff --git a/src/lib/elementary/elm_colorselector.h b/src/lib/elementary/elm_colorselector.h index ffce041334..bc13bc4cf2 100644 --- a/src/lib/elementary/elm_colorselector.h +++ b/src/lib/elementary/elm_colorselector.h @@ -15,11 +15,11 @@ * can be picked by user from the color set by clicking on individual * color item on the palette or by selecting it from selector. * - * This widget inherits from the @ref Layout one, so that all the + * This widget inherits from the @ref Elm_Layout one, so that all the * functions acting on it also work for check objects. * * This widget emits the following signals, besides the ones sent from - * @ref Layout: + * @ref Elm_Layout : * - @c "changed" - When the
[EGIT] [core/efl] efl-1.20 18/47: elm_tooltip: set parent window for windowed tooltips
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=b33012e725be316bfc365a11969d0f204a99ec02 commit b33012e725be316bfc365a11969d0f204a99ec02 Author: Mike BlumenkrantzDate: Tue Oct 17 11:39:04 2017 -0400 elm_tooltip: set parent window for windowed tooltips wayland popup surfaces must have a parent in order to be visible @fix --- src/lib/elementary/els_tooltip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elementary/els_tooltip.c b/src/lib/elementary/els_tooltip.c index 0fc32d663b..0bb0f25b18 100644 --- a/src/lib/elementary/els_tooltip.c +++ b/src/lib/elementary/els_tooltip.c @@ -146,7 +146,7 @@ _elm_tooltip_show(Elm_Tooltip *tt) } if (tt->free_size) { -tt->tt_win = elm_win_add(NULL, "tooltip", ELM_WIN_TOOLTIP); +tt->tt_win = elm_win_add(elm_win_get(tt->owner), "tooltip", ELM_WIN_TOOLTIP); elm_win_override_set(tt->tt_win, EINA_TRUE); tt->tt_evas = evas_object_evas_get(tt->tt_win); tt->tooltip = edje_object_add(tt->tt_evas); --
[EGIT] [core/efl] efl-1.20 05/47: evas gl generic/common - add more linking for gles mode to fix deb build
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=9befcc6c14ee6f5f0edd67b585cc938f6251ad95 commit 9befcc6c14ee6f5f0edd67b585cc938f6251ad95 Author: Carsten Haitzler (Rasterman)Date: Mon Oct 16 08:01:13 2017 +0900 evas gl generic/common - add more linking for gles mode to fix deb build this should fix T6158 @fix --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 94f7112419..85b2c8ba59 100644 --- a/configure.ac +++ b/configure.ac @@ -2619,9 +2619,9 @@ fi # OpenGL common evas_engine_gl_common_cflags="" if test "x${have_egl}" = "xyes"; then - evas_engine_gl_common_libs="-lEGL" + evas_engine_gl_common_libs="-lEGL -lGLESv2 -lm" else - evas_engine_gl_common_libs="-lGL" + evas_engine_gl_common_libs="-lGL -lm" fi # The lines below fix compiling/linking of gl_generic on OSX --
[EGIT] [core/efl] efl-1.20 39/47: edje_cc: limit map.zoom to non-negative values
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=fac8880083ee2843eb45c3d27b68752c419bb77f commit fac8880083ee2843eb45c3d27b68752c419bb77f Author: Andrii KroitorDate: Mon Oct 30 13:51:17 2017 +0200 edje_cc: limit map.zoom to non-negative values @fix --- src/bin/edje/edje_cc_handlers.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 55e2d5662c..0219a182af 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -14120,7 +14120,7 @@ st_collections_group_parts_part_description_map_zoom_x(void) { check_arg_count(1); - current_desc->map.zoom.x = FROM_DOUBLE(parse_float(0)); + current_desc->map.zoom.x = FROM_DOUBLE(parse_float_range(0, 0.0, 9.0)); } /** @@ -14140,7 +14140,7 @@ st_collections_group_parts_part_description_map_zoom_y(void) { check_arg_count(1); - current_desc->map.zoom.y = FROM_DOUBLE(parse_float(0)); + current_desc->map.zoom.y = FROM_DOUBLE(parse_float_range(0, 0.0, 9.0)); } /** @edcsubsection{collections_group_parts_description_map_rotation, --
[EGIT] [core/efl] efl-1.20 16/47: doc: enable elementary_examples building
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=203a238fbea58beffab8f33b13ad382a31c1df38 commit 203a238fbea58beffab8f33b13ad382a31c1df38 Author: Thiep HaDate: Tue Oct 24 12:09:19 2017 +0900 doc: enable elementary_examples building The elementary examples were built before, but not now. I guess it was missed when we merged elementary to efl source tree. This enables it and fixes some references. --- doc/Doxyfile.in | 3 ++- doc/elementary_examples.dox | 30 +++--- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index 50470a8d2d..e2a6742652 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -609,7 +609,8 @@ INPUT = @top_srcdir@/src/lib \ @srcdir@/ephysics_examples.dox \ @srcdir@/edje_examples.dox \ @top_srcdir@/src/bin/edje/edje_cc_handlers.c \ - @srcdir@/emotion_examples.dox + @srcdir@/emotion_examples.dox \ + @srcdir@/elementary_examples.dox # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is diff --git a/doc/elementary_examples.dox b/doc/elementary_examples.dox index 8be745e752..af37ae2c62 100644 --- a/doc/elementary_examples.dox +++ b/doc/elementary_examples.dox @@ -396,7 +396,7 @@ * * To be able to create our actionsliders we need to do some setup, but this * isn't really relevant here, so if you want to know about that go @ref - * Win "here". + * Elm_Win "here". * * With all that boring stuff out of the way we can proceed to creating some * actionsliders.@n @@ -915,7 +915,7 @@ * * Keeping any of those four buttons pressed will trigger their autorepeat * callback, where we move the button doing some size hint magic. To - * understand how that works better, refer to the @ref Box documentation. + * understand how that works better, refer to the @ref Elm_Box documentation. * Also, the first time the function is called, we change the icon in the * middle button, using elm_object_content_unset() first to keep the reference * to the previous one, so we don't need to recreate it when we are done @@ -3170,7 +3170,7 @@ /** * @page layout_example_01 Layout - Content, Table and Box * - * This example shows how one can use the @ref Layout widget to create a + * This example shows how one can use the @ref Elm_Layout widget to create a * customized distribution of widgets on the screen, controlled by an Edje theme. * The full source code for this example can be found at @ref * layout_example_01_c. @@ -3247,7 +3247,7 @@ * of putting them in row, column, both, or any other available layout. This is * also described in the Edje documentation. * - * This box area is similar to the @ref Box widget of elementary, with the + * This box area is similar to the @ref Elm_Box widget of elementary, with the * difference that its position and properties are controlled by the theme of the * layout. It also contains more than one API to add items to it, since the * items position now is defined in terms of a list of items, not a matrix. @@ -3314,7 +3314,7 @@ /** * @page layout_example_02 Layout - Predefined Layout * - * This example shows how one can use the @ref Layout with a predefined theme + * This example shows how one can use the @ref Elm_Layout with a predefined theme * layout to add a back and next button to a simple window. The full source code * for this example can be found at @ref layout_example_02_c. * @@ -3424,7 +3424,7 @@ * middle positions. In the middle position we are placing a button that when * clicked will hide the hover. We are also going to use a non-default theme * for our hover. We won't explain the functioning of button for that see @ref - * Button. + * Elm_Button. * * We start our example with a couple of callbacks that show and hide the data * they're given(which we'll see later on is the hover widget): @@ -3479,7 +3479,7 @@ * green). Our example will allow the user to choose the animation the flip * uses and to interact with it. To allow the user to choose the interaction * mode we use radio buttons, we will however not explain them, if you would - * like to know more about radio buttons see @ref Radio. + * like to know more about radio buttons see @ref Elm_Radio. * * We start our example with the usual setup and then create the 2 rectangles * we will use in our flip: @@ -4430,11 +4430,11 @@ /** * @page entry_example Entry - Example of simple editing * - * As a general overview of @ref Entry we are going to write an, albeit simple, + * As a general overview of @ref Elm_Entry we are going to write an, albeit simple, * functional editor. Although
[EGIT] [core/efl] efl-1.20 20/47: efl_wl: destroy extant shell surface upon surface deletion
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=d92ab128700f002c7bd3a19f60edb1f4e1115d22 commit d92ab128700f002c7bd3a19f60edb1f4e1115d22 Author: Mike BlumenkrantzDate: Wed Oct 18 17:11:36 2017 -0400 efl_wl: destroy extant shell surface upon surface deletion avoid invalid reads later @fix --- src/lib/efl_wl/efl_wl.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c index bb11163b24..04e6320901 100644 --- a/src/lib/efl_wl/efl_wl.c +++ b/src/lib/efl_wl/efl_wl.c @@ -2254,6 +2254,12 @@ comp_surface_smart_del(Evas_Object *obj) } evas_object_del(cs->img); evas_object_del(cs->clip); + if (cs->shell.surface) + { +if (cs->role) + wl_resource_destroy(cs->role); +wl_resource_destroy(cs->shell.surface); + } cs->c->surfaces = eina_inlist_remove(cs->c->surfaces, EINA_INLIST_GET(cs)); cs->c->surfaces_count--; free(cs); --
[EGIT] [core/efl] efl-1.20 31/47: edje_cc: fix incorrect type in minmul defaults
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=200a484ad6e8b1ae91569568d10b23e617fdb593 commit 200a484ad6e8b1ae91569568d10b23e617fdb593 Author: Andrii KroitorDate: Fri Oct 27 11:21:01 2017 +0300 edje_cc: fix incorrect type in minmul defaults @fix --- src/bin/edje/edje_cc_handlers.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index e19fd45e96..aa43325611 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -8344,8 +8344,8 @@ ob_collections_group_parts_part_description(void) ed->persp.zplane = 0; ed->persp.focal = 1000; ed->minmul.have = 1; - ed->minmul.w = FROM_INT(1); - ed->minmul.h = FROM_INT(1); + ed->minmul.w = FROM_DOUBLE(1.0); + ed->minmul.h = FROM_DOUBLE(1.0); ed->align_3d.x = FROM_DOUBLE(0.5); ed->align_3d.y = FROM_DOUBLE(0.5); ed->align_3d.z = FROM_DOUBLE(0.5); --
[EGIT] [core/efl] efl-1.20 42/47: edje_cc: fix item.max parsing
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=e7809fe1a530f0d1bf3bfc3df6cbae3f6d0368ba commit e7809fe1a530f0d1bf3bfc3df6cbae3f6d0368ba Author: Andrii KroitorDate: Mon Oct 30 16:26:57 2017 +0200 edje_cc: fix item.max parsing It is now possible to set item.max back to default value (-1 -1). @fix --- src/bin/edje/edje_cc_handlers.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 0711c29c48..86e0169a47 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -8001,8 +8001,8 @@ static void st_collections_group_parts_part_box_items_item_max(void) check_arg_count(2); - current_item->max.w = parse_int_range(0, 0, 0x7ff); - current_item->max.h = parse_int_range(1, 0, 0x7ff); + current_item->max.w = parse_int_range(0, -1, 0x7ff); + current_item->max.h = parse_int_range(1, -1, 0x7ff); } /** --
[EGIT] [core/efl] efl-1.20 08/47: eina: fix warning if EINA_SAFETY_CHECKS is disabled
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=6019806af3e3db50fce52d9aaa76c4b9250018c2 commit 6019806af3e3db50fce52d9aaa76c4b9250018c2 Author: Prince Kumar DubeyDate: Mon Oct 16 13:36:09 2017 -0700 eina: fix warning if EINA_SAFETY_CHECKS is disabled Summary: Putting local variable "d" under preprocessor flag "EINA_SAFETY_CHECKS" to avoid below warning, if "EINA_SAFETY_CHECKS" is disabled. 1. local variable "d" is assigned but not used. 2. If warning 1 is resolved then variable "d" will be unused. Reviewers: raster, cedric Reviewed By: cedric Subscribers: jpeg, rajeshps Differential Revision: https://phab.enlightenment.org/D5321 Signed-off-by: Cedric BAIL --- src/lib/eina/eina_log.c | 4 1 file changed, 4 insertions(+) diff --git a/src/lib/eina/eina_log.c b/src/lib/eina/eina_log.c index 2b2a240d54..c6630fc473 100644 --- a/src/lib/eina/eina_log.c +++ b/src/lib/eina/eina_log.c @@ -2350,12 +2350,16 @@ eina_log_timing(int domain, Eina_Log_State state, const char *phase) { +#ifdef EINA_SAFETY_CHECKS Eina_Log_Domain *d; +#endif Eina_Log_Timing *t; if (_disable_timing) return; +#ifdef EINA_SAFETY_CHECKS d = _log_domains + domain; +#endif t = _log_timing + domain; #ifdef EINA_SAFETY_CHECKS if (EINA_UNLIKELY(d->deleted)) --
[EGIT] [core/efl] efl-1.20 07/47: ecore_wayland: fix assigned value is never used.
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=c5efbda95952579de0ed24400e5636fb8bc16b51 commit c5efbda95952579de0ed24400e5636fb8bc16b51 Author: Subodh KumarDate: Mon Oct 16 13:28:08 2017 -0700 ecore_wayland: fix assigned value is never used. Summary: Fix assigned value is never used. @fix Reviewers: cedric Subscribers: shilpasingh, jpeg Differential Revision: https://phab.enlightenment.org/D5283 Signed-off-by: Cedric BAIL --- src/lib/ecore_wayland/ecore_wl_dnd.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/lib/ecore_wayland/ecore_wl_dnd.c b/src/lib/ecore_wayland/ecore_wl_dnd.c index f40eaf7e68..a7694c1587 100644 --- a/src/lib/ecore_wayland/ecore_wl_dnd.c +++ b/src/lib/ecore_wayland/ecore_wl_dnd.c @@ -769,10 +769,9 @@ static void _ecore_wl_dnd_source_cb_target(void *data, struct wl_data_source *source EINA_UNUSED, const char *mime_type EINA_UNUSED) { Ecore_Wl_Event_Data_Source_Target *event; - Ecore_Wl_Input *input; LOGFN(__FILE__, __LINE__, __FUNCTION__); - if (!(input = data)) return; + if (!data) return; if (!(event = calloc(1, sizeof(Ecore_Wl_Event_Data_Source_Target return; @@ -800,11 +799,10 @@ static void _ecore_wl_dnd_source_cb_send(void *data, struct wl_data_source *source EINA_UNUSED, const char *mime_type, int32_t fd) { Ecore_Wl_Event_Data_Source_Send *event; - Ecore_Wl_Input *input; LOGFN(__FILE__, __LINE__, __FUNCTION__); - if (!(input = data)) return; + if (!data) return; if (!(event = calloc(1, sizeof(Ecore_Wl_Event_Data_Source_Send return; --
[EGIT] [core/efl] efl-1.20 03/47: elmentary: fix a potential null pointer dereferencing in elm_box
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=18388f33c78702a3ffee284a4e687976c2119031 commit 18388f33c78702a3ffee284a4e687976c2119031 Author: Wonki KimDate: Fri Oct 13 12:00:59 2017 -0700 elmentary: fix a potential null pointer dereferencing in elm_box Summary: if 'evas_object_smart_data_get' return null somehow, logic that dereference the smart data pointer will cause problems. This patch prevent a potential bug in advance. Reviewers: jpeg, woohyun, cedric Differential Revision: https://phab.enlightenment.org/D5290 Signed-off-by: Cedric Bail --- src/lib/elementary/elm_box.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elm_box.c b/src/lib/elementary/elm_box.c index 2944096d6b..3655f36c83 100644 --- a/src/lib/elementary/elm_box.c +++ b/src/lib/elementary/elm_box.c @@ -544,8 +544,11 @@ _elm_box_unpack_all(Eo *obj, Elm_Box_Data *pd) /* set this to block _sizing_eval() calls */ pd->delete_me = EINA_TRUE; bd = evas_object_smart_data_get(wd->resize_obj); - EINA_LIST_FOREACH (bd->children, l, opt) - children = eina_list_append(children, opt->obj); + if (bd) + { +EINA_LIST_FOREACH (bd->children, l, opt) + children = eina_list_append(children, opt->obj); + } pd->delete_me = EINA_FALSE; /* EINA_FALSE means do not delete objects */ --
[EGIT] [core/efl] efl-1.20 09/47: elementary: fix double assignment
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=8f02704a1e93a5c031f4cb29135f6f9dedeb675c commit 8f02704a1e93a5c031f4cb29135f6f9dedeb675c Author: Prince Kumar DubeyDate: Tue Oct 17 11:03:10 2017 -0700 elementary: fix double assignment Summary: local variable "bp" assigned twice unnecessarily. The duplicate assignment is removed. Reviewers: raster, cedric, jpeg Subscribers: jpeg, rajeshps Differential Revision: https://phab.enlightenment.org/D5323 Signed-off-by: Cedric Bail --- src/lib/elementary/elm_config.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c index 83715c563d..62e5f80f01 100644 --- a/src/lib/elementary/elm_config.c +++ b/src/lib/elementary/elm_config.c @@ -798,7 +798,6 @@ _elm_config_derived_option_apply(Elm_Config *cfg, const char *option) char *bp = buf; p = option; - bp = buf; for (;;) { if ((*p == 0) || (*p == ' ')) --
[EGIT] [core/efl] efl-1.20 29/47: edje_cc: fix state.no_render description
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=474155296086b9823f12a0067e86741123c4bc5c commit 474155296086b9823f12a0067e86741123c4bc5c Author: Andrii KroitorDate: Fri Oct 27 11:06:23 2017 +0300 edje_cc: fix state.no_render description @fix --- src/bin/edje/edje_cc_handlers.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index b54de02a8b..d0f20716da 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -8866,13 +8866,13 @@ st_collections_group_parts_part_description_hid(void) /** @page edcref @property -visible +no_render @parameters [0 or 1] @effect -Takes a boolean value specifying whether part is visible (1) or not -(0). Non-visible parts do not emit signals. The default value is 1. +Same as setting no_render in part, but can be changed in different states. +Defaults: 0 @since 1.19 @endproperty */ --
[EGIT] [core/efl] efl-1.20 36/47: edje_cc: make bool parsing consistent
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=20dae95ce96b45ab1396e6d19813b82e865d9962 commit 20dae95ce96b45ab1396e6d19813b82e865d9962 Author: Andrii KroitorDate: Mon Oct 30 11:24:35 2017 +0200 edje_cc: make bool parsing consistent @fix --- src/bin/edje/edje_cc_handlers.c | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index c3d9251308..6022893d23 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -10532,10 +10532,7 @@ st_collections_group_parts_part_description_image_border_scale(void) ed = (Edje_Part_Description_Image*) current_desc; - ed->image.border.scale = parse_enum(0, - "0", 0, - "1", 1, - NULL); + ed->image.border.scale = parse_bool(0); } /** @@ -14589,6 +14586,8 @@ _st_collections_group_parts_part_description_params(Edje_External_Param_Type typ switch (type) { case EDJE_EXTERNAL_PARAM_TYPE_BOOL: +param->i = parse_bool(1); +break; case EDJE_EXTERNAL_PARAM_TYPE_INT: param->i = parse_int(1); break; @@ -14664,7 +14663,7 @@ st_collections_group_parts_part_description_params_string(void) @parameters [param_name] [bool_value] @effect -Adds an boolean parameter for an external object. Value must be 0 or 1. +Adds an boolean parameter for an external object. @endproperty */ static void --
[EGIT] [core/efl] efl-1.20 30/47: edje_cc: parse "fixed" as bool
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=16f6424518ea0174581fe72ef8dd658ffa3c1fed commit 16f6424518ea0174581fe72ef8dd658ffa3c1fed Author: Andrii KroitorDate: Fri Oct 27 11:17:01 2017 +0300 edje_cc: parse "fixed" as bool @fix --- src/bin/edje/edje_cc_handlers.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index d0f20716da..e19fd45e96 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -8995,8 +8995,8 @@ st_collections_group_parts_part_description_fixed(void) check_has_anchors(); check_arg_count(2); - current_desc->fixed.w = parse_float_range(0, 0, 1); - current_desc->fixed.h = parse_float_range(1, 0, 1); + current_desc->fixed.w = parse_bool(0); + current_desc->fixed.h = parse_bool(1); } /** --
[EGIT] [core/efl] efl-1.20 01/47: eina: spellfix comment in matrix code
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=2ee82395741b7b4009362bcbb8ec0c6b4f83427e commit 2ee82395741b7b4009362bcbb8ec0c6b4f83427e Author: Bryce HarringtonDate: Fri Oct 13 11:51:52 2017 -0700 eina: spellfix comment in matrix code Reviewers: cedric Reviewed By: cedric Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5280 Signed-off-by: Cedric Bail --- src/lib/eina/eina_matrix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eina/eina_matrix.c b/src/lib/eina/eina_matrix.c index 50439dd755..e60989f971 100644 --- a/src/lib/eina/eina_matrix.c +++ b/src/lib/eina/eina_matrix.c @@ -601,7 +601,7 @@ eina_matrix3_square_quad_map(Eina_Matrix3 *m, const Eina_Quad *q) // y0 - y1 + y2 - y3 double ey = QUAD_Y0(q) - QUAD_Y1(q) + QUAD_Y2(q) - QUAD_Y3(q); - /* paralellogram */ + /* parallelogram */ if (EINA_DBL_EQ(ex, 0.0) && EINA_DBL_EQ(ey, 0.0)) { /* create the affine matrix */ --
[EGIT] [core/efl] efl-1.20 38/47: edje_cc: move box and table properties documentation
raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=594aefe832d7030e8f3c28f3fca713766833d9ae commit 594aefe832d7030e8f3c28f3fca713766833d9ae Author: Andrii KroitorDate: Mon Oct 30 13:12:11 2017 +0200 edje_cc: move box and table properties documentation Documentation comments for properties should be near parser implementation. @fix --- src/bin/edje/edje_cc_handlers.c | 176 +--- 1 file changed, 94 insertions(+), 82 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index e457326fc3..55e2d5662c 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -11599,37 +11599,6 @@ st_collections_group_parts_part_description_text_ellipsis(void) Defaults: "horizontal" @endproperty - -@property -align -@parameters -[horizontal] [vertical] -@effect -Change the position of the point of balance inside the container [-1.0 - 1.0]. - -Defaults: 0.5 0.5 -@endproperty - -@property -padding -@parameters -[horizontal] [vertical] -@effect -Sets the space between cells in pixels. - -Defaults: 0 0 -@endproperty - -@property -min -@parameters -[horizontal] [vertical] -@effect -When any of the parameters is enabled (1) it forces the minimum size of -the box to be equal to the minimum size of the items. - -Defaults: 0 0 -@endproperty */ static void st_collections_group_parts_part_description_box_layout(void) { @@ -11651,6 +11620,18 @@ static void st_collections_group_parts_part_description_box_layout(void) ed->box.alt_layout = parse_str(1); } +/** +@page edcref +@property +align +@parameters +[horizontal] [vertical] +@effect +Change the position of the point of balance inside the box [-1.0 - 1.0]. + +Defaults: 0.5 0.5 +@endproperty +*/ static void st_collections_group_parts_part_description_box_align(void) { Edje_Part_Description_Box *ed; @@ -11670,6 +11651,18 @@ static void st_collections_group_parts_part_description_box_align(void) ed->box.align.y = FROM_DOUBLE(parse_float_range(1, -1.0, 1.0)); } +/** +@page edcref +@property +padding +@parameters +[horizontal] [vertical] +@effect +Sets the space between box items in pixels. + +Defaults: 0 0 +@endproperty +*/ static void st_collections_group_parts_part_description_box_padding(void) { Edje_Part_Description_Box *ed; @@ -11689,6 +11682,19 @@ static void st_collections_group_parts_part_description_box_padding(void) ed->box.padding.y = parse_int_range(1, 0, 0x7fff); } +/** +@page edcref +@property +min +@parameters +[horizontal] [vertical] +@effect +When any of the parameters is enabled (1) it forces the minimum size of +the box to be equal to the minimum size of the items. + +Defaults: 0 0 +@endproperty +*/ static void st_collections_group_parts_part_description_box_min(void) { @@ -11749,37 +11755,6 @@ st_collections_group_parts_part_description_box_min(void) Defaults: NONE @endproperty - -@property -align -@parameters -[horizontal] [vertical] -@effect -Change the position of the point of balance inside the container [-1.0 - 1.0]. - -Defaults: 0.5 0.5 -@endproperty - -@property -padding -@parameters -[horizontal] [vertical] -@effect -Sets the space between cells in pixels. - -Defaults: 0 0 -@endproperty - -@property -min -@parameters -[horizontal] [vertical] -@effect -When any of the parameters is enabled (1) it forces the minimum size of -the table to be equal to the minimum size of the items. - -Defaults: 0 0 -@endproperty */ static void st_collections_group_parts_part_description_table_homogeneous(void) { @@ -11803,6 +11778,18 @@ static void st_collections_group_parts_part_description_table_homogeneous(void) NULL); } +/** +@page edcref +@property +align +@parameters +[horizontal] [vertical] +@effect +Change the position of the point of balance inside the table [-1.0 - 1.0]. + +Defaults: 0.5 0.5 +@endproperty +*/ static void st_collections_group_parts_part_description_table_align(void) { Edje_Part_Description_Table *ed; @@ -11822,6 +11809,18 @@ static void st_collections_group_parts_part_description_table_align(void) ed->table.align.y = FROM_DOUBLE(parse_float_range(1, -1.0, 1.0)); } +/** +@page edcref +@property +padding +@parameters +[horizontal] [vertical] +@effect +Sets the space