[EGIT] [core/efl] master 01/01: win: Fix alpha windows

2017-11-07 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c308498a9d9a6f59e8b1090f73867c26a4683599

commit c308498a9d9a6f59e8b1090f73867c26a4683599
Author: Jean-Philippe Andre 
Date:   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.

2017-11-07 Thread subhransu mohanty
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8952c3e52444d78504a822bf95d757621891dd41

commit 8952c3e52444d78504a822bf95d757621891dd41
Author: subhransu mohanty 
Date:   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

2017-11-07 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=75a65ad41a02e2352a193b3b6cea2a99b7562591

commit 75a65ad41a02e2352a193b3b6cea2a99b7562591
Author: Jean-Philippe Andre 
Date:   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)

2017-11-07 Thread Bryce Harrington
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=50fba34e6c0e07deada58342c544ad8f1800a46f

commit 50fba34e6c0e07deada58342c544ad8f1800a46f
Author: Bryce Harrington 
Date:   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

2017-11-07 Thread Pawel Aksiutowicz
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e2ad1469a5954b62f1b07ba67abc831485645f04

commit e2ad1469a5954b62f1b07ba67abc831485645f04
Author: Pawel Aksiutowicz 
Date:   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

2017-11-07 Thread Carsten Haitzler
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.

2017-11-07 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e729d6b994ef27e4299ac3719da976855a8db907

commit e729d6b994ef27e4299ac3719da976855a8db907
Author: Cedric BAIL 
Date:   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.

2017-11-07 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=4f70a295801b5fd7600d43b3aaa90241165c4ac5

commit 4f70a295801b5fd7600d43b3aaa90241165c4ac5
Author: Cedric BAIL 
Date:   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.

2017-11-07 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d171cf9639ff859f398ac919cb291f02231e6461

commit d171cf9639ff859f398ac919cb291f02231e6461
Author: Cedric BAIL 
Date:   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.

2017-11-07 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=73e6404b1a89b26518f61b7a163e7dc9066bd8ca

commit 73e6404b1a89b26518f61b7a163e7dc9066bd8ca
Author: Cedric BAIL 
Date:   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.

2017-11-07 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e32dd07c9d277b99d54cf5d7215e0acfd5075ee3

commit e32dd07c9d277b99d54cf5d7215e0acfd5075ee3
Author: Cedric BAIL 
Date:   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.

2017-11-07 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=dd40079185577c5330f72817e0385aa9cda2e7f4

commit dd40079185577c5330f72817e0385aa9cda2e7f4
Author: Cedric BAIL 
Date:   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.

2017-11-07 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d125892601c6278bf40624843d637bbc0e1a0cf0

commit d125892601c6278bf40624843d637bbc0e1a0cf0
Author: Cedric BAIL 
Date:   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

2017-11-07 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=25b6a280c087d39f66e30c9c4d07f86b97c989d6

commit 25b6a280c087d39f66e30c9c4d07f86b97c989d6
Author: Cedric BAIL 
Date:   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.

2017-11-07 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fa3e1dc784275cbcd2f0002cf30525528d5a2bc3

commit fa3e1dc784275cbcd2f0002cf30525528d5a2bc3
Author: Cedric BAIL 
Date:   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.

2017-11-07 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ee65414ef6b75a61044227a9a4ab10201cee787d

commit ee65414ef6b75a61044227a9a4ab10201cee787d
Author: Cedric BAIL 
Date:   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.

2017-11-07 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=50cc85f426e736d7ffafc8e7441392910cd278f0

commit 50cc85f426e736d7ffafc8e7441392910cd278f0
Author: Cedric BAIL 
Date:   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

2017-11-07 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/tools/clouseau.git/commit/?id=7dadc722c5c5b3c3a32481dc527ea89156463f04

commit 7dadc722c5c5b3c3a32481dc527ea89156463f04
Author: Marcel Hollerbach 
Date:   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

2017-11-07 Thread Andy Williams
ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/examples.git/commit/?id=c2fd813ea64c270f2dc58beb72d070e8c9a0c5a8

commit c2fd813ea64c270f2dc58beb72d070e8c9a0c5a8
Author: Andy Williams 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=59fa0e418dc78abc2d9e35635e44197ac8091520

commit 59fa0e418dc78abc2d9e35635e44197ac8091520
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=3fb8253edb37fcb1bd325a400cb8151ca548ed50

commit 3fb8253edb37fcb1bd325a400cb8151ca548ed50
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=4178e875182531c013ec78106e93247e891faf67

commit 4178e875182531c013ec78106e93247e891faf67
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=791f70541ddcce46107491f66361498142be75c2

commit 791f70541ddcce46107491f66361498142be75c2
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=e7cfd0667598d0213b2425ef7b9cd60ac666df69

commit e7cfd0667598d0213b2425ef7b9cd60ac666df69
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=f78eb3c108fbbb84edcb4c62fc499b4be558169a

commit f78eb3c108fbbb84edcb4c62fc499b4be558169a
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=18de7db6f635e465eb556241701691ca2738bc03

commit 18de7db6f635e465eb556241701691ca2738bc03
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=a5adcb1df761293360f661db82108b69f5e786b3

commit a5adcb1df761293360f661db82108b69f5e786b3
Author: Mike Blumenkrantz 
Date:   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.

2017-11-07 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=dde4bafd7f015cf958df1da33be7dc04cfae46a9

commit dde4bafd7f015cf958df1da33be7dc04cfae46a9
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=19a807bdb26b336ce08e9f0183182f410d9f144e

commit 19a807bdb26b336ce08e9f0183182f410d9f144e
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread 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 Halfacree 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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"

2017-11-07 Thread Derek Foreman
derekf pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=d1e5e3ff5ee19e44e722e153ffd260f4a1f04bb2

commit d1e5e3ff5ee19e44e722e153ffd260f4a1f04bb2
Author: Derek Foreman 
Date:   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

2017-11-07 Thread Carsten Haitzler
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

2017-11-07 Thread Carsten Haitzler
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

2017-11-07 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8aeccdb7a19a33349e7bc7ca734ba9ed7f948c14

commit 8aeccdb7a19a33349e7bc7ca734ba9ed7f948c14
Author: Jean-Philippe Andre 
Date:   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

2017-11-07 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=a0dc0eb5161f88507e3e44bb426ac26245aa6847

commit a0dc0eb5161f88507e3e44bb426ac26245aa6847
Author: Jean-Philippe Andre 
Date:   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

2017-11-07 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=528dfce251e3fdf566379e27b262486da62e9e85

commit 528dfce251e3fdf566379e27b262486da62e9e85
Author: Jean-Philippe Andre 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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...

2017-11-07 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0076f541129ec9b969db5da5c19a16fc5d1c4b2c

commit 0076f541129ec9b969db5da5c19a16fc5d1c4b2c
Author: Jean-Philippe Andre 
Date:   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

2017-11-07 Thread Lauro Moura
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7ab444acbcc1f8578db6061a50fad69d74dc9993

commit 7ab444acbcc1f8578db6061a50fad69d74dc9993
Author: Lauro Moura 
Date:   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

2017-11-07 Thread Sungtaek Hong
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=439fbe4bcb4c34ff7dabd802bd4e139b57f6dd50

commit 439fbe4bcb4c34ff7dabd802bd4e139b57f6dd50
Author: Sungtaek Hong 
Date:   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

2017-11-07 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=12fa8caec5fcf0deefd343f28f1522965516d4e6

commit 12fa8caec5fcf0deefd343f28f1522965516d4e6
Author: Jean-Philippe Andre 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread 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: Paul 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=83c548fef502473b9f207ff317443f933a958d3b

commit 83c548fef502473b9f207ff317443f933a958d3b
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=0c2cf93b6fe98b7a2d8702c2d27514396370b0de

commit 0c2cf93b6fe98b7a2d8702c2d27514396370b0de
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Derek Foreman
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=e67aa661a0077f4069b67eefcb016424a630ab55

commit e67aa661a0077f4069b67eefcb016424a630ab55
Author: Derek Foreman 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=168d5e07b14a99d172d04f464b58cf527556ccec

commit 168d5e07b14a99d172d04f464b58cf527556ccec
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Christopher Michael
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=0ac05964478627c5413b39f51bb87715234979a4

commit 0ac05964478627c5413b39f51bb87715234979a4
Author: Chris Michael 
Date:   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

2017-11-07 Thread Vitalii Vorobiov
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=f5871c09b280f027cad61d10634b4f45183461b7

commit f5871c09b280f027cad61d10634b4f45183461b7
Author: Vitalii Vorobiov 
Date:   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

2017-11-07 Thread Bryce Harrington
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=940bb84a63e049411003afbdf9ec545ea9055653

commit 940bb84a63e049411003afbdf9ec545ea9055653
Author: Bryce Harrington 
Date:   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

2017-11-07 Thread Youngbok Shin
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=eb7053a6728e4e92c522b244a519ef03abca59f5

commit eb7053a6728e4e92c522b244a519ef03abca59f5
Author: Youngbok Shin 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=7d361dfda8f2693afcb37a49d6e4eb30ea87f534

commit 7d361dfda8f2693afcb37a49d6e4eb30ea87f534
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Youngbok Shin
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=48b74e171052aa79dce933ec7eda61fa7d903518

commit 48b74e171052aa79dce933ec7eda61fa7d903518
Author: Youngbok Shin 
Date:   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.

2017-11-07 Thread Subodh Kumar
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=ea7d87f05f7d65651853b601f9b03ce7a807dca5

commit ea7d87f05f7d65651853b601f9b03ce7a807dca5
Author: Subodh Kumar 
Date:   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

2017-11-07 Thread Daniel Kolesa
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=81ef814cdb88850fc8d1d5b89c941309902959c8

commit 81ef814cdb88850fc8d1d5b89c941309902959c8
Author: Daniel Kolesa 
Date:   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

2017-11-07 Thread Jeonghyun Yun
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=3850a903e4d1426c1686938d1bea674ebe82b442

commit 3850a903e4d1426c1686938d1bea674ebe82b442
Author: Jeonghyun Yun 
Date:   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

2017-11-07 Thread JinYong Park
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=68218e7920f4d2f489e0ca93e689452da5546050

commit 68218e7920f4d2f489e0ca93e689452da5546050
Author: JinYong Park 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=0582a459676f4bd4ef28d63300626bd2c4bef612

commit 0582a459676f4bd4ef28d63300626bd2c4bef612
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Jean Guyomarc'h
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=3d4e84a7f208082e5171775a0b03d32d96a2da65

commit 3d4e84a7f208082e5171775a0b03d32d96a2da65
Author: Jean Guyomarc'h 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=09ff9ee26d3249d1c3bedfd3f985aeac7e0e594d

commit 09ff9ee26d3249d1c3bedfd3f985aeac7e0e594d
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=43e19589556e4dc80882002cd1eedd17baffa432

commit 43e19589556e4dc80882002cd1eedd17baffa432
Author: Andrii Kroitor 
Date:   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.

2017-11-07 Thread Cedric BAIL
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=2818e8d481990156d57b4d5ddff16dbf1673ff38

commit 2818e8d481990156d57b4d5ddff16dbf1673ff38
Author: Cedric Bail 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=946d5f2dd6c034884a86c15d1477a54ff3fcce9e

commit 946d5f2dd6c034884a86c15d1477a54ff3fcce9e
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Prince Kumar Dubey
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=ea4de5c2e34dbbf7d01ecf7e7601e07e59df5c82

commit ea4de5c2e34dbbf7d01ecf7e7601e07e59df5c82
Author: Prince Kumar Dubey 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=835a63f99b136081aa4ecef3062a429ccdf1cf9b

commit 835a63f99b136081aa4ecef3062a429ccdf1cf9b
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Christopher Michael
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=9032a6517deef0e76f1831d04dca258b00026fa3

commit 9032a6517deef0e76f1831d04dca258b00026fa3
Author: Chris Michael 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=6cede0247dd29890214241b303503ed570db195f

commit 6cede0247dd29890214241b303503ed570db195f
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Jean-Philippe ANDRÉ
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=b97783d4c400f8a2c0bf3bc6c649079798d14068

commit b97783d4c400f8a2c0bf3bc6c649079798d14068
Author: Jean-Philippe Andre 
Date:   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.

2017-11-07 Thread Al Poole
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=5526474e8f560c6bf63888ed2adb9f47e76c6c53

commit 5526474e8f560c6bf63888ed2adb9f47e76c6c53
Author: Al Poole 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=0d28a0d6d7abe15b510886a03f8648f27c64254f

commit 0d28a0d6d7abe15b510886a03f8648f27c64254f
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Thiep Ha
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=960e6d3c05cd60fdf8656f778abac8f6ac7dccb4

commit 960e6d3c05cd60fdf8656f778abac8f6ac7dccb4
Author: Thiep Ha 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=b33012e725be316bfc365a11969d0f204a99ec02

commit b33012e725be316bfc365a11969d0f204a99ec02
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread Carsten Haitzler
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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=fac8880083ee2843eb45c3d27b68752c419bb77f

commit fac8880083ee2843eb45c3d27b68752c419bb77f
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Thiep Ha
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=203a238fbea58beffab8f33b13ad382a31c1df38

commit 203a238fbea58beffab8f33b13ad382a31c1df38
Author: Thiep Ha 
Date:   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

2017-11-07 Thread Mike Blumenkrantz
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=d92ab128700f002c7bd3a19f60edb1f4e1115d22

commit d92ab128700f002c7bd3a19f60edb1f4e1115d22
Author: Mike Blumenkrantz 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=200a484ad6e8b1ae91569568d10b23e617fdb593

commit 200a484ad6e8b1ae91569568d10b23e617fdb593
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=e7809fe1a530f0d1bf3bfc3df6cbae3f6d0368ba

commit e7809fe1a530f0d1bf3bfc3df6cbae3f6d0368ba
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Prince Kumar Dubey
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=6019806af3e3db50fce52d9aaa76c4b9250018c2

commit 6019806af3e3db50fce52d9aaa76c4b9250018c2
Author: Prince Kumar Dubey 
Date:   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.

2017-11-07 Thread Subodh Kumar
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=c5efbda95952579de0ed24400e5636fb8bc16b51

commit c5efbda95952579de0ed24400e5636fb8bc16b51
Author: Subodh Kumar 
Date:   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

2017-11-07 Thread Wonki Kim
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=18388f33c78702a3ffee284a4e687976c2119031

commit 18388f33c78702a3ffee284a4e687976c2119031
Author: Wonki Kim 
Date:   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

2017-11-07 Thread Prince Kumar Dubey
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=8f02704a1e93a5c031f4cb29135f6f9dedeb675c

commit 8f02704a1e93a5c031f4cb29135f6f9dedeb675c
Author: Prince Kumar Dubey 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=474155296086b9823f12a0067e86741123c4bc5c

commit 474155296086b9823f12a0067e86741123c4bc5c
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=20dae95ce96b45ab1396e6d19813b82e865d9962

commit 20dae95ce96b45ab1396e6d19813b82e865d9962
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=16f6424518ea0174581fe72ef8dd658ffa3c1fed

commit 16f6424518ea0174581fe72ef8dd658ffa3c1fed
Author: Andrii Kroitor 
Date:   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

2017-11-07 Thread Bryce Harrington
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=2ee82395741b7b4009362bcbb8ec0c6b4f83427e

commit 2ee82395741b7b4009362bcbb8ec0c6b4f83427e
Author: Bryce Harrington 
Date:   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

2017-11-07 Thread Andrii Kroitor
raster pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=594aefe832d7030e8f3c28f3fca713766833d9ae

commit 594aefe832d7030e8f3c28f3fca713766833d9ae
Author: Andrii Kroitor 
Date:   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 

  1   2   >