[EGIT] [core/efl] master 01/01: Revert "Eo: Optimise event callback call"

2015-11-09 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit e992a3a1e0b597fecbe4b935659138d6a9bafcf2
Author: Tom Hacohen 
Date:   Mon Nov 9 14:06:39 2015 +

Revert "Eo: Optimise event callback call"

This reverts commit 4b116627c24a43248abf5a34a391241b1c0cf983.

This can't be done, because the freeze state can change from within the
callbacks so you need to check if events are frozen every time.
---
 src/lib/eo/eo_base_class.c | 53 --
 1 file changed, 28 insertions(+), 25 deletions(-)

diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index daf7a9d..f99ca37 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -671,45 +671,48 @@ _eo_base_event_callback_call(Eo *obj_id, Eo_Base_Data *pd,
 
pd->walking_list++;
 
-   if (!desc->unfreezable && (event_freeze_count || pd->event_freeze_count))
- goto end;
-
for (cb = pd->callbacks; cb; cb = cb->next)
  {
-if (cb->delete_me)
-  continue;
-
-if (cb->func_array)
+if (!cb->delete_me)
   {
- const Eo_Callback_Array_Item *it;
+ if (cb->func_array)
+   {
+  const Eo_Callback_Array_Item *it;
 
- for (it = cb->items.item_array; it->func; it++)
+  for (it = cb->items.item_array; it->func; it++)
+{
+   if (!_cb_desc_match(it->desc, desc))
+  continue;
+   if (!it->desc->unfreezable &&
+   (event_freeze_count || pd->event_freeze_count))
+  continue;
+
+   /* Abort callback calling if the func says so. */
+   if (!it->func((void *) cb->func_data, obj_id, desc,
+(void *) event_info))
+ {
+ret = EINA_FALSE;
+goto end;
+ }
+}
+   }
+ else
{
-  if (!_cb_desc_match(it->desc, desc))
+  if (!_cb_desc_match(cb->items.item.desc, desc))
+continue;
+  if (!cb->items.item.desc->unfreezable &&
+  (event_freeze_count || pd->event_freeze_count))
 continue;
 
   /* Abort callback calling if the func says so. */
-  if (!it->func((void *) cb->func_data, obj_id, desc,
-(void *) event_info))
+  if (!cb->items.item.func((void *) cb->func_data, obj_id, 
desc,
+   (void *) event_info))
 {
ret = EINA_FALSE;
goto end;
 }
}
   }
-else
-  {
- if (!_cb_desc_match(cb->items.item.desc, desc))
-   continue;
-
- /* Abort callback calling if the func says so. */
- if (!cb->items.item.func((void *) cb->func_data, obj_id, desc,
-  (void *) event_info))
-   {
-  ret = EINA_FALSE;
-  goto end;
-   }
-  }
  }
 
 end:

-- 




[EGIT] [tools/erigo] master 03/03: Refactoring undo-redo

2015-11-09 Thread Yakov Goldberg
yakov pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=1be14afa8f8067d399bf141e8b8105eb849d0b75

commit 1be14afa8f8067d399bf141e8b8105eb849d0b75
Author: Yakov Goldberg 
Date:   Mon Nov 9 13:19:11 2015 +0200

Refactoring undo-redo

Clean up, merge undo() and redo()
functions into the one context_undo_redo_apply, etc.
---
 src/bin/gui/editor.c | 404 +--
 src/lib/undoredo.c   | 115 +++
 src/lib/undoredo.h   |   3 +
 3 files changed, 152 insertions(+), 370 deletions(-)

diff --git a/src/bin/gui/editor.c b/src/bin/gui/editor.c
index 352de07..678a15b 100644
--- a/src/bin/gui/editor.c
+++ b/src/bin/gui/editor.c
@@ -161,23 +161,6 @@ main_wdg_info_frame_get(const Main_Wdg_Info *wi)
return wi ? wi->frame : NULL;
 }
 
-Eina_Bool
-widget_name_change(Gui_Widget *wdg, const char *str)
-{
-   const Gui_Context *ctx = wdg_context_get(wdg);
-   if (strcmp(wdg_name_get(wdg), str) && !eid_rename(wdg_eid_get(wdg), str))
- {
-ERR("Name \"%s\" already exists!", str);
-return EINA_FALSE;
- }
-
-   const Gui_Widget *sel  = gui_context_data_get(ctx, SELECTED_WDG);
-   objtree_item_refresh(wdg);
-   objtree_item_selected_set(sel);
-
-   return EINA_TRUE;
-}
-
 /* x_fix/y_fix - correction of initial position of smart_parent. whis is not 
resized before elm_run. */
 static void
 _canvas_free_coords_get(const Gui_Context *ctx, Evas_Coord *x, Evas_Coord *y)
@@ -2317,9 +2300,6 @@ _drag_start_post(const Gui_Widget *wdg, const Eo *_wdg_eo)
wdg_parent_set((Gui_Widget *) wdg, NULL);
 }
 
-static Eina_Bool
-__undo_no_update(const Gui_Context *ctx);
-
 /* This callback is added only for dragging of objects on canvas. */
 static void
 _dragdone_post_cb(Eina_Bool accept, const Eo *wdg_eo, const Gui_Widget 
*drag_start_wdg)
@@ -2673,183 +2653,6 @@ _wdg_parent_win_reload(const Gui_Widget *wdg)
_editor_wdg_selected_set(NULL);
 }
 
-/* Undo last action */
-static Eina_Bool
-__undo_no_update(const Gui_Context *ctx)
-{
-   EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, EINA_FALSE);
-   const Memento *memento;
-   const Memento_Command *cmd;
-   /* Save head memento for post function. */
-   memento = context_current_memento_get(ctx);
-   if (!memento) return EINA_FALSE;
-
-   const Eina_List *cmds_list = memento_commands_get(memento), *itr;
-   EINA_LIST_REVERSE_FOREACH(cmds_list, itr, cmd)
- {
-Memento_Type type = memento_command_type_get(cmd);
-Eid *eid = memento_command_wdg_get(cmd);
-Gui_Widget *wdg = wdg_get(eid);
-switch (type)
-  {
-   case MEMENTO_PROPERTY:
-{
-   Gui_Widget_Property *old_prop, *new_prop;
-   const Op_Desc *op_desc = NULL;
-
-   if (!wdg)
- {
-ERR("wdg not found");
-return EINA_FALSE;
- }
-
-   old_prop = memento_command_old_pointer_get(cmd);
-   new_prop = memento_command_new_pointer_get(cmd);
-   /* If last action was 'Drop prop', new_prop is NULL. */
-   if (new_prop)
- {
-op_desc = prop_op_desc_get(new_prop);
-wdg_prop_remove(wdg, new_prop);
- }
-
-   proplayout_view_switch(PROPERTY_TYPE);
-   if (old_prop)
- {
-op_desc = prop_op_desc_get(old_prop);
-wdg_prop_add(wdg, old_prop);
-if (_editor_wdg_selected_get() != wdg)
-  {
- objtree_item_selected_set(wdg);
-  }
-propview_item_update(old_prop);
- }
-   /* If old_property == NULL, need to reload widget. */
-   else
- {
-objtree_item_selected_set(wdg);
- }
-   if (op_desc)
- propview_item_selected_set(op_desc);
-   break;
-}
-   case MEMENTO_OBJ_CONTAINER:
-{
-   Object_Container *old_container;
-
-   if (!wdg)
- {
-ERR("wdg not found");
-return EINA_FALSE;
- }
-
-   old_container = memento_command_old_pointer_get(cmd);
-
-   wdg_obj_container_unset(wdg);
-   wdg_obj_container_set(wdg, old_container);
-   break;
-}
-   case MEMENTO_ITEM_CONTAINER_ITEM:
-{
-   Item_Container_Item *old_it;
-
-   if (!wdg)
- {
-ERR("wdg not found");
-

[EGIT] [tools/erigo] master 02/06: Updater: add widget forcing infrastructures

2015-11-09 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=6c70b9e994a162b5be1cf8e2f2756f307a5a

commit 6c70b9e994a162b5be1cf8e2f2756f307a5a
Author: Daniel Zaoui 
Date:   Mon Nov 9 13:11:59 2015 +0200

Updater: add widget forcing infrastructures

This is needed when e.g, an edje file has to be updated in a layout
widget.
Mementos mechanism cannot help for this kind of scenario, as no memento
is created.
---
 src/lib/updater.c | 211 --
 src/lib/updater.h |   8 +++
 2 files changed, 134 insertions(+), 85 deletions(-)

diff --git a/src/lib/updater.c b/src/lib/updater.c
index 69c917d..7a78a81 100644
--- a/src/lib/updater.c
+++ b/src/lib/updater.c
@@ -11,6 +11,13 @@ static Ecore_Idler *_idler = NULL;
 static Eina_List *_ctxs_to_update = NULL;
 
 #define SESSIONS_DATA_KEY "__updater_sessions"
+#define CONTEXT_FORCE_WDGS_KEY "__updater_forced_widgets"
+
+typedef struct _force_info
+{
+   Eid *eid;
+   Updater_Force_Type type;
+} Force_Info;
 
 void
 updater_session_add(Gui_Context *ctx, const Gui_Session *session)
@@ -26,6 +33,21 @@ updater_wake(const Gui_Context *ctx)
_ctxs_to_update = eina_list_append(_ctxs_to_update, ctx);
 }
 
+void
+updater_force(Eid *eid, Updater_Force_Type type)
+{
+   Gui_Widget *wdg = wdg_get(eid);
+   if (!wdg) return;
+   Gui_Context *ctx = (Gui_Context *)wdg_context_get(wdg);
+   Force_Info *info = calloc(1, sizeof(*info));
+   info->eid = eid;
+   info->type = type;
+   Eina_List *infos = gui_context_data_get(ctx, CONTEXT_FORCE_WDGS_KEY);
+   infos = eina_list_append(infos, info);
+   gui_context_data_set(ctx, CONTEXT_FORCE_WDGS_KEY, infos);
+   updater_wake(ctx);
+}
+
 static void
 _eo_add_apply(const Eina_List *sessions, Eid *eid)
 {
@@ -83,110 +105,129 @@ _update_check(void *data EINA_UNUSED)
if (!_ctxs_to_update) return EINA_TRUE;
EINA_LIST_FREE(_ctxs_to_update, ctx)
  {
+Eina_List *sessions = gui_context_data_get(ctx, SESSIONS_DATA_KEY);
 Eina_Bool mem_dir = EINA_TRUE;
 Eina_List *mementos = context_memento_not_updated_list_steal(ctx, 
_dir);
-Eina_List *sessions = gui_context_data_get(ctx, SESSIONS_DATA_KEY);
-Memento *mem;
-EINA_LIST_FREE(mementos, mem)
+if (mementos)
   {
- const Eina_List *itr, *commands;
- Memento_Command *cmd;
-
- commands = memento_commands_get(mem);
- itr = mem_dir ? commands : eina_list_last(commands);
-
- /* According to direction we must iterate forward/backward 
through commands.
-  * Following for loop is opened EINA_LIST_FOREACH and 
EINA_LIST_REVERSE_FOREACH */
- for (cmd = eina_list_data_get(itr);
-  itr;
-  itr = (mem_dir ? eina_list_next(itr) : eina_list_prev(itr)),
-  cmd = eina_list_data_get(itr))
+ Memento *mem;
+ EINA_LIST_FREE(mementos, mem)
{
-  Eid *eid = memento_command_wdg_get(cmd);
-  Gui_Widget *wdg = wdg_get(eid);
-  Memento_Type type = memento_command_type_get(cmd);
-  void *from, *to;
-  if (mem_dir)
-{
-   from = memento_command_old_pointer_get(cmd);
-   to = memento_command_new_pointer_get(cmd);
-}
-  else
-{
-   from = memento_command_new_pointer_get(cmd);
-   to = memento_command_old_pointer_get(cmd);
-}
-  switch(type)
+  const Eina_List *itr, *commands;
+  Memento_Command *cmd;
+
+  commands = memento_commands_get(mem);
+  itr = mem_dir ? commands : eina_list_last(commands);
+
+  /* According to direction we must iterate forward/backward 
through commands.
+   * Following for loop is opened EINA_LIST_FOREACH and 
EINA_LIST_REVERSE_FOREACH */
+  for (cmd = eina_list_data_get(itr);
+itr;
+itr = (mem_dir ? eina_list_next(itr) : 
eina_list_prev(itr)),
+cmd = eina_list_data_get(itr))
 {
- case MEMENTO_WIDGET:
-  {
- if (from)
+   Eid *eid = memento_command_wdg_get(cmd);
+   Gui_Widget *wdg = wdg_get(eid);
+   Memento_Type type = memento_command_type_get(cmd);
+   void *from, *to;
+   if (mem_dir)
+ {
+from = memento_command_old_pointer_get(cmd);
+to = memento_command_new_pointer_get(cmd);
+ }

[EGIT] [tools/erigo] master 05/06: Gui Value: fix string comparison

2015-11-09 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=1a83706673cdd325ef86e2abd05912b0632534e4

commit 1a83706673cdd325ef86e2abd05912b0632534e4
Author: Daniel Zaoui 
Date:   Mon Nov 9 14:27:59 2015 +0200

Gui Value: fix string comparison
---
 src/lib/gui_widget.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/gui_widget.c b/src/lib/gui_widget.c
index f78..589e558 100644
--- a/src/lib/gui_widget.c
+++ b/src/lib/gui_widget.c
@@ -3088,6 +3088,8 @@ gui_value_cmp(const Gui_Value *val1, const Gui_Value 
*val2)
   case GUI_TYPE_ENUM:
   case GUI_TYPE_STRING:
{
+  if (val1->string == val2->string) return EINA_FALSE;
+  if (!val1->string || !val2->string) return EINA_TRUE;
   return strcmp(val1->string, val2->string);
   break;
}

-- 




[EGIT] [tools/erigo] master 06/06: Undo/redo: comment property comparison

2015-11-09 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=8b3162c8de36ae058412c28f4061d7737c3dab44

commit 8b3162c8de36ae058412c28f4061d7737c3dab44
Author: Daniel Zaoui 
Date:   Mon Nov 9 14:29:13 2015 +0200

Undo/redo: comment property comparison

The removed property pointer is still used in editor.c, which leads to a
crash of Erigo.
This will be uncommentable when eid will be used for properties.
---
 src/lib/undoredo.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/undoredo.c b/src/lib/undoredo.c
index 6c30eff..2ac95f5 100644
--- a/src/lib/undoredo.c
+++ b/src/lib/undoredo.c
@@ -372,6 +372,7 @@ memento_finalize(Memento *memento)
break;
 }
}
+#if 0
  if (cmd->type == MEMENTO_PROPERTY)
{
   if (!prop_cmp(cmd->old_ptr, cmd->new_ptr))
@@ -392,6 +393,7 @@ memento_finalize(Memento *memento)
break;
 }
}
+#endif
   }
 if (cmd_del)
   {

-- 




[EGIT] [tools/erigo] master 01/06: Resources: remove useless free

2015-11-09 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=688ddfbd94a60d4215c1333b8e9deb125e7425aa

commit 688ddfbd94a60d4215c1333b8e9deb125e7425aa
Author: Daniel Zaoui 
Date:   Mon Nov 9 13:09:51 2015 +0200

Resources: remove useless free

Free is already generated when the window is deleted
---
 src/bin/gui/rmview.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/bin/gui/rmview.c b/src/bin/gui/rmview.c
index 067d549..7dcfa38 100644
--- a/src/bin/gui/rmview.c
+++ b/src/bin/gui/rmview.c
@@ -27,7 +27,6 @@ static Ecore_Event_Handler *_exe_event_data_handler = NULL;
 
 void rm_win_set(Egui_Layout_Rm_Win_Widgets *rm_win)
 {
-   if (g_rm_win) free(g_rm_win);
g_rm_win = rm_win;
 }
 

-- 




[EGIT] [core/evas_generic_loaders] master 01/01: build: use the same version handling macros as efl and elementary

2015-11-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit ab7d7d7da8e18a5de84fd21bd30c001afc5f5765
Author: Stefan Schmidt 
Date:   Mon Nov 9 16:06:16 2015 +0100

build: use the same version handling macros as efl and elementary

Instead of having our slightly different set of macros here for version
handling switch to the efl.m4 file we are already using.

This annoyed me since I took over the release handling 2 years back.
---
 configure.ac |  41 +-
 m4/efl.m4| 449 +++
 2 files changed, 452 insertions(+), 38 deletions(-)

diff --git a/configure.ac b/configure.ac
index ed0da4c..0db5f25 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,23 +1,5 @@
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-m4_define([v_maj], [1])
-m4_define([v_min], [16])
-m4_define([v_mic], [99])
-dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || 
echo 0) | tr -d '\n']))
-##--   When released, remove the dnl on the below line
-dnl m4_undefine([v_rev])
-##--   When doing snapshots - change soname. remove dnl on below line
-m4_define([relname], [dev])
-dnl m4_define([v_rel], [-release relname])
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], 
[m4_define([v_ver], [v_maj.v_min.v_mic])])
-m4_define([lt_cur], m4_eval(v_maj + v_min))
-m4_define([lt_rev], v_mic)
-m4_define([lt_age], v_min)
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-
-AC_INIT([evas_generic_loaders], [v_ver], 
[enlightenment-de...@lists.sourceforge.net])
+EFL_VERSION([1], [16], [99], [dev])
+AC_INIT([evas_generic_loaders], [efl_version], 
[enlightenment-de...@lists.sourceforge.net])
 AC_PREREQ([2.52])
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_MACRO_DIR([m4])
@@ -27,23 +9,6 @@ AC_CONFIG_HEADERS([config.h])
 AM_INIT_AUTOMAKE([1.6 dist-xz])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
-m4_ifdef([v_rel], , [m4_define([v_rel], [])])
-AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version])
-AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version])
-AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version])
-AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
-version_info="lt_cur:lt_rev:lt_age"
-release_info="v_rel"
-AC_SUBST(version_info)
-AC_SUBST(release_info)
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-VMAJ=v_maj
-AC_SUBST(VMAJ)
-
 ### Needed information
 
 AC_CANONICAL_BUILD
@@ -266,7 +231,7 @@ echo
 echo
 echo
 echo ""
-echo "$PACKAGE $VERSION"
+echo "$PACKAGE_NAME $PACKAGE_VERSION"
 echo ""
 echo
 echo
diff --git a/m4/efl.m4 b/m4/efl.m4
new file mode 100644
index 000..3598ce7
--- /dev/null
+++ b/m4/efl.m4
@@ -0,0 +1,449 @@
+dnl file to manage modules in efl
+
+dnl EFL_VERSION(major, minor, micro, release)
+dnl This setup EFL version information and should be called BEFORE AC_INIT().
+dnl
+dnl release parameter is 'dev' to use from SVN or libtool -release field.
+dnl It may be empty if not dev (svn/live build) and no -release is to be used.
+dnl
+dnl Examples:
+dnl EFL_VERSION(1, 7, 99, dev)
+dnl EFL_VERSION(1, 7, 99, ver-1234)
+dnl This will define couple of m4 symbols:
+dnl v_maj = given major number (first parameter)
+dnl v_min = given minor number (second parameter)
+dnl v_mic = given micro number (third parameter)
+dnl v_rev = if release, it's 0, otherwise it's dev_version.
+dnl v_rel = if release, it's -release followed by fourth parameter,
+dnl otherwise it's empty. (mostly for libtool)
+dnl efl_version = if release, it's major.minor.micro, otherwise it's
+dnl major.minor.micro.dev_version
+dnl dev_version = development version (svn revision).
+dnl def_build_profile = dev or release based on 'dev' release parameter.
+AC_DEFUN([EFL_VERSION],
+[dnl
+m4_define([v_maj], [$1])dnl
+m4_define([v_min], [$2])dnl
+m4_define([v_mic], [$3])dnl
+m4_define([dev_version], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || 
echo 0) | tr -d '\n']))dnl
+m4_define([v_rev], m4_if($4, dev, [dev_version], [0]))dnl
+m4_define([v_rel], [])dnl
+m4_define([def_build_profile], m4_if($4, dev, [dev], [release]))dnl
+m4_define([efl_version], m4_if($4, dev, [v_maj.v_min.v_mic.v_rev], 
[v_maj.v_min.v_mic]))dnl
+dnl 

[EGIT] [tools/erigo] master 04/06: Undo/redo: add debug prints

2015-11-09 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=5bd4e4f904ce40c84753aa6db3255901235e4c8f

commit 5bd4e4f904ce40c84753aa6db3255901235e4c8f
Author: Daniel Zaoui 
Date:   Mon Nov 9 14:27:34 2015 +0200

Undo/redo: add debug prints
---
 src/lib/undoredo.c | 46 --
 1 file changed, 44 insertions(+), 2 deletions(-)

diff --git a/src/lib/undoredo.c b/src/lib/undoredo.c
index d6715c0..6c30eff 100644
--- a/src/lib/undoredo.c
+++ b/src/lib/undoredo.c
@@ -2,6 +2,13 @@
 #include "egui_log.h"
 #include "gui_widget.h"
 
+#define DEBUGON 1
+#ifdef DEBUGON
+# define undo_debug(fmt, args...) fprintf(stderr, __FILE__":%s/%d : " fmt 
"\n", __FUNCTION__, __LINE__, ##args)
+#else
+# define undo_debug(x...) do { } while (0)
+#endif
+
 struct _Memento_Command
 {
Eid *eid; // wdg, action...
@@ -72,6 +79,25 @@ struct _Memento
Eina_Bool finalized : 1;
 };
 
+static const char *
+_memento_type_get_as_string(Memento_Type type)
+{
+   switch(type)
+ {
+  case MEMENTO_PROPERTY:  return "Property memento";
+  case MEMENTO_ACTION:return "Action memento";
+  case MEMENTO_CALLBACK:  return "Callback memento";
+  case MEMENTO_CALLBACK_ADD_DEL:  return "Callback add/del memento";
+  case MEMENTO_OBJ_CONTAINER: return "Object container memento";
+  case MEMENTO_ITEM_CONTAINER_ITEM:   return "Item container memento";
+  case MEMENTO_WIDGET:return "Widget add/del memento";
+  case MEMENTO_WIDGET_PARENT: return "Widget parent memento";
+  case MEMENTO_WIDGET_NAME:   return "Widget name memento";
+  case MEMENTO_WIDGET_PUBLIC: return "Widget public memento";
+  default:return NULL;
+ }
+}
+
 /* Create new Memento Item */
 Eina_Bool
 memento_command_add(Eid *eid, Memento_Type type, void *old_pointer, void 
*new_pointer)
@@ -294,6 +320,10 @@ memento_finalize(Memento *memento)
 cmd->eid == cmd_next->eid &&
 cmd->new_ptr == cmd_next->old_ptr)
 {
+   undo_debug("Merging %s on %p: %p -> %p -> %p",
+ _memento_type_get_as_string(cmd->type),
+ cmd->eid, cmd->old_ptr, cmd->new_ptr,
+ cmd_next->new_ptr);
/* Swap pointers in order to properly unref data. */
void *tmp = cmd->new_ptr;
cmd->new_ptr = cmd_next->new_ptr;
@@ -307,6 +337,9 @@ memento_finalize(Memento *memento)
}
  if (cmd->old_ptr == cmd->new_ptr)
{
+  undo_debug("Deleting %s on %p: %p -> %p",
+_memento_type_get_as_string(cmd->type),
+cmd->eid, cmd->old_ptr, cmd->new_ptr);
   cmd_del = EINA_TRUE;
   break;
}
@@ -319,7 +352,7 @@ memento_finalize(Memento *memento)
   to_list = obj_container_contents_list_get(cmd->new_ptr);
   if (eina_list_count(from_list) != eina_list_count(to_list)) 
continue;
   cmd_del = EINA_TRUE;
-  while (from_list)
+  while (from_list && cmd_del)
 {
if 
(obj_container_item_eid_get(eina_list_data_get(from_list)) !=

obj_container_item_eid_get(eina_list_data_get(to_list)))
@@ -331,7 +364,13 @@ memento_finalize(Memento *memento)
from_list = eina_list_next(from_list);
to_list = eina_list_next(to_list);
 }
-  if (cmd_del) break;
+  if (cmd_del)
+{
+   undo_debug("Deleting %s on %p: %p -> %p",
+ _memento_type_get_as_string(cmd->type),
+ cmd->eid, cmd->old_ptr, cmd->new_ptr);
+   break;
+}
}
  if (cmd->type == MEMENTO_PROPERTY)
{
@@ -347,6 +386,9 @@ memento_finalize(Memento *memento)
wdg_prop_remove(wdg, cmd->new_ptr);
wdg_prop_add(wdg, cmd->old_ptr);
cmd_del = EINA_TRUE;
+   undo_debug("Deleting %s on %p: %p -> %p",
+ _memento_type_get_as_string(cmd->type),
+ cmd->eid, cmd->old_ptr, cmd->new_ptr);
break;
 }
}

-- 




[EGIT] [tools/erigo] master 03/06: Use updater to force layout reloading

2015-11-09 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=6a2a558f39acfefeefc3b1895040ead0bb90d254

commit 6a2a558f39acfefeefc3b1895040ead0bb90d254
Author: Daniel Zaoui 
Date:   Mon Nov 9 13:13:52 2015 +0200

Use updater to force layout reloading
---
 src/bin/gui/editor.c | 13 +++--
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/bin/gui/editor.c b/src/bin/gui/editor.c
index d72c78b..352de07 100644
--- a/src/bin/gui/editor.c
+++ b/src/bin/gui/editor.c
@@ -3207,7 +3207,7 @@ editor_shutdown()
 static void
 _wdg_update(void *data, Eid *subject_id EINA_UNUSED)
 {
-   _wdg_parent_win_reload(data);
+   updater_force(data, UPDATER_PROPERTIES_FORCE);
 }
 
 /* onChange callback for all properties edit fields.
@@ -3236,6 +3236,7 @@ _prop_update_from_propview(void *data EINA_UNUSED, Eo 
*obj, const Eo_Event_Descr
/* propdata box, change its color then value changed from default. */
Eo *box = pfd->it_data->box;
 
+   Eid *wid = wdg_eid_get(wdg);
/* If property doesn't exist, create it with some default values. */
if (!prop)
  {
@@ -3343,7 +3344,7 @@ _prop_update_from_propview(void *data EINA_UNUSED, Eo 
*obj, const Eo_Event_Descr
 else if (type == GUI_TYPE_FILE)
   {
  Eid *old_eid = EID_ID_GET(val);
- if (old_eid) observer_del(old_eid, _wdg_update, (void *)wdg);
+ if (old_eid) observer_del(old_eid, _wdg_update, (void *)wid);
  if (!strcmp(new_enum_value, PROP_HOVERSEL_NONE_VALUE))
{
   gui_value_name_id_set(val, type, 0);
@@ -3351,7 +3352,7 @@ _prop_update_from_propview(void *data EINA_UNUSED, Eo 
*obj, const Eo_Event_Descr
  else
{
   Eid *new_id = gui_context_eid_get_by_name(ctx, 
new_enum_value);
-  observer_add(new_id, _wdg_update, (void *)wdg);
+  observer_add(new_id, _wdg_update, (void *)wid);
   gui_value_name_id_set(val, type, new_id);
}
  reload_win = EINA_TRUE;
@@ -3359,7 +3360,7 @@ _prop_update_from_propview(void *data EINA_UNUSED, Eo 
*obj, const Eo_Event_Descr
 else if (type == GUI_TYPE_THEME)
   {
  Eid *old_eid = EID_ID_GET(val);
- if (old_eid) observer_del(old_eid, _wdg_update, (void *)wdg);
+ if (old_eid) observer_del(old_eid, _wdg_update, (void *)wid);
  if (!strcmp(new_enum_value, PROP_HOVERSEL_NONE_VALUE))
{
   gui_value_name_id_set(val, type, 0);
@@ -3370,7 +3371,7 @@ _prop_update_from_propview(void *data EINA_UNUSED, Eo 
*obj, const Eo_Event_Descr
   Eid *new_id = 
gui_context_eid_get_by_name(global_context_get(), new_enum_value);
   if (!new_id)
 new_id = gui_context_eid_get_by_name(ctx, new_enum_value);
-  observer_add(new_id, _wdg_update, (void *)wdg);
+  observer_add(new_id, _wdg_update, (void *)wid);
   gui_value_name_id_set(val, type, new_id);
}
  reload_win = EINA_TRUE;
@@ -4242,7 +4243,7 @@ _observers_init(const Gui_Context *ctx)
  case GUI_TYPE_OBJECT:
  case GUI_TYPE_CB:
  case GUI_TYPE_FILE:
-observer_add(EID_ID_GET(value), _wdg_update, (void 
*)wdg);
+observer_add(EID_ID_GET(value), _wdg_update, (void 
*)wdg_id);
 break;
  default:
 break;

-- 




[EGIT] [core/efl] master 01/01: Eo: Optimise event callback call

2015-11-09 Thread Jérémy Zurcher
jeyzu pushed a commit to branch master.

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

commit 4b116627c24a43248abf5a34a391241b1c0cf983
Author: Jérémy Zurcher 
Date:   Mon Nov 9 15:03:03 2015 +0100

Eo: Optimise event callback call

 check if the event is frozen before walking the event list
---
 src/lib/eo/eo_base_class.c | 53 ++
 1 file changed, 25 insertions(+), 28 deletions(-)

diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index f99ca37..daf7a9d 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -671,48 +671,45 @@ _eo_base_event_callback_call(Eo *obj_id, Eo_Base_Data *pd,
 
pd->walking_list++;
 
+   if (!desc->unfreezable && (event_freeze_count || pd->event_freeze_count))
+ goto end;
+
for (cb = pd->callbacks; cb; cb = cb->next)
  {
-if (!cb->delete_me)
+if (cb->delete_me)
+  continue;
+
+if (cb->func_array)
   {
- if (cb->func_array)
-   {
-  const Eo_Callback_Array_Item *it;
+ const Eo_Callback_Array_Item *it;
 
-  for (it = cb->items.item_array; it->func; it++)
-{
-   if (!_cb_desc_match(it->desc, desc))
-  continue;
-   if (!it->desc->unfreezable &&
-   (event_freeze_count || pd->event_freeze_count))
-  continue;
-
-   /* Abort callback calling if the func says so. */
-   if (!it->func((void *) cb->func_data, obj_id, desc,
-(void *) event_info))
- {
-ret = EINA_FALSE;
-goto end;
- }
-}
-   }
- else
+ for (it = cb->items.item_array; it->func; it++)
{
-  if (!_cb_desc_match(cb->items.item.desc, desc))
-continue;
-  if (!cb->items.item.desc->unfreezable &&
-  (event_freeze_count || pd->event_freeze_count))
+  if (!_cb_desc_match(it->desc, desc))
 continue;
 
   /* Abort callback calling if the func says so. */
-  if (!cb->items.item.func((void *) cb->func_data, obj_id, 
desc,
-   (void *) event_info))
+  if (!it->func((void *) cb->func_data, obj_id, desc,
+(void *) event_info))
 {
ret = EINA_FALSE;
goto end;
 }
}
   }
+else
+  {
+ if (!_cb_desc_match(cb->items.item.desc, desc))
+   continue;
+
+ /* Abort callback calling if the func says so. */
+ if (!cb->items.item.func((void *) cb->func_data, obj_id, desc,
+  (void *) event_info))
+   {
+  ret = EINA_FALSE;
+  goto end;
+   }
+  }
  }
 
 end:

-- 




[EGIT] [tools/erigo] master 02/03: Fix name change in Desc View

2015-11-09 Thread Yakov Goldberg
yakov pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=6ad73cb8855ae58ea0dfb734890c3cf80e07762a

commit 6ad73cb8855ae58ea0dfb734890c3cf80e07762a
Author: Yakov Goldberg 
Date:   Mon Nov 9 15:25:04 2015 +0200

Fix name change in Desc View
---
 src/bin/gui/descview.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/gui/descview.c b/src/bin/gui/descview.c
index 1ef36e8..3bd2528 100644
--- a/src/bin/gui/descview.c
+++ b/src/bin/gui/descview.c
@@ -53,7 +53,7 @@ _wdg_name_change_cb(void *data, Eo *obj, const 
Eo_Event_Description *desc EINA_U
eo_do(obj, new_name = elm_obj_widget_part_text_get(NULL));
old_name = strdup(wdg_name_get(wdg));
/* If name change was successful, save memento. */
-   if (widget_name_change(wdg, new_name))
+   if (eid_rename(wdg_eid_get(wdg), new_name))
  {
 memento_command_add(wdg_eid_get(wdg), MEMENTO_WIDGET_NAME, (void *) 
old_name, (void *) new_name);
 context_memento_finalize(_active_context_get());

-- 




[EGIT] [core/efl] master 01/01: efl: fix build out of tree

2015-11-09 Thread Gustavo Lima Chaves
glima pushed a commit to branch master.

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

commit f74ab7f7d27e7b2ab994563404e0b29f13f9736d
Author: Gustavo Lima Chaves 
Date:   Tue Nov 10 00:34:37 2015 -0200

efl: fix build out of tree

@fix
---
 src/Makefile_Ector.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Makefile_Ector.am b/src/Makefile_Ector.am
index be340cf..f6fe1e1 100644
--- a/src/Makefile_Ector.am
+++ b/src/Makefile_Ector.am
@@ -106,7 +106,7 @@ lib_ector_libector_la_CPPFLAGS = 
-I$(top_builddir)/src/lib/efl \
 -I$(top_builddir)/src/lib/ector \
 -I$(top_builddir)/src/lib/ector/cairo \
 -I$(top_builddir)/src/lib/ector/software \
--I$(top_builddir)/src/static_libs/freetype \
+-I$(top_srcdir)/src/static_libs/freetype \
 @ECTOR_CFLAGS@ \
 -DPACKAGE_BIN_DIR=\"$(bindir)\" \
 -DPACKAGE_LIB_DIR=\"$(libdir)\" \

-- 




[EGIT] [core/efl] master 01/01: efl - fix eina after misnaming of piblic api

2015-11-09 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 43ef6152eda0ac0e4ef3aee55b25264f12e4e64b
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Nov 10 11:56:01 2015 +0900

efl - fix eina after misnaming of piblic api

this fixes 3d77f55f910a844b45019238ed458bf62e6c1c20 which added
eina_normal3_matrix_get in the headers as the api, but the actual func
was eina_normal_matrix3_get.
---
 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 a7bdddf..90493d3 100644
--- a/src/lib/eina/eina_matrix.c
+++ b/src/lib/eina/eina_matrix.c
@@ -1144,7 +1144,7 @@ eina_matrix3_scale_transform_set(Eina_Matrix3 *out, 
double s_x, double s_y)
 }
 
 EAPI void
-eina_normal_matrix3_get(Eina_Matrix3 *out, const Eina_Matrix4 *m)
+eina_normal3_matrix_get(Eina_Matrix3 *out, const Eina_Matrix4 *m)
 {
/* Normal matrix is a transposed matrix of inversed modelview.
 * And we need only upper-left 3x3 terms to work with. */

-- 




[EGIT] [core/enlightenment] master 02/02: enforce fullscreen client stacking during nocomp end IFF client is fullscreen

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 945f9506cf7377bf01de3a6a87a669be0f290fb3
Author: Mike Blumenkrantz 
Date:   Mon Nov 9 13:20:50 2015 -0500

enforce fullscreen client stacking during nocomp end IFF client is 
fullscreen

previous behavior would result in the nocomp window becoming stuck at a 
fullscreen
layer when ending nocomp, even if the client was no longer fullscreen

fix T2827
---
 src/bin/e_comp.c | 11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 655186c..ce2d1e5 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -357,12 +357,15 @@ _e_comp_nocomp_end(void)
 E_Layer layer = MAX(e_comp->nocomp_ec->saved.layer, 
E_LAYER_CLIENT_NORMAL);
 Eina_Bool fs;
 
-if (!e_config->allow_above_fullscreen)
-  layer = E_LAYER_CLIENT_FULLSCREEN;
-else if (e_config->mode.presentation)
-  layer = E_LAYER_CLIENT_TOP;
 fs = e_comp->nocomp_ec->fullscreen;
 e_comp->nocomp_ec->fullscreen = 0;
+if (fs)
+  {
+ if (!e_config->allow_above_fullscreen)
+   layer = E_LAYER_CLIENT_FULLSCREEN;
+ else if (e_config->mode.presentation)
+   layer = E_LAYER_CLIENT_TOP;
+  }
 evas_object_layer_set(e_comp->nocomp_ec->frame, layer);
 e_comp->nocomp_ec->fullscreen = fs;
  }

-- 




[EGIT] [core/enlightenment] master 01/02: disable client menu stacking functions for unstackable windows

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 9ffef78188b523a3de594a1e99f8f8973ce872fe
Author: Mike Blumenkrantz 
Date:   Mon Nov 9 13:11:26 2015 -0500

disable client menu stacking functions for unstackable windows

any client stacked higher than E_LAYER_CLIENT_ABOVE should never be
user-stacked
---
 src/bin/e_int_client_menu.c | 29 -
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/src/bin/e_int_client_menu.c b/src/bin/e_int_client_menu.c
index f8508a7..f2a1df1 100644
--- a/src/bin/e_int_client_menu.c
+++ b/src/bin/e_int_client_menu.c
@@ -156,18 +156,21 @@ e_int_client_menu_create(E_Client *ec)
 e_menu_item_submenu_pre_callback_set(mi, _e_client_menu_cb_align_pre, 
ec);
  }
 
-   mi = e_menu_item_new(m);
-   e_menu_item_label_set(mi, _("Always on Top"));
-   e_menu_item_check_set(mi, 1);
-   e_menu_item_toggle_set(mi, (ec->layer == E_LAYER_CLIENT_ABOVE ? 1 : 0));
-   if (ec->layer == E_LAYER_CLIENT_ABOVE)
- e_menu_item_callback_set(mi, _e_client_menu_cb_normal, ec);
-   else
- e_menu_item_callback_set(mi, _e_client_menu_cb_on_top, ec);
-   e_menu_item_icon_edje_set(mi,
- e_theme_edje_file_get("base/theme/borders",
-   
"e/widgets/border/default/stack_on_top"),
- "e/widgets/border/default/stack_on_top");
+   if (ec->layer <= E_LAYER_CLIENT_ABOVE)
+ {
+mi = e_menu_item_new(m);
+e_menu_item_label_set(mi, _("Always on Top"));
+e_menu_item_check_set(mi, 1);
+e_menu_item_toggle_set(mi, (ec->layer == E_LAYER_CLIENT_ABOVE ? 1 : 
0));
+if (ec->layer == E_LAYER_CLIENT_ABOVE)
+  e_menu_item_callback_set(mi, _e_client_menu_cb_normal, ec);
+else
+  e_menu_item_callback_set(mi, _e_client_menu_cb_on_top, ec);
+e_menu_item_icon_edje_set(mi,
+  e_theme_edje_file_get("base/theme/borders",
+
"e/widgets/border/default/stack_on_top"),
+  "e/widgets/border/default/stack_on_top");
+ }
 
if (!ec->lock_user_sticky)
  {
@@ -790,7 +793,7 @@ _e_client_menu_cb_window_pre(void *data, E_Menu *m 
EINA_UNUSED, E_Menu_Item *mi)
submi = e_menu_item_new(subm);
e_menu_item_separator_set(submi, 1);
 
-   if ((!ec->lock_user_stacking) && (!ec->fullscreen))
+   if ((!ec->lock_user_stacking) && (!ec->fullscreen) && (ec->layer <= 
E_LAYER_CLIENT_ABOVE))
  {
 submi = e_menu_item_new(subm);
 e_menu_item_label_set(submi, _("Stacking"));

-- 




[EGIT] [core/emotion_generic_players] master 01/02: configure: Switch to dev mode again. Merge window for 1.17 is open now

2015-11-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit c78c1b09034dbfda0446a8d6324e90a0f0335d30
Author: Stefan Schmidt 
Date:   Mon Nov 9 11:47:13 2015 +0100

configure: Switch to dev mode again. Merge window for 1.17 is open now
---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index c75d488..a526807 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,12 +2,12 @@
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 m4_define([v_maj], [1])
 m4_define([v_min], [16])
-m4_define([v_mic], [0])
+m4_define([v_mic], [99])
 dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || 
echo 0) | tr -d '\n']))
 ##--   When released, remove the dnl on the below line
 dnl m4_undefine([v_rev])
 ##--   When doing snapshots - change soname. remove dnl on below line
-m4_define([relname], [release])
+m4_define([relname], [dev])
 dnl m4_define([v_rel], [-release relname])
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])],

-- 




[EGIT] [core/emotion_generic_players] master 02/02: build: use the same version handling macros as efl and elementary

2015-11-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit ad1d91a8ef653311332a56e77b363728c8a2937a
Author: Stefan Schmidt 
Date:   Mon Nov 9 16:10:23 2015 +0100

build: use the same version handling macros as efl and elementary

Instead of having our slightly different set of macros here for version
handling switch to the efl.m4 file we are already using.

This annoyed me since I took over the release handling 2 years back.
---
 configure.ac |  23 +--
 m4/efl.m4| 449 +++
 2 files changed, 451 insertions(+), 21 deletions(-)

diff --git a/configure.ac b/configure.ac
index a526807..cfd9156 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,24 +1,5 @@
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-m4_define([v_maj], [1])
-m4_define([v_min], [16])
-m4_define([v_mic], [99])
-dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || 
echo 0) | tr -d '\n']))
-##--   When released, remove the dnl on the below line
-dnl m4_undefine([v_rev])
-##--   When doing snapshots - change soname. remove dnl on below line
-m4_define([relname], [dev])
-dnl m4_define([v_rel], [-release relname])
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])],
-[m4_define([v_ver], [v_maj.v_min.v_mic])])
-m4_define([lt_cur], m4_eval(v_maj + v_min))
-m4_define([lt_rev], v_mic)
-m4_define([lt_age], v_min)
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-
-AC_INIT([emotion_generic_players], [v_ver], 
[enlightenment-de...@lists.sourceforge.net])
+EFL_VERSION([1], [16], [99], [dev])
+AC_INIT([emotion_generic_players], [efl_version], 
[enlightenment-de...@lists.sourceforge.net])
 AC_PREREQ([2.59])
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_MACRO_DIR([m4])
diff --git a/m4/efl.m4 b/m4/efl.m4
new file mode 100644
index 000..3598ce7
--- /dev/null
+++ b/m4/efl.m4
@@ -0,0 +1,449 @@
+dnl file to manage modules in efl
+
+dnl EFL_VERSION(major, minor, micro, release)
+dnl This setup EFL version information and should be called BEFORE AC_INIT().
+dnl
+dnl release parameter is 'dev' to use from SVN or libtool -release field.
+dnl It may be empty if not dev (svn/live build) and no -release is to be used.
+dnl
+dnl Examples:
+dnl EFL_VERSION(1, 7, 99, dev)
+dnl EFL_VERSION(1, 7, 99, ver-1234)
+dnl This will define couple of m4 symbols:
+dnl v_maj = given major number (first parameter)
+dnl v_min = given minor number (second parameter)
+dnl v_mic = given micro number (third parameter)
+dnl v_rev = if release, it's 0, otherwise it's dev_version.
+dnl v_rel = if release, it's -release followed by fourth parameter,
+dnl otherwise it's empty. (mostly for libtool)
+dnl efl_version = if release, it's major.minor.micro, otherwise it's
+dnl major.minor.micro.dev_version
+dnl dev_version = development version (svn revision).
+dnl def_build_profile = dev or release based on 'dev' release parameter.
+AC_DEFUN([EFL_VERSION],
+[dnl
+m4_define([v_maj], [$1])dnl
+m4_define([v_min], [$2])dnl
+m4_define([v_mic], [$3])dnl
+m4_define([dev_version], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || 
echo 0) | tr -d '\n']))dnl
+m4_define([v_rev], m4_if($4, dev, [dev_version], [0]))dnl
+m4_define([v_rel], [])dnl
+m4_define([def_build_profile], m4_if($4, dev, [dev], [release]))dnl
+m4_define([efl_version], m4_if($4, dev, [v_maj.v_min.v_mic.v_rev], 
[v_maj.v_min.v_mic]))dnl
+dnl m4_define([efl_version], [v_maj.v_min.v_mic])dnl
+])
+
+dnl EFL_COLOR
+dnl will check if terminal supports color and if color is wanted by user.
+dnl
+dnl Used Variables:
+dnl WANT_COLOR: if no, forces no color output.
+dnl TERM: used to check if color should be enabled.
+dnl
+dnl Defined Variables:
+dnl COLOR_YES: to be used in positive/yes conditions
+dnl COLOR_NO: to be used in negative/no conditions
+dnl COLOR_OTHER: to be used to highlight some other condition
+dnl COLOR_RESET: to reset color
+dnl want_color: yes or no
+AC_DEFUN([EFL_COLOR],
+[dnl
+case "$TERM" in
+   
xterm|xterm-color|xterm-256color|Eterm|aterm|kterm|rxvt*|screen|gnome|interix)
+  want_color="${WANT_COLOR:-yes}"
+  ;;
+   *)
+  want_color="no"
+  ;;
+esac
+
+### echo compatibility
+
+## the BSD echo does not have the -e option (it is the default behaviour)
+echo_e=
+if test "`echo -e x`" = "x"; then
+   echo_e=-e
+fi
+AC_SUBST([ECHO_E], [${echo_e}])
+
+if test "${want_color}" = "yes"; then
+   COLOR_YES=`echo $echo_e "\033@<:@1;32m"`
+   COLOR_NO=`echo $echo_e "\033@<:@1;31m"`
+   COLOR_OTHER=`echo $echo_e "\033@<:@1;36m"`
+   

[EGIT] [core/enlightenment] enlightenment-0.19 01/23: update csd using deltas of previous values

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 1529bebcb0b500cc853d8850337e1a62fa010fe6
Author: Mike Blumenkrantz 
Date:   Mon Oct 19 17:19:32 2015 -0400

update csd using deltas of previous values

when applying new csd to a window which already has csd, the previous
csd must be removed in order to apply any new csd offsets in order to
avoid unwanted moving/resizing
---
 src/bin/e_comp_object.c | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 3fe9296..aa18c16 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2798,21 +2798,21 @@ e_comp_object_frame_geometry_set(Evas_Object *obj, int 
l, int r, int t, int b)
API_ENTRY;
if ((cw->client_inset.l == l) && (cw->client_inset.r == r) &&
(cw->client_inset.t == t) && (cw->client_inset.b == b)) return;
-   cw->client_inset.l = l;
-   cw->client_inset.r = r;
-   cw->client_inset.t = t;
-   cw->client_inset.b = b;
cw->client_inset.calc = l || r || t || b;
eina_stringshare_replace(>frame_theme, "borderless");
-   cw->ec->w += l + r;
-   cw->ec->h += t + b;
+   cw->ec->w += (l + r) - (cw->client_inset.l + cw->client_inset.r);
+   cw->ec->h += (t + b) - (cw->client_inset.t + cw->client_inset.b);
if (!cw->ec->new_client)
  {
-cw->ec->x -= l;
-cw->ec->y -= t;
+cw->ec->x -= l - cw->client_inset.l;
+cw->ec->y -= t - cw->client_inset.t;
 cw->ec->changes.pos = cw->ec->changes.size = 1;
 EC_CHANGED(cw->ec);
  }
+   cw->client_inset.l = l;
+   cw->client_inset.r = r;
+   cw->client_inset.t = t;
+   cw->client_inset.b = b;
 }
 
 E_API Eina_Bool

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 11/23: adjust efm multi-icon drag positioning by the current pan coords

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 88726e8df35d966b6587ace70d8d08a25e99dc48
Author: Mike Blumenkrantz 
Date:   Thu Nov 5 15:29:34 2015 -0500

adjust efm multi-icon drag positioning by the current pan coords

fixes positioning when dragging multiple icons after scrolling
---
 src/bin/e_fm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c
index 6e1635f..f547870 100644
--- a/src/bin/e_fm.c
+++ b/src/bin/e_fm.c
@@ -7688,7 +7688,7 @@ _e_fm2_cb_icon_mouse_move(void *data, Evas *e __UNUSED__, 
Evas_Object *obj __UNU
  d = e_drag_new(c, 0, 0, drag_types, 1,
 sel, sel_length, NULL, _e_fm2_cb_drag_finished);
  if (layout)
-   d->x = ic->sd->x, d->y = ic->sd->y;
+   d->x = ic->sd->x - ic->sd->pos.x, d->y = ic->sd->y - 
ic->sd->pos.y;
  else
d->x = ic->x + ic->sd->x - ic->sd->pos.x, d->y = ic->y + 
ic->sd->y - ic->sd->pos.y;
 #ifndef HAVE_WAYLAND_ONLY

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 19/23: toggle x11 client iconic/mapped state based on mirror visibility

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 3e5d970c2fdc34919c5d8088980e31a60492000f
Author: Mike Blumenkrantz 
Date:   Sat Nov 7 13:10:02 2015 -0500

toggle x11 client iconic/mapped state based on mirror visibility

in order to continue rendering an iconic client without breaking icccm,
it's necessary to map the client's window again and unset iconic state
whenever rendering is needed, then re-set states when rendering
stops

ref T2788
---
 src/bin/e_comp_x.c | 30 +++---
 src/bin/e_comp_x.h |  1 +
 2 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 4f89ca6..1ac8521 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -945,9 +945,10 @@ _e_comp_x_client_hide(E_Client *ec)
if ((!ec->iconic) && (!ec->override))
  ecore_x_window_prop_card32_set(e_client_util_win_get(ec), E_ATOM_MAPPED, 
, 1);
 
-   if (ec->unredirected_single || ec->iconic)
+   ec->comp_data->iconic = ec->iconic && 
(!e_comp_object_mirror_visibility_check(ec->frame));
+   if (ec->unredirected_single || ec->comp_data->iconic)
  ecore_x_window_hide(_e_comp_x_client_window_get(ec));
-   if (ec->iconic)
+   if (ec->comp_data->iconic)
  e_hints_window_iconic_set(ec);
 }
 
@@ -979,10 +980,11 @@ _e_comp_x_client_show(E_Client *ec)
ecore_x_window_shadow_tree_flush();
if (!ec->comp_data->need_reparent)
  ecore_x_window_show(win);
-   if (ec->unredirected_single || ec->iconic)
+   if (ec->unredirected_single || ec->comp_data->iconic)
  {
 e_pixmap_clear(ec->pixmap);
 ecore_x_window_show(_e_comp_x_client_window_get(ec));
+ec->comp_data->iconic = 0;
  }
if (!ec->override)
  e_hints_window_visible_set(ec);
@@ -1152,6 +1154,26 @@ _e_comp_x_resize_request(void *data EINA_UNUSED, int 
type EINA_UNUSED, Ecore_X_E
 }
 
 static void
+_e_comp_x_evas_mirror_hidden(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
+{
+   E_Client *ec = data;
+
+   if ((!ec->iconic) || (!ec->comp_data->iconic)) return;
+   if (ec->comp_data)
+ _e_comp_x_client_hide(ec);
+}
+
+static void
+_e_comp_x_evas_mirror_visible(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
+{
+   E_Client *ec = data;
+
+   if ((!ec->iconic) || ec->comp_data->iconic) return;
+   if (ec->comp_data)
+ _e_comp_x_client_show(ec);
+}
+
+static void
 _e_comp_x_client_evas_init(E_Client *ec)
 {
if (ec->comp_data->evas_init) return;
@@ -1173,6 +1195,8 @@ _e_comp_x_client_evas_init(E_Client *ec)
evas_object_smart_callback_add(ec->frame, "color_set", 
_e_comp_x_evas_color_set_cb, ec);
evas_object_smart_callback_add(ec->frame, "fullscreen_zoom", 
_e_comp_x_evas_fullscreen_zoom_cb, ec);
evas_object_smart_callback_add(ec->frame, "unfullscreen_zoom", 
_e_comp_x_evas_unfullscreen_zoom_cb, ec);
+   evas_object_smart_callback_add(ec->frame, "visibility_force", 
_e_comp_x_evas_mirror_visible, ec);
+   evas_object_smart_callback_add(ec->frame, "visibility_normal", 
_e_comp_x_evas_mirror_hidden, ec);
/* force apply this since we haven't set up our smart cb previously */
_e_comp_x_evas_comp_hidden_cb(ec, NULL, NULL);
 }
diff --git a/src/bin/e_comp_x.h b/src/bin/e_comp_x.h
index 033f31a..3960218 100644
--- a/src/bin/e_comp_x.h
+++ b/src/bin/e_comp_x.h
@@ -107,6 +107,7 @@ struct _E_Comp_X_Client_Data
Eina_Bool unredirected_single : 1;
unsigned int parent_activate_count; //number of times a win has activated 
itself when parent was focused
Eina_Bool fetch_gtk_frame_extents : 1;
+   Eina_Bool iconic : 1;
 };
 
 EINTERN Eina_Bool e_comp_x_init(void);

-- 




[EGIT] [core/efl] master 01/01: eina: add API eina_strftime

2015-11-09 Thread Shilpa Singh
cedric pushed a commit to branch master.

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

commit 0c1bb7d7b3d4e9a91ae33455ab761d7e9405c2df
Author: Shilpa Singh 
Date:   Mon Nov 9 12:42:48 2015 -0800

eina: add API eina_strftime

Summary:
Add new API eina_strftime API in eina_str

@feature

Test Plan: test case and example also updated

Reviewers: tasn, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3148

Signed-off-by: Cedric BAIL 
---
 AUTHORS |  1 +
 src/examples/eina/eina_str_01.c | 11 ++-
 src/lib/eina/eina_str.c | 33 +
 src/lib/eina/eina_str.h | 26 ++
 src/tests/eina/eina_test_str.c  | 19 +++
 5 files changed, 89 insertions(+), 1 deletion(-)

diff --git a/AUTHORS b/AUTHORS
index eab2011..f714c39 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -53,6 +53,7 @@ ChunEon Park (Hermet) 
 Rajeev Ranjan (Rajeev)  
 Subodh Kumar 
 Michelle Legrand 
+Shilpa Singh  
 
 Eet
 ---
diff --git a/src/examples/eina/eina_str_01.c b/src/examples/eina/eina_str_01.c
index 25fe75a..fbe2cf0 100644
--- a/src/examples/eina/eina_str_01.c
+++ b/src/examples/eina/eina_str_01.c
@@ -14,6 +14,9 @@ int main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
char *part2 = "There are many copies. And they have a plan.";
char **arr;
int i;
+   char *time_arr;
+   time_t curr_time;
+   struct tm *info;
 
eina_init();
 
@@ -58,7 +61,13 @@ int main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
eina_strlcat(str, "humans", 14);
printf("%s\n", str);
free(str);
-   
+
+   curr_time = time(NULL);
+   info = localtime(_time);
+   time_arr = eina_strftime("%d/%m/%Y", info);
+   printf("Today's Date: %s\n", time_arr);
+   free(time_arr);
+
eina_shutdown();
 
return 0;
diff --git a/src/lib/eina/eina_str.c b/src/lib/eina/eina_str.c
index c3d9c4c..952f6ce 100644
--- a/src/lib/eina/eina_str.c
+++ b/src/lib/eina/eina_str.c
@@ -374,6 +374,39 @@ eina_strlcat(char *dst, const char *src, size_t siz)
return(dlen + (s - src)); /* count does not include NUL */
 }
 
+EAPI char *
+eina_strftime(const char *format, const struct tm *tm)
+{
+   const size_t flen = strlen(format);
+   size_t buflen = 16; // An arbitrary starting size
+   char *buf = NULL;
+
+   do {
+  char *tmp;
+  size_t len;
+
+  tmp = realloc(buf, buflen * sizeof(char));
+  if (!tmp) goto on_error;
+  buf = tmp;
+
+  len = strftime(buf, buflen, format, tm);
+  // Check if we have the expected result and return it.
+  if ((len > 0 && len < buflen) || (len == 0 && flen == 0))
+{
+   tmp = realloc(buf, ((len + 1) * sizeof(char)));
+   buf = tmp;
+   return buf;
+}
+
+  /* Possibly buf overflowed - try again with a bigger buffer */
+  buflen <<= 1; // multiply buffer size by 2
+   } while (buflen < 128 * flen);
+
+ on_error:
+   free(buf);
+   return NULL;
+}
+
 EAPI Eina_Bool
 eina_str_has_prefix(const char *str, const char *prefix)
 {
diff --git a/src/lib/eina/eina_str.h b/src/lib/eina/eina_str.h
index 100cc81..0448269 100644
--- a/src/lib/eina/eina_str.h
+++ b/src/lib/eina/eina_str.h
@@ -355,6 +355,32 @@ static inline size_t eina_strlen_bounded(const char *str, 
size_t maxlen) EINA_PU
  * @since 1.13
  */
 EAPI unsigned char *eina_memdup(unsigned char *mem, size_t size, Eina_Bool 
terminate);
+
+/**
+ * @brief Create and update the buffer based on strftime output.
+ *
+ * @param tm Pointer to a tm structure needed by strftime.
+ * @param format String containing format specifiers needed by strftime.
+ * @return Updated buffer based on strftime output
+ *
+ * This will create a buffer of exact required size based on strftime output
+ * once use is complete the buffer has to be freed using free.
+ *
+ * Example usage:
+ * @code
+ * time_t curr_time;
+ * struct tm *info;
+ * char *buf;
+ * curr_time = time(NULL);
+ * info = localtime(_time);
+ * buf = eina_strftime("%I:%M%p", info);
+ * //after use
+ * free(buf);
+ * @endcode
+ *
+ * @since 1.16.0
+ */
+EAPI char *eina_strftime(const char *format, const struct tm *tm);
 #include "eina_inline_str.x"
 
 /**
diff --git a/src/tests/eina/eina_test_str.c b/src/tests/eina/eina_test_str.c
index 8233dd8..97b3865 100644
--- a/src/tests/eina/eina_test_str.c
+++ b/src/tests/eina/eina_test_str.c
@@ -347,6 +347,24 @@ START_TEST(str_memdup)
 }
 END_TEST
 
+START_TEST(str_strftime)
+{
+   time_t curr_time;
+   struct tm *info;
+   char *buf;
+   eina_init();
+
+   curr_time = time(NULL);
+   info = localtime(_time);
+
+   buf = 

[EGIT] [core/elementary] master 07/09: toolbar: add item_signal_emit.

2015-11-09 Thread Shilpa Singh
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=13f3cad5f120a98e4cc1b56059490f83628af9f8

commit 13f3cad5f120a98e4cc1b56059490f83628af9f8
Author: Shilpa Singh 
Date:   Mon Nov 9 12:24:37 2015 -0800

toolbar: add item_signal_emit.

Summary:
Application cannot send signals to toolbar item using 
elm_object_item_signal_emit API.

@feature

Test Plan: Send signal to toolbar item from app using 
elm_object_item_signal_emit widget.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3251

Signed-off-by: Cedric BAIL 
---
 src/lib/elm_toolbar.c   | 9 +
 src/lib/elm_toolbar_item.eo | 1 +
 2 files changed, 10 insertions(+)

diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c
index 0484544..c68a287 100644
--- a/src/lib/elm_toolbar.c
+++ b/src/lib/elm_toolbar.c
@@ -1017,6 +1017,15 @@ _elm_toolbar_item_elm_widget_item_disable(Eo 
*eo_toolbar, Elm_Toolbar_Item_Data
_resize_cb(WIDGET(toolbar_it), NULL, NULL, NULL);
 }
 
+EOLIAN static void
+_elm_toolbar_item_elm_widget_item_signal_emit(Eo *eo_toolbar_it EINA_UNUSED,
+  Elm_Toolbar_Item_Data 
*toolbar_it,
+  const char *emission,
+  const char *source)
+{
+   elm_layout_signal_emit(VIEW(toolbar_it), emission, source);
+}
+
 static Eina_Bool
 _item_icon_set(Evas_Object *icon_obj,
const char *type,
diff --git a/src/lib/elm_toolbar_item.eo b/src/lib/elm_toolbar_item.eo
index e88ebc5..461552d 100644
--- a/src/lib/elm_toolbar_item.eo
+++ b/src/lib/elm_toolbar_item.eo
@@ -298,6 +298,7 @@ class Elm.Toolbar_Item(Elm.Widget_Item)
Elm.Widget_Item.disable;
Elm.Widget_Item.focus.set;
Elm.Widget_Item.focus.get;
+   Elm.Widget_Item.signal_emit;
Elm.Widget_Item.part_text.get;
Elm.Widget_Item.part_text.set;
Elm.Widget_Item.part_content.get;

-- 




[EGIT] [core/elementary] master 09/09: index: internal item's edje object handling logic changed to improve performance.

2015-11-09 Thread woochan lee
cedric pushed a commit to branch master.

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

commit cf94160b6bd9a1180c8a1fdcb35b8ee1e055f37f
Author: woochan lee 
Date:   Mon Nov 9 12:25:27 2015 -0800

index: internal item's edje object handling logic changed to improve 
performance.

Summary:
The box_clear, box_fill internal functions called when almost every 
internal chage happend.
(resize, theme apply, item append, item delete etc...)
Then those APIs delete/create item's edje object for all of the items.

It's very not good action for performance.
So, i changed this just edje object box unpack/pack instead of 
delete/create.

@fix

Test Plan:
Working test on elementary_test
and Call all of the index APIs for check this change.

Reviewers: Hermet, cedric

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D3268

Signed-off-by: Cedric BAIL 
---
 src/lib/elm_index.c | 67 ++---
 1 file changed, 38 insertions(+), 29 deletions(-)

diff --git a/src/lib/elm_index.c b/src/lib/elm_index.c
index 7f3cb39..c09df9e 100644
--- a/src/lib/elm_index.c
+++ b/src/lib/elm_index.c
@@ -76,7 +76,8 @@ _index_box_clear(Evas_Object *obj,
  {
 ELM_INDEX_ITEM_DATA_GET(eo_item, it);
 if (it->level != level) continue;
-ELM_SAFE_FREE(VIEW(it), evas_object_del);
+evas_object_box_remove(sd->bx[level], VIEW(it));
+evas_object_hide(VIEW(it));
  }
 
sd->level_active[level] = EINA_FALSE;
@@ -314,9 +315,8 @@ _index_box_auto_fill(Evas_Object *obj,
  continue;
   }
 
-o = edje_object_add(evas_object_evas_get(obj));
-VIEW(it) = o;
 edje_object_mirrored_set(VIEW(it), rtl);
+o = VIEW(it);
 
 if (sd->horizontal)
   {
@@ -637,7 +637,7 @@ _sel_eval(Evas_Object *obj,
   it_last = it;
   it->selected = EINA_FALSE;
}
- if (VIEW(it))
+ if (evas_object_visible_get(VIEW(it)))
{
   evas_object_geometry_get(VIEW(it), , , , );
   xx = x + (w / 2);
@@ -1359,29 +1359,33 @@ _elm_index_selected_item_get(const Eo *obj EINA_UNUSED, 
Elm_Index_Data *sd, int
 EOLIAN static Elm_Object_Item*
 _elm_index_item_append(Eo *obj, Elm_Index_Data *sd, const char *letter, 
Evas_Smart_Cb func, const void *data)
 {
-   Elm_Object_Item *it;
+   Elm_Object_Item *eo_item;
+
+   eo_item = _item_new(obj, letter, func, data);
+   if (!eo_item) return NULL;
 
-   it = _item_new(obj, letter, func, data);
-   if (!it) return NULL;
+   sd->items = eina_list_append(sd->items, eo_item);
 
-   sd->items = eina_list_append(sd->items, it);
-   _index_box_clear(obj, sd->level);
+   ELM_INDEX_ITEM_DATA_GET(eo_item, it);
+   VIEW(it) = edje_object_add(evas_object_evas_get(obj));
 
-   return it;
+   return eo_item;
 }
 
 EOLIAN static Elm_Object_Item*
 _elm_index_item_prepend(Eo *obj, Elm_Index_Data *sd, const char *letter, 
Evas_Smart_Cb func, const void *data)
 {
-   Elm_Object_Item *it;
+   Elm_Object_Item *eo_item;
 
-   it = _item_new(obj, letter, func, data);
-   if (!it) return NULL;
+   eo_item = _item_new(obj, letter, func, data);
+   if (!eo_item) return NULL;
 
-   sd->items = eina_list_prepend(sd->items, it);
-   _index_box_clear(obj, sd->level);
+   sd->items = eina_list_prepend(sd->items, eo_item);
 
-   return it;
+   ELM_INDEX_ITEM_DATA_GET(eo_item, it);
+   VIEW(it) = edje_object_add(evas_object_evas_get(obj));
+
+   return eo_item;
 }
 
 EINA_DEPRECATED EAPI Elm_Object_Item *
@@ -1397,34 +1401,38 @@ elm_index_item_prepend_relative(Evas_Object *obj,
 EOLIAN static Elm_Object_Item*
 _elm_index_item_insert_after(Eo *obj, Elm_Index_Data *sd, Elm_Object_Item 
*after, const char *letter, Evas_Smart_Cb func, const void *data)
 {
-   Elm_Object_Item *it;
+   Elm_Object_Item *eo_item;
 
 
if (!after) return elm_index_item_append(obj, letter, func, data);
 
-   it = _item_new(obj, letter, func, data);
-   if (!it) return NULL;
+   eo_item = _item_new(obj, letter, func, data);
+   if (!eo_item) return NULL;
 
-   sd->items = eina_list_append_relative(sd->items, it, after);
-   _index_box_clear(obj, sd->level);
+   sd->items = eina_list_append_relative(sd->items, eo_item, after);
+
+   ELM_INDEX_ITEM_DATA_GET(eo_item, it);
+   VIEW(it) = edje_object_add(evas_object_evas_get(obj));
 
-   return it;
+   return eo_item;
 }
 
 EOLIAN static Elm_Object_Item*
 _elm_index_item_insert_before(Eo *obj, Elm_Index_Data *sd, Elm_Object_Item 
*before, const char *letter, Evas_Smart_Cb func, const void *data)
 {
-   Elm_Object_Item *it;
+   Elm_Object_Item *eo_item;
 
if (!before) return elm_index_item_prepend(obj, letter, func, data);
 
-   it = _item_new(obj, letter, func, data);
-   if (!it) return 

[EGIT] [core/elementary] master 01/09: hoversel: do item view creation at the time of item addition.

2015-11-09 Thread godly.talias
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=58edfd10d7b077382178713699d9c84367d1686c

commit 58edfd10d7b077382178713699d9c84367d1686c
Author: godly.talias 
Date:   Mon Nov 9 12:18:49 2015 -0800

hoversel: do item view creation at the time of item addition.

Summary:
Currently hoversel creates the item view when user clicks on hoversel,
So it will cause a delay for the hover to come depending on number
of items as the items in hover have to be created. If item creation
is done during item_add that delay can be avoided and pressed effect also
will become smooth (item_add will be taking more time with this change, but
it happens only once). If applications prefer memory usage more than 
execution
time, then applications can do item_add in hoversel clicked callback.

Test Plan: elementary_test

Reviewers: raster, Hermet, conr2d, prince.dubey, shilpasingh, cedric

Reviewed By: cedric

Subscribers: rajeshps, poornima.srinivasan

Differential Revision: https://phab.enlightenment.org/D3058

Signed-off-by: Cedric BAIL 
---
 AUTHORS   |   2 +-
 src/lib/elc_hoversel.c| 105 +-
 src/lib/elm_widget_hoversel.h |   1 +
 3 files changed, 66 insertions(+), 42 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index eefcd81..1c8b979 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -164,5 +164,5 @@ Jee-Yong Um 
 Ji-In Moon  
 Subodh Kumar 
 Kumar Navneet 
-Godly T Alias 
+Godly T Alias  
 Shashank Pandey  
diff --git a/src/lib/elc_hoversel.c b/src/lib/elc_hoversel.c
index 11e9436..11c85fe 100644
--- a/src/lib/elc_hoversel.c
+++ b/src/lib/elc_hoversel.c
@@ -60,6 +60,8 @@ EOLIAN static Eina_Bool
 _elm_hoversel_elm_widget_theme_apply(Eo *obj, Elm_Hoversel_Data *sd)
 {
Eina_Bool int_ret = EINA_FALSE;
+   Eina_List *l;
+   Elm_Object_Item *eo_item;
 
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
 
@@ -81,11 +83,22 @@ _elm_hoversel_elm_widget_theme_apply(Eo *obj, 
Elm_Hoversel_Data *sd)
 
eina_stringshare_replace(&(wd->style), style);
 
-   eina_stringshare_del(style);
-
if (sd->hover)
  elm_widget_mirrored_set(sd->hover, elm_widget_mirrored_get(obj));
 
+   if (sd->horizontal)
+ snprintf(buf, sizeof(buf), "hoversel_horizontal_entry/%s", style);
+   else
+ snprintf(buf, sizeof(buf), "hoversel_vertical_entry/%s", style);
+
+   EINA_LIST_FOREACH(sd->items, l, eo_item)
+ {
+ELM_HOVERSEL_ITEM_DATA_GET(eo_item, item);
+elm_object_style_set(VIEW(item), buf);
+elm_object_text_set(VIEW(item), item->label);
+ }
+
+   eina_stringshare_del(style);
elm_hoversel_hover_end(obj);
 
return EINA_TRUE;
@@ -346,9 +359,11 @@ _hover_end_finished(void *data,
 EINA_LIST_FOREACH(sd->items, l, eo_item)
   {
  ELM_HOVERSEL_ITEM_DATA_GET(eo_item, it);
- VIEW(it) = NULL;
+ elm_box_unpack(sd->bx, VIEW(it));
+ evas_object_hide(VIEW(it));
   }
 ELM_SAFE_FREE(sd->hover, evas_object_del);
+sd->bx = NULL;
 sd->scr = NULL;
 sd->last_location = NULL;
 
@@ -360,7 +375,6 @@ static void
 _activate(Evas_Object *obj)
 {
Elm_Object_Item *eo_item;
-   Evas_Object *bt, *bx, *ic;
const Eina_List *l;
char buf[4096];
 
@@ -394,49 +408,19 @@ _activate(Evas_Object *obj)
elm_hover_target_set(sd->hover, obj);
 
/* hover's content */
-   bx = elm_box_add(sd->hover);
-   elm_box_homogeneous_set(bx, EINA_TRUE);
-   elm_box_horizontal_set(bx, sd->horizontal);
-
-   if (sd->horizontal)
- snprintf(buf, sizeof(buf), "hoversel_horizontal_entry/%s",
-  elm_widget_style_get(obj));
-   else
- snprintf(buf, sizeof(buf), "hoversel_vertical_entry/%s",
-  elm_widget_style_get(obj));
+   sd->bx = elm_box_add(sd->hover);
+   elm_box_homogeneous_set(sd->bx, EINA_TRUE);
+   elm_box_horizontal_set(sd->bx, sd->horizontal);
 
EINA_LIST_FOREACH(sd->items, l, eo_item)
  {
 ELM_HOVERSEL_ITEM_DATA_GET(eo_item, item);
-VIEW(item) = bt = elm_button_add(bx);
-elm_widget_mirrored_set(bt, elm_widget_mirrored_get(obj));
-elm_object_style_set(bt, buf);
-elm_object_text_set(bt, item->label);
-
-if (item->icon_file)
-  {
- ic = elm_icon_add(bt);
- elm_image_resizable_set(ic, EINA_FALSE, EINA_TRUE);
- if (item->icon_type == ELM_ICON_FILE)
-   elm_image_file_set(ic, item->icon_file, item->icon_group);
- else if (item->icon_type == ELM_ICON_STANDARD)
-   elm_icon_standard_set(ic, item->icon_file);
- 

[EGIT] [core/enlightenment] master 01/01: check client comp data existence in x11 mirror visibility callbacks

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 551657e02a1165c3940a98c10f5d2019d1c6a5fe
Author: Mike Blumenkrantz 
Date:   Mon Nov 9 14:29:23 2015 -0500

check client comp data existence in x11 mirror visibility callbacks
---
 src/bin/e_comp_x.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index e5a0989..dce9641 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -1176,9 +1176,9 @@ _e_comp_x_evas_mirror_hidden(void *data, Evas_Object *obj 
EINA_UNUSED, void *eve
 {
E_Client *ec = data;
 
+   if (!_e_comp_x_client_data_get(ec)) return;
if ((!ec->iconic) || (!ec->comp_data->iconic)) return;
-   if (_e_comp_x_client_data_get(ec))
- _e_comp_x_client_hide(ec);
+   _e_comp_x_client_hide(ec);
 }
 
 static void
@@ -1186,9 +1186,9 @@ _e_comp_x_evas_mirror_visible(void *data, Evas_Object 
*obj EINA_UNUSED, void *ev
 {
E_Client *ec = data;
 
+   if (!_e_comp_x_client_data_get(ec)) return;
if ((!ec->iconic) || ec->comp_data->iconic) return;
-   if (_e_comp_x_client_data_get(ec))
- _e_comp_x_client_show(ec);
+   _e_comp_x_client_show(ec);
 }
 
 static void

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 08/23: e exec tracker - fix tracking to update desktop files on efreet change

2015-11-09 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 82e2e93fd20d5e2f0baf05ef17c5a639f0dee1f2
Author: Carsten Haitzler (Rasterman) 
Date:   Mon Nov 2 12:28:27 2015 +0900

e exec tracker - fix tracking to update desktop files on efreet change

efreet will send change events meaning out desktop file icons are
invalid now. we have refs but content is junk. update these to new
desktop ptr handles by using the exec key to look up new ones on the
change event. this fixes ibar gainign a bunch of blank unknown icons
when any desktop files are touched on the system or user dirs

@fix
---
 src/bin/e_exec.c | 45 +
 1 file changed, 37 insertions(+), 8 deletions(-)

diff --git a/src/bin/e_exec.c b/src/bin/e_exec.c
index e73e998..5eb3be3 100644
--- a/src/bin/e_exec.c
+++ b/src/bin/e_exec.c
@@ -50,6 +50,7 @@ struct _E_Config_Dialog_Data
 static E_Exec_Instance *_e_exec_cb_exec(void *data, Efreet_Desktop *desktop, 
char *exec, int remaining);
 static Eina_Bool_e_exec_cb_expire_timer(void *data);
 static Eina_Bool_e_exec_cb_exit(void *data, int type, void *event);
+static Eina_Bool_e_exec_cb_desktop_update(void *data, int type, void 
*event);
 static void_e_exec_cb_exec_new_free(void *data, void *event);
 static void _e_exec_cb_exec_new_client_free(void *data, void *ev);
 static void_e_exec_cb_exec_del_free(void *data, void *event);
@@ -72,7 +73,7 @@ static Eina_Hash *e_exec_instances = NULL;
 static int startup_id = 0;
 
 static Ecore_Event_Handler *_e_exec_exit_handler = NULL;
-static Ecore_Event_Handler *_e_exec_border_add_handler = NULL;
+static Ecore_Event_Handler *_e_exec_desktop_update_handler = NULL;
 
 static E_Exec_Instance *(*_e_exec_executor_func)(void *data, E_Zone * zone, 
Efreet_Desktop * desktop, const char *exec, Eina_List *files, const char 
*launch_method) = NULL;
 static void *_e_exec_executor_data = NULL;
@@ -89,10 +90,8 @@ e_exec_init(void)
 
_e_exec_exit_handler =
  ecore_event_handler_add(ECORE_EXE_EVENT_DEL, _e_exec_cb_exit, NULL);
-#if 0
-   _e_exec_border_add_handler =
- ecore_event_handler_add(E_EVENT_CLIENT_ADD, _e_exec_cb_event_border_add, 
NULL);
-#endif
+   _e_exec_desktop_update_handler =
+ ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, 
_e_exec_cb_desktop_update, NULL);
 
E_EVENT_EXEC_NEW = ecore_event_type_new();
E_EVENT_EXEC_NEW_CLIENT = ecore_event_type_new();
@@ -105,8 +104,8 @@ e_exec_shutdown(void)
 {
e_exehist_startup_id_set(startup_id);
if (_e_exec_exit_handler) ecore_event_handler_del(_e_exec_exit_handler);
-   if (_e_exec_border_add_handler)
- ecore_event_handler_del(_e_exec_border_add_handler);
+   if (_e_exec_desktop_update_handler)
+ ecore_event_handler_del(_e_exec_desktop_update_handler);
eina_hash_free(e_exec_instances);
eina_list_free(e_exec_start_pending);
return 1;
@@ -593,8 +592,8 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char 
*exec, int remaining)
 
if (desktop)
  {
-efreet_desktop_ref(desktop);
 inst->desktop = desktop;
+efreet_desktop_ref(desktop);
 inst->key = eina_stringshare_add(desktop->orig_path ?: desktop->name);
  }
else
@@ -812,6 +811,36 @@ _e_exec_cb_exit(void *data __UNUSED__, int type 
__UNUSED__, void *event)
 }
 
 static Eina_Bool
+_e_exec_cb_desktop_update(void *data EINA_UNUSED, int type EINA_UNUSED, void 
*event EINA_UNUSED)
+{
+   const Eina_Hash *execs = e_exec_instances_get();
+   Eina_Iterator *it;
+   const Eina_List *l, *ll;
+   E_Exec_Instance *exe;
+
+   it = eina_hash_iterator_data_new(execs);
+   EINA_ITERATOR_FOREACH(it, l)
+ {
+EINA_LIST_FOREACH(l, ll, exe)
+  {
+ if (exe->desktop)
+   {
+  efreet_desktop_free(exe->desktop);
+  exe->desktop = NULL;
+  if (exe->key)
+{
+   exe->desktop = efreet_desktop_get(exe->key);
+   if (!exe->desktop)
+ exe->desktop = 
efreet_util_desktop_name_find(exe->key);
+}
+   }
+  }
+ }
+   eina_iterator_free(it);
+   return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool
 _e_exec_startup_id_pid_find(const Eina_Hash *hash __UNUSED__, const void *key 
__UNUSED__, void *value, void *data)
 {
E_Exec_Search *search;

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 09/23: add native surface (gl) clients to post render list

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 8589289ff54fff77974955bd2eadf8c734554d96
Author: Mike Blumenkrantz 
Date:   Mon Nov 2 15:53:04 2015 -0500

add native surface (gl) clients to post render list

forgot to add this when I was redoing it for sw

ref 4d30674ab87001d6a1515908341d756d75a22a89
---
 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 5e16ef7..b83722a 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -712,7 +712,11 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj 
EINA_UNUSED)
if (!e_pixmap_size_get(ec->pixmap, , )) return;
//INF("PIXEL GET %p: %dx%d || %dx%d", ec, ec->w, ec->h, pw, ph);
if (cw->native)
- E_FREE_FUNC(cw->pending_updates, eina_tiler_free);
+ {
+E_FREE_FUNC(cw->pending_updates, eina_tiler_free);
+cw->comp->post_updates = eina_list_append(cw->comp->post_updates, 
cw->ec);
+e_object_ref(E_OBJECT(cw->ec));
+ }
else if (e_comp_object_render(ec->frame))
  {
 /* apply shape mask if necessary */

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 06/23: e - ibar - fix clash when 2 icons of the same path get added somehow

2015-11-09 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit e311bc2372be0a362b4a2fc7c671b4a34f8d3b26
Author: Carsten Haitzler (Rasterman) 
Date:   Sat Oct 24 11:01:56 2015 +0900

e - ibar - fix clash when 2 icons of the same path get added somehow

i encontered a situation where the icon_hash contained a garbage entry
- had been freed already. the only way i can see this happening is if
the desktop file changed path during runtime thus the icon was never
removed from hash on free as string didnt match. store string used
when adding to hash so removal is guarannteed to work and also for
good measure protect against double-adding (and generate a new string
for storage using timestamp which should be unique).

so this fixes a crash i was just looping on.

@fix
---
 src/modules/ibar/e_mod_main.c | 16 ++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index 36cf5a3..c47820e 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -78,6 +78,7 @@ struct _IBar_Icon
Eina_List   *exes; //all instances
Eina_List   *menu_pending; //clients with menu items pending
E_Gadcon_Popup  *menu;
+   const char  *hashname;
int  mouse_down;
struct
{
@@ -859,7 +860,17 @@ _ibar_icon_new(IBar *b, Efreet_Desktop *desktop, Eina_Bool 
notinorder)
 
_ibar_icon_fill(ic);
b->icons = eina_inlist_append(b->icons, EINA_INLIST_GET(ic));
-   eina_hash_add(b->icon_hash, _desktop_name_get(ic->app), ic);
+   if (eina_hash_find(b->icon_hash, _desktop_name_get(ic->app)))
+ {
+char buf[PATH_MAX];
+
+ERR("Ibar - Unexpected: icon with same desktop path created twice");
+snprintf(buf, sizeof(buf), "%s::%1.20f",
+ _desktop_name_get(ic->app), ecore_time_get());
+ic->hashname = eina_stringshare_add(buf);
+ }
+   else ic->hashname = eina_stringshare_add(_desktop_name_get(ic->app));
+   eina_hash_add(b->icon_hash, ic->hashname, ic);
if (notinorder)
  {
 ic->not_in_order = 1;
@@ -908,7 +919,8 @@ _ibar_icon_free(IBar_Icon *ic)
E_FREE_FUNC(ic->hide_timer, ecore_timer_del);
E_FREE_FUNC(ic->show_timer, ecore_timer_del);
ic->ibar->icons = eina_inlist_remove(ic->ibar->icons, EINA_INLIST_GET(ic));
-   eina_hash_del_by_key(ic->ibar->icon_hash, _desktop_name_get(ic->app));
+   eina_hash_del_by_key(ic->ibar->icon_hash, ic->hashname);
+   E_FREE_FUNC(ic->hashname, eina_stringshare_del);
E_FREE_FUNC(ic->reset_timer, ecore_timer_del);
if (ic->app) efreet_desktop_unref(ic->app);
evas_object_event_callback_del_full(ic->o_holder, EVAS_CALLBACK_MOUSE_IN,

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 18/23: add e_comp_object_mirror_visibility_check()

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit e8c7f5686c6761ced482b8a6b319f458665b5b2c
Author: Mike Blumenkrantz 
Date:   Sat Nov 7 13:09:23 2015 -0500

add e_comp_object_mirror_visibility_check()

can be used to check whether visible mirrors exist for a comp object
---
 src/bin/e_comp_object.c | 6 ++
 src/bin/e_comp_object.h | 1 +
 2 files changed, 7 insertions(+)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 6212a0e..754f139 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2260,6 +2260,12 @@ e_comp_object_zoomap_set(Evas_Object *obj, Eina_Bool 
enabled)
cw->zoomap_disabled = enabled;
 }
 
+E_API Eina_Bool
+e_comp_object_mirror_visibility_check(Evas_Object *obj)
+{
+   API_ENTRY EINA_FALSE;
+   return !!cw->force_visible;
+}
 /
 
 static void
diff --git a/src/bin/e_comp_object.h b/src/bin/e_comp_object.h
index 85dc741..cceda67 100644
--- a/src/bin/e_comp_object.h
+++ b/src/bin/e_comp_object.h
@@ -36,6 +36,7 @@ struct E_Comp_Object_Frame
 extern E_API int E_EVENT_COMP_OBJECT_ADD;
 
 E_API void e_comp_object_zoomap_set(Evas_Object *obj, Eina_Bool enabled);
+E_API Eina_Bool e_comp_object_mirror_visibility_check(Evas_Object *obj);
 E_API Evas_Object *e_comp_object_client_add(E_Client *ec);
 E_API Evas_Object *e_comp_object_util_mirror_add(Evas_Object *obj);
 E_API Evas_Object *e_comp_object_util_add(Evas_Object *obj, E_Comp_Object_Type 
type);

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 21/23: disable client menu stacking functions for unstackable windows

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit eefba0945669f8829c34d43642c05f84eca7a82b
Author: Mike Blumenkrantz 
Date:   Mon Nov 9 13:11:26 2015 -0500

disable client menu stacking functions for unstackable windows

any client stacked higher than E_LAYER_CLIENT_ABOVE should never be
user-stacked
---
 src/bin/e_int_client_menu.c | 29 -
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/src/bin/e_int_client_menu.c b/src/bin/e_int_client_menu.c
index a357054..3f4afda 100644
--- a/src/bin/e_int_client_menu.c
+++ b/src/bin/e_int_client_menu.c
@@ -148,18 +148,21 @@ e_int_client_menu_create(E_Client *ec)
   "e/widgets/border/default/sendto");
  }
 
-   mi = e_menu_item_new(m);
-   e_menu_item_label_set(mi, _("Always on Top"));
-   e_menu_item_check_set(mi, 1);
-   e_menu_item_toggle_set(mi, (ec->layer == E_LAYER_CLIENT_ABOVE ? 1 : 0));
-   if (ec->layer == E_LAYER_CLIENT_ABOVE)
- e_menu_item_callback_set(mi, _e_client_menu_cb_normal, ec);
-   else
- e_menu_item_callback_set(mi, _e_client_menu_cb_on_top, ec);
-   e_menu_item_icon_edje_set(mi,
- e_theme_edje_file_get("base/theme/borders",
-   
"e/widgets/border/default/stack_on_top"),
- "e/widgets/border/default/stack_on_top");
+   if (ec->layer <= E_LAYER_CLIENT_ABOVE)
+ {
+mi = e_menu_item_new(m);
+e_menu_item_label_set(mi, _("Always on Top"));
+e_menu_item_check_set(mi, 1);
+e_menu_item_toggle_set(mi, (ec->layer == E_LAYER_CLIENT_ABOVE ? 1 : 
0));
+if (ec->layer == E_LAYER_CLIENT_ABOVE)
+  e_menu_item_callback_set(mi, _e_client_menu_cb_normal, ec);
+else
+  e_menu_item_callback_set(mi, _e_client_menu_cb_on_top, ec);
+e_menu_item_icon_edje_set(mi,
+  e_theme_edje_file_get("base/theme/borders",
+
"e/widgets/border/default/stack_on_top"),
+  "e/widgets/border/default/stack_on_top");
+ }
 
if (!ec->lock_user_sticky)
  {
@@ -744,7 +747,7 @@ _e_client_menu_cb_window_pre(void *data, E_Menu *m 
__UNUSED__, E_Menu_Item *mi)
submi = e_menu_item_new(subm);
e_menu_item_separator_set(submi, 1);
 
-   if ((!ec->lock_user_stacking) && (!ec->fullscreen))
+   if ((!ec->lock_user_stacking) && (!ec->fullscreen) && (ec->layer <= 
E_LAYER_CLIENT_ABOVE))
  {
 submi = e_menu_item_new(subm);
 e_menu_item_label_set(submi, _("Stacking"));

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 16/23: emit ibox icon signals to the internal edje object of the e_icon

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 71b113f44c3b8be2677c39470badb0122a877b4e
Author: Mike Blumenkrantz 
Date:   Sat Nov 7 13:07:07 2015 -0500

emit ibox icon signals to the internal edje object of the e_icon
---
 src/modules/ibox/e_mod_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/modules/ibox/e_mod_main.c b/src/modules/ibox/e_mod_main.c
index 1935994..5fc163d 100644
--- a/src/modules/ibox/e_mod_main.c
+++ b/src/modules/ibox/e_mod_main.c
@@ -650,11 +650,11 @@ _ibox_icon_signal_emit(IBox_Icon *ic, char *sig, char 
*src)
if (ic->o_holder)
  edje_object_signal_emit(ic->o_holder, sig, src);
if (ic->o_icon && e_icon_edje_get(ic->o_icon))
- edje_object_signal_emit(ic->o_icon, sig, src);
+ edje_object_signal_emit(e_icon_edje_get(ic->o_icon), sig, src);
if (ic->o_holder2)
  edje_object_signal_emit(ic->o_holder2, sig, src);
if (ic->o_icon2 && e_icon_edje_get(ic->o_icon2))
- edje_object_signal_emit(ic->o_icon2, sig, src);
+ edje_object_signal_emit(e_icon_edje_get(ic->o_icon2), sig, src);
 }
 
 static Eina_List *

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 05/23: reject frame theme changes for clients which have CSD

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 93243139485e0fad6db62cdfae5b2f1f448df44a
Author: Mike Blumenkrantz 
Date:   Thu Oct 22 19:27:01 2015 -0400

reject frame theme changes for clients which have CSD
---
 src/bin/e_client.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index e6e95fa..1479c6d 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2283,6 +2283,7 @@ _e_client_frame_update(E_Client *ec)
const char *bordername;
 
ec->border.changed = 0;
+   if (!e_comp_object_frame_allowed(ec->frame)) return;
if (ec->fullscreen || ec->borderless)
  bordername = "borderless";
else if (ec->bordername)

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 10/23: e/win_config: allow content of some dialogs to resize with the window

2015-11-09 Thread shorne
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit c7cd4178a7e228ec85781e4ef7302d2882084297
Author: shorne 
Date:   Thu Nov 5 16:03:26 2015 +0900

e/win_config: allow content of some dialogs to resize with the window

Summary:
Currently the dialogs in Winows > Window List Menu and Window Display are
resizable the their content does not resize.  This patch fixes that.

Test Plan: Open windows in window config dialog and ensure they can resize 
propertly

Reviewers: zmike

Subscribers: raster, cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3275
---
 .../conf_window_manipulation/e_int_config_window_display.c |  8 
 src/modules/winlist/e_int_config_winlist.c | 10 +-
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/modules/conf_window_manipulation/e_int_config_window_display.c 
b/src/modules/conf_window_manipulation/e_int_config_window_display.c
index 126972f..74888bb 100644
--- a/src/modules/conf_window_manipulation/e_int_config_window_display.c
+++ b/src/modules/conf_window_manipulation/e_int_config_window_display.c
@@ -157,7 +157,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, 
E_Config_Dialog_Data
e_widget_framelist_object_append(of, ow);
e_widget_list_object_append(ol, of, 1, 1, 0.5);
e_widget_toolbook_page_append(otb, NULL, _("Display"), ol,
- 0, 0, 1, 0, 0.5, 0.0);
+ 1, 0, 1, 0, 0.5, 0.0);
 
/* New Windows */
ol = e_widget_list_add(evas, 0, 0);
@@ -183,7 +183,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, 
E_Config_Dialog_Data
&(cfdata->desk_auto_switch));
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
e_widget_toolbook_page_append(otb, NULL, _("New Windows"), ol,
- 0, 0, 1, 0, 0.5, 0.0);
+ 1, 0, 1, 0, 0.5, 0.0);
 
/* Shading */
ol = e_widget_list_add(evas, 0, 0);
@@ -235,7 +235,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, 
E_Config_Dialog_Data
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
 
e_widget_toolbook_page_append(otb, NULL, _("Shading"), ol,
- 0, 0, 1, 0, 0.5, 0.0);
+ 1, 0, 1, 0, 0.5, 0.0);
 
/* Screen Limits */
ol = e_widget_list_add(evas, 0, 0);
@@ -252,7 +252,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, 
E_Config_Dialog_Data
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
 
e_widget_toolbook_page_append(otb, NULL, _("Screen Limits"), ol,
- 0, 0, 1, 0, 0.5, 0.0);
+ 1, 0, 1, 0, 0.5, 0.0);
 
e_widget_toolbook_page_show(otb, 0);
return otb;
diff --git a/src/modules/winlist/e_int_config_winlist.c 
b/src/modules/winlist/e_int_config_winlist.c
index 6eb22db..d6668dc 100644
--- a/src/modules/winlist/e_int_config_winlist.c
+++ b/src/modules/winlist/e_int_config_winlist.c
@@ -199,7 +199,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, 
E_Config_Dialog_Data
e_widget_list_object_append(ol, ob, 1, 0, 0.0);
e_widget_check_widget_disable_on_unchecked_add(iconified, ob);
e_widget_toolbook_page_append(otb, NULL, _("Display"), ol,
- 0, 0, 1, 0, 0.5, 0.0);
+ 1, 0, 1, 0, 0.5, 0.0);
 
ol = e_widget_list_add(evas, 0, 0);
ob = e_widget_check_add(evas, _("Focus"), &(cfdata->focus));
@@ -227,7 +227,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, 
E_Config_Dialog_Data
e_widget_check_widget_disable_on_checked_add(ob, ck);
e_widget_list_object_append(ol, ob, 1, 0, 0.0);
e_widget_toolbook_page_append(otb, NULL, _("Selecting"), ol,
- 0, 0, 1, 0, 0.5, 0.0);
+ 1, 0, 1, 0, 0.5, 0.0);
 
ol = e_widget_list_add(evas, 0, 0);
scroll_animate = ob = e_widget_check_add(evas, _("Scroll Animation"),
@@ -241,7 +241,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, 
E_Config_Dialog_Data
e_widget_check_widget_disable_on_unchecked_add(scroll_animate, ob);
e_widget_list_object_append(ol, ob, 1, 0, 0.0);
e_widget_toolbook_page_append(otb, NULL, _("Animations"), ol,
- 0, 0, 1, 0, 0.5, 0.0);
+ 1, 0, 1, 0, 0.5, 0.0);
 
ol = e_widget_list_add(evas, 0, 0);
ob = e_widget_label_add(evas, _("Minimum width"));
@@ -271,7 +271,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, 
E_Config_Dialog_Data
e_widget_on_change_hook_set(ob, _height_limits_changed, cfdata);
e_widget_list_object_append(ol, ob, 1, 0, 0.0);
e_widget_toolbook_page_append(otb, NULL, 

[EGIT] [core/enlightenment] enlightenment-0.19 02/23: make comp config unresizable...again

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit ffc1f2604a691dc1f811404f1b975a023bc13995
Author: Mike Blumenkrantz 
Date:   Wed Oct 21 15:17:25 2015 -0400

make comp config unresizable...again

ref 5178197f602da6cff94e03f20c522d5b1a631ae7
---
 src/bin/e_int_config_comp.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/bin/e_int_config_comp.c b/src/bin/e_int_config_comp.c
index 9050931..2064df0 100644
--- a/src/bin/e_int_config_comp.c
+++ b/src/bin/e_int_config_comp.c
@@ -85,7 +85,6 @@ e_int_config_comp(E_Comp *comp, const char *params __UNUSED__)

cfd = e_config_dialog_new(comp, _("Composite Settings"),
  "E", "appearance/comp", "preferences-composite", 
0, v, NULL);
-   e_dialog_resizable_set(cfd->dia, 1);
return cfd;
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 12/23: e/conf_apps: Fix resizing of "Startup Application" dialog

2015-11-09 Thread Stafford Horne
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 27a798c4f1a61314b7c60b5ea35704ad5c5ce056
Author: Stafford Horne 
Date:   Sat Nov 7 12:11:49 2015 -0500

e/conf_apps: Fix resizing of "Startup Application" dialog

Summary:
Currently the config dialog in Apps > Startup Applications does not properly
resized as one of the objects is not set to horizontal fill.

Test Plan: 1. Resize "Apps > Startup Applications", it should resize the 
list with the window

Reviewers: zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3296
---
 src/modules/conf_applications/e_int_config_apps.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/conf_applications/e_int_config_apps.c 
b/src/modules/conf_applications/e_int_config_apps.c
index 9660ddf..8e02c10 100644
--- a/src/modules/conf_applications/e_int_config_apps.c
+++ b/src/modules/conf_applications/e_int_config_apps.c
@@ -305,7 +305,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, 
E_Config_Dialog_Data *cfdata)
 
 cfdata->apps_xdg.o_desc = e_widget_textblock_add(evas);
 e_widget_size_min_set(cfdata->apps_xdg.o_desc, 100, (45 * e_scale));
-e_widget_table_object_append(ot, cfdata->apps_xdg.o_desc, 0, 1, 2, 1, 
1, 1, 0, 0);
+e_widget_table_object_append(ot, cfdata->apps_xdg.o_desc, 0, 1, 2, 1, 
1, 1, 1, 0);
 
 cfdata->apps_xdg.o_add = e_widget_button_add(evas, _("Add"), 
"list-add",
  _cb_add, 
>apps_xdg, NULL);

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 03/23: remove dead modules from whitelist

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 90b0708fb11ddbf8e528d6295ae2980df3a967cf
Author: Mike Blumenkrantz 
Date:   Thu Oct 22 13:18:14 2015 -0400

remove dead modules from whitelist
---
 src/bin/e_module.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/bin/e_module.c b/src/bin/e_module.c
index 7a8b53c..4f110ad 100644
--- a/src/bin/e_module.c
+++ b/src/bin/e_module.c
@@ -918,7 +918,6 @@ _e_module_whitelist_check(void)
   "ofono",
   "pager",
   "pager_plain",
-  "physics",
   "quickaccess",
   "shot",
   "start",
@@ -937,7 +936,6 @@ _e_module_whitelist_check(void)
   "wl_shell",
   "wl_desktop_shell",
   "xkbswitch",
-  "echievements",
   "music-control",
   "appmenu",
   "packagekit",

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 20/23: Revert "force a software render in all cases when finalizing x11 client iconify"

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 755073b5fcbb14101711a38c0d76d71973971a7f
Author: Mike Blumenkrantz 
Date:   Mon Nov 9 14:25:45 2015 -0500

Revert "force a software render in all cases when finalizing x11 client 
iconify"

This reverts commit 280e7e959dc2df094122344925132ae189a7a242.
---
 src/bin/e_comp_object.c | 5 -
 1 file changed, 5 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 754f139..0f48df9 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2004,11 +2004,6 @@ _e_comp_smart_hide(Evas_Object *obj)
  evas_object_focus_set(cw->ec->frame, 0);
e_comp_render_queue(cw->comp); //force nocomp recheck
e_comp_shape_queue(cw->comp);
-   if ((!cw->ec->iconic) || (!e_pixmap_is_x(cw->ec->pixmap)) || (!cw->native)) 
return;
-   e_comp_object_native_surface_set(obj, 0);
-   e_comp_object_damage(obj, 0, 0, cw->w, cw->h);
-   e_comp_object_dirty(obj);
-   e_comp_object_render(obj);
 }
 
 static void

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 15/23: move client iconic hint setting into x11 hide function

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit c31824c2ef43f4cb66534f4bc8c26064c477591a
Author: Mike Blumenkrantz 
Date:   Sat Nov 7 13:06:23 2015 -0500

move client iconic hint setting into x11 hide function

e_hints should probably be merged into the x11 compositor entirely
at some point
---
 src/bin/e_client.c | 1 -
 src/bin/e_comp_x.c | 2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index e8db0f3..0c5c79a 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -4028,7 +4028,6 @@ e_client_iconify(E_Client *ec)
 _e_client_revert_focus(ec);
 evas_object_hide(ec->frame);
  }
-   e_hints_window_iconic_set(ec);
e_client_urgent_set(ec, ec->icccm.urgent);
 
_e_client_event_simple(ec, E_EVENT_CLIENT_ICONIFY);
diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 4674504..4f89ca6 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -947,6 +947,8 @@ _e_comp_x_client_hide(E_Client *ec)
 
if (ec->unredirected_single || ec->iconic)
  ecore_x_window_hide(_e_comp_x_client_window_get(ec));
+   if (ec->iconic)
+ e_hints_window_iconic_set(ec);
 }
 
 static void

-- 




[EGIT] [core/enlightenment] enlightenment-0.19 22/23: enforce fullscreen client stacking during nocomp end IFF client is fullscreen

2015-11-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 245bb979221cb0dca3252b103b3cb274ddd3d916
Author: Mike Blumenkrantz 
Date:   Mon Nov 9 13:20:50 2015 -0500

enforce fullscreen client stacking during nocomp end IFF client is 
fullscreen

previous behavior would result in the nocomp window becoming stuck at a 
fullscreen
layer when ending nocomp, even if the client was no longer fullscreen

fix T2827
---
 src/bin/e_comp.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 09e9280..7cf9f2b 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -364,6 +364,13 @@ _e_comp_nocomp_end(E_Comp *c)
   layer = E_LAYER_CLIENT_TOP;
 fs = c->nocomp_ec->fullscreen;
 c->nocomp_ec->fullscreen = 0;
+if (fs)
+  {
+ if (!e_config->allow_above_fullscreen)
+   layer = E_LAYER_CLIENT_FULLSCREEN;
+ else if (e_config->mode.presentation)
+   layer = E_LAYER_CLIENT_TOP;
+  }
 evas_object_layer_set(c->nocomp_ec->frame, layer);
 c->nocomp_ec->fullscreen = fs;
  }

-- 




[EGIT] [core/efl] master 16/16: ector: move freetype rasterizer library to itw own directory.

2015-11-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 599141a96b68262022a281dbb7c225fd68d57b18
Author: Cedric BAIL 
Date:   Sun Nov 8 23:25:31 2015 +0100

ector: move freetype rasterizer library to itw own directory.
---
 src/Makefile_Ector.am | 15 ---
 .../ector/software => static_libs/freetype}/sw_ft_math.c  |  0
 .../ector/software => static_libs/freetype}/sw_ft_math.h  |  0
 .../software => static_libs/freetype}/sw_ft_raster.c  |  0
 .../software => static_libs/freetype}/sw_ft_raster.h  |  0
 .../software => static_libs/freetype}/sw_ft_stroker.c |  0
 .../software => static_libs/freetype}/sw_ft_stroker.h |  0
 .../ector/software => static_libs/freetype}/sw_ft_types.h |  0
 8 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/Makefile_Ector.am b/src/Makefile_Ector.am
index 18c60a3..be340cf 100644
--- a/src/Makefile_Ector.am
+++ b/src/Makefile_Ector.am
@@ -92,9 +92,9 @@ lib/ector/software/ector_renderer_software_shape.c \
 lib/ector/software/ector_software_gradient.c \
 lib/ector/software/ector_software_rasterizer.c \
 lib/ector/software/ector_software_surface.c \
-lib/ector/software/sw_ft_math.c \
-lib/ector/software/sw_ft_raster.c \
-lib/ector/software/sw_ft_stroker.c \
+static_libs/freetype/sw_ft_math.c \
+static_libs/freetype/sw_ft_raster.c \
+static_libs/freetype/sw_ft_stroker.c \
 lib/ector/software/ector_drawhelper.c \
 lib/ector/software/ector_drawhelper_sse2.c \
 lib/ector/software/ector_drawhelper_neon.c
@@ -106,6 +106,7 @@ lib_ector_libector_la_CPPFLAGS = 
-I$(top_builddir)/src/lib/efl \
 -I$(top_builddir)/src/lib/ector \
 -I$(top_builddir)/src/lib/ector/cairo \
 -I$(top_builddir)/src/lib/ector/software \
+-I$(top_builddir)/src/static_libs/freetype \
 @ECTOR_CFLAGS@ \
 -DPACKAGE_BIN_DIR=\"$(bindir)\" \
 -DPACKAGE_LIB_DIR=\"$(libdir)\" \
@@ -152,7 +153,7 @@ lib/ector/ector_private.h \
 lib/ector/cairo/ector_cairo_private.h \
 lib/ector/software/ector_drawhelper_private.h \
 lib/ector/software/ector_software_private.h \
-lib/ector/software/sw_ft_math.h \
-lib/ector/software/sw_ft_raster.h \
-lib/ector/software/sw_ft_stroker.h \
-lib/ector/software/sw_ft_types.h
+static_libs/freetype/sw_ft_math.h \
+static_libs/freetype/sw_ft_raster.h \
+static_libs/freetype/sw_ft_stroker.h \
+static_libs/freetype/sw_ft_types.h
diff --git a/src/lib/ector/software/sw_ft_math.c 
b/src/static_libs/freetype/sw_ft_math.c
similarity index 100%
rename from src/lib/ector/software/sw_ft_math.c
rename to src/static_libs/freetype/sw_ft_math.c
diff --git a/src/lib/ector/software/sw_ft_math.h 
b/src/static_libs/freetype/sw_ft_math.h
similarity index 100%
rename from src/lib/ector/software/sw_ft_math.h
rename to src/static_libs/freetype/sw_ft_math.h
diff --git a/src/lib/ector/software/sw_ft_raster.c 
b/src/static_libs/freetype/sw_ft_raster.c
similarity index 100%
rename from src/lib/ector/software/sw_ft_raster.c
rename to src/static_libs/freetype/sw_ft_raster.c
diff --git a/src/lib/ector/software/sw_ft_raster.h 
b/src/static_libs/freetype/sw_ft_raster.h
similarity index 100%
rename from src/lib/ector/software/sw_ft_raster.h
rename to src/static_libs/freetype/sw_ft_raster.h
diff --git a/src/lib/ector/software/sw_ft_stroker.c 
b/src/static_libs/freetype/sw_ft_stroker.c
similarity index 100%
rename from src/lib/ector/software/sw_ft_stroker.c
rename to src/static_libs/freetype/sw_ft_stroker.c
diff --git a/src/lib/ector/software/sw_ft_stroker.h 
b/src/static_libs/freetype/sw_ft_stroker.h
similarity index 100%
rename from src/lib/ector/software/sw_ft_stroker.h
rename to src/static_libs/freetype/sw_ft_stroker.h
diff --git a/src/lib/ector/software/sw_ft_types.h 
b/src/static_libs/freetype/sw_ft_types.h
similarity index 100%
rename from src/lib/ector/software/sw_ft_types.h
rename to src/static_libs/freetype/sw_ft_types.h

-- 




[EGIT] [core/efl] master 02/16: ecore_con: fix warning on Windows

2015-11-09 Thread Vincent Torri
cedric pushed a commit to branch master.

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

commit 2712260d751480e82d5329ff435570b902aa05be
Author: Vincent Torri 
Date:   Sat Nov 7 14:08:32 2015 +0100

ecore_con: fix warning on Windows

The macro ERROR is already defined on Windows, renaming it to ERROR_SSL.

Signed-off-by: Cedric BAIL 
---
 src/lib/ecore_con/ecore_con_ssl.c | 110 +++---
 1 file changed, 55 insertions(+), 55 deletions(-)

diff --git a/src/lib/ecore_con/ecore_con_ssl.c 
b/src/lib/ecore_con/ecore_con_ssl.c
index d66262d..f16dd69 100644
--- a/src/lib/ecore_con/ecore_con_ssl.c
+++ b/src/lib/ecore_con/ecore_con_ssl.c
@@ -152,178 +152,178 @@ _openssl_print_verify_error(int error)
 {
switch (error)
  {
-#define ERROR(X) \
+#define ERROR_SSL(X) \
 case (X):\
   ERR("%s", #X); \
   break
 #ifdef X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT
-ERROR(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_GET_CRL
-ERROR(X509_V_ERR_UNABLE_TO_GET_CRL);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_GET_CRL);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE
-ERROR(X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE
-ERROR(X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY
-ERROR(X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY);
 #endif
 #ifdef X509_V_ERR_CERT_SIGNATURE_FAILURE
-ERROR(X509_V_ERR_CERT_SIGNATURE_FAILURE);
+ERROR_SSL(X509_V_ERR_CERT_SIGNATURE_FAILURE);
 #endif
 #ifdef X509_V_ERR_CRL_SIGNATURE_FAILURE
-ERROR(X509_V_ERR_CRL_SIGNATURE_FAILURE);
+ERROR_SSL(X509_V_ERR_CRL_SIGNATURE_FAILURE);
 #endif
 #ifdef X509_V_ERR_CERT_NOT_YET_VALID
-ERROR(X509_V_ERR_CERT_NOT_YET_VALID);
+ERROR_SSL(X509_V_ERR_CERT_NOT_YET_VALID);
 #endif
 #ifdef X509_V_ERR_CERT_HAS_EXPIRED
-ERROR(X509_V_ERR_CERT_HAS_EXPIRED);
+ERROR_SSL(X509_V_ERR_CERT_HAS_EXPIRED);
 #endif
 #ifdef X509_V_ERR_CRL_NOT_YET_VALID
-ERROR(X509_V_ERR_CRL_NOT_YET_VALID);
+ERROR_SSL(X509_V_ERR_CRL_NOT_YET_VALID);
 #endif
 #ifdef X509_V_ERR_CRL_HAS_EXPIRED
-ERROR(X509_V_ERR_CRL_HAS_EXPIRED);
+ERROR_SSL(X509_V_ERR_CRL_HAS_EXPIRED);
 #endif
 #ifdef X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD
-ERROR(X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD);
+ERROR_SSL(X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD);
 #endif
 #ifdef X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD
-ERROR(X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD);
+ERROR_SSL(X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD);
 #endif
 #ifdef X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD
-ERROR(X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD);
+ERROR_SSL(X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD);
 #endif
 #ifdef X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD
-ERROR(X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD);
+ERROR_SSL(X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD);
 #endif
 #ifdef X509_V_ERR_OUT_OF_MEM
-ERROR(X509_V_ERR_OUT_OF_MEM);
+ERROR_SSL(X509_V_ERR_OUT_OF_MEM);
 #endif
 #ifdef X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT
-ERROR(X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT);
+ERROR_SSL(X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT);
 #endif
 #ifdef X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN
-ERROR(X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN);
+ERROR_SSL(X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY
-ERROR(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE
-ERROR(X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE);
 #endif
 #ifdef X509_V_ERR_CERT_CHAIN_TOO_LONG
-ERROR(X509_V_ERR_CERT_CHAIN_TOO_LONG);
+ERROR_SSL(X509_V_ERR_CERT_CHAIN_TOO_LONG);
 #endif
 #ifdef X509_V_ERR_CERT_REVOKED
-ERROR(X509_V_ERR_CERT_REVOKED);
+ERROR_SSL(X509_V_ERR_CERT_REVOKED);
 #endif
 #ifdef X509_V_ERR_INVALID_CA
-ERROR(X509_V_ERR_INVALID_CA);
+ERROR_SSL(X509_V_ERR_INVALID_CA);
 #endif
 #ifdef X509_V_ERR_PATH_LENGTH_EXCEEDED
-ERROR(X509_V_ERR_PATH_LENGTH_EXCEEDED);
+ERROR_SSL(X509_V_ERR_PATH_LENGTH_EXCEEDED);
 #endif
 #ifdef X509_V_ERR_INVALID_PURPOSE
-ERROR(X509_V_ERR_INVALID_PURPOSE);
+ERROR_SSL(X509_V_ERR_INVALID_PURPOSE);
 #endif
 #ifdef X509_V_ERR_CERT_UNTRUSTED
-ERROR(X509_V_ERR_CERT_UNTRUSTED);
+

[EGIT] [core/efl] master 12/16: eina: updated example to add eina_strbuf_tolower.

2015-11-09 Thread Srivardhan Hebbar
cedric pushed a commit to branch master.

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

commit 02d78670d48c904cff483b74e514640bd961ed06
Author: Srivardhan Hebbar 
Date:   Wed Oct 21 14:04:46 2015 -0700

eina: updated example to add eina_strbuf_tolower.

Summary:
Depends on D3200
Signed-off-by: Srivardhan Hebbar 

Reviewers: cedric

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D3205

Signed-off-by: Cedric BAIL 
---
 src/examples/eina/eina_strbuf_01.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/examples/eina/eina_strbuf_01.c 
b/src/examples/eina/eina_strbuf_01.c
index eaccd38..3f2b9ab 100644
--- a/src/examples/eina/eina_strbuf_01.c
+++ b/src/examples/eina/eina_strbuf_01.c
@@ -12,8 +12,11 @@ int main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
 
buf = eina_strbuf_new();
 
-   eina_strbuf_append_length(buf, "buffe", 5);
-   eina_strbuf_append_char(buf, 'r');
+   eina_strbuf_append_length(buf, "BUFFE", 5);
+   eina_strbuf_append_char(buf, 'R');
+   printf("%s\n", eina_strbuf_string_get(buf));
+
+   eina_strbuf_tolower(buf);
printf("%s\n", eina_strbuf_string_get(buf));
 
eina_strbuf_insert_escaped(buf, "my ", 0);

-- 




[EGIT] [core/efl] master 10/16: ector: remove inline on function pointer.

2015-11-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 12d8191cb59ecbdfc53d8fea80ef50a37f655392
Author: Cedric BAIL 
Date:   Tue Oct 20 16:38:52 2015 -0700

ector: remove inline on function pointer.
---
 src/lib/ector/software/ector_software_gradient.c | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/lib/ector/software/ector_software_gradient.c 
b/src/lib/ector/software/ector_software_gradient.c
index a68f777..9d7a9bc 100644
--- a/src/lib/ector/software/ector_software_gradient.c
+++ b/src/lib/ector/software/ector_software_gradient.c
@@ -366,7 +366,7 @@ destroy_color_table(Ector_Renderer_Software_Gradient_Data 
*gdata)
  }
 }
 
-inline static void
+static void
 _linear_helper_generic(uint *buffer, int length, 
Ector_Renderer_Software_Gradient_Data *g_data,
int t_fixed, int inc_fixed)
 {
@@ -429,9 +429,7 @@ fetch_linear_gradient(uint *buffer, Span_Data *data, int y, 
int x, int length)
   }
 }
 
-
-
-inline static void
+static void
 _radial_helper_generic(uint *buffer, int length, 
Ector_Renderer_Software_Gradient_Data *g_data, float det,
float delta_det, float delta_delta_det, float b, float 
delta_b)
 {
@@ -446,6 +444,7 @@ _radial_helper_generic(uint *buffer, int length, 
Ector_Renderer_Software_Gradien
  }
 }
 
+
 void
 fetch_radial_gradient(uint *buffer, Span_Data *data, int y, int x, int length)
 {

-- 




[EGIT] [core/efl] efl-1.16 02/03: ecore_con: fix warning on Windows

2015-11-09 Thread Vincent Torri
cedric pushed a commit to branch efl-1.16.

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

commit 79053e5582343f70e96fdc094e9abf3776bbf576
Author: Vincent Torri 
Date:   Sat Nov 7 14:08:32 2015 +0100

ecore_con: fix warning on Windows

The macro ERROR is already defined on Windows, renaming it to ERROR_SSL.

Signed-off-by: Cedric BAIL 
---
 src/lib/ecore_con/ecore_con_ssl.c | 110 +++---
 1 file changed, 55 insertions(+), 55 deletions(-)

diff --git a/src/lib/ecore_con/ecore_con_ssl.c 
b/src/lib/ecore_con/ecore_con_ssl.c
index d66262d..f16dd69 100644
--- a/src/lib/ecore_con/ecore_con_ssl.c
+++ b/src/lib/ecore_con/ecore_con_ssl.c
@@ -152,178 +152,178 @@ _openssl_print_verify_error(int error)
 {
switch (error)
  {
-#define ERROR(X) \
+#define ERROR_SSL(X) \
 case (X):\
   ERR("%s", #X); \
   break
 #ifdef X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT
-ERROR(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_GET_CRL
-ERROR(X509_V_ERR_UNABLE_TO_GET_CRL);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_GET_CRL);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE
-ERROR(X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE
-ERROR(X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY
-ERROR(X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY);
 #endif
 #ifdef X509_V_ERR_CERT_SIGNATURE_FAILURE
-ERROR(X509_V_ERR_CERT_SIGNATURE_FAILURE);
+ERROR_SSL(X509_V_ERR_CERT_SIGNATURE_FAILURE);
 #endif
 #ifdef X509_V_ERR_CRL_SIGNATURE_FAILURE
-ERROR(X509_V_ERR_CRL_SIGNATURE_FAILURE);
+ERROR_SSL(X509_V_ERR_CRL_SIGNATURE_FAILURE);
 #endif
 #ifdef X509_V_ERR_CERT_NOT_YET_VALID
-ERROR(X509_V_ERR_CERT_NOT_YET_VALID);
+ERROR_SSL(X509_V_ERR_CERT_NOT_YET_VALID);
 #endif
 #ifdef X509_V_ERR_CERT_HAS_EXPIRED
-ERROR(X509_V_ERR_CERT_HAS_EXPIRED);
+ERROR_SSL(X509_V_ERR_CERT_HAS_EXPIRED);
 #endif
 #ifdef X509_V_ERR_CRL_NOT_YET_VALID
-ERROR(X509_V_ERR_CRL_NOT_YET_VALID);
+ERROR_SSL(X509_V_ERR_CRL_NOT_YET_VALID);
 #endif
 #ifdef X509_V_ERR_CRL_HAS_EXPIRED
-ERROR(X509_V_ERR_CRL_HAS_EXPIRED);
+ERROR_SSL(X509_V_ERR_CRL_HAS_EXPIRED);
 #endif
 #ifdef X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD
-ERROR(X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD);
+ERROR_SSL(X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD);
 #endif
 #ifdef X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD
-ERROR(X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD);
+ERROR_SSL(X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD);
 #endif
 #ifdef X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD
-ERROR(X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD);
+ERROR_SSL(X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD);
 #endif
 #ifdef X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD
-ERROR(X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD);
+ERROR_SSL(X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD);
 #endif
 #ifdef X509_V_ERR_OUT_OF_MEM
-ERROR(X509_V_ERR_OUT_OF_MEM);
+ERROR_SSL(X509_V_ERR_OUT_OF_MEM);
 #endif
 #ifdef X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT
-ERROR(X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT);
+ERROR_SSL(X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT);
 #endif
 #ifdef X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN
-ERROR(X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN);
+ERROR_SSL(X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY
-ERROR(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY);
 #endif
 #ifdef X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE
-ERROR(X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE);
+ERROR_SSL(X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE);
 #endif
 #ifdef X509_V_ERR_CERT_CHAIN_TOO_LONG
-ERROR(X509_V_ERR_CERT_CHAIN_TOO_LONG);
+ERROR_SSL(X509_V_ERR_CERT_CHAIN_TOO_LONG);
 #endif
 #ifdef X509_V_ERR_CERT_REVOKED
-ERROR(X509_V_ERR_CERT_REVOKED);
+ERROR_SSL(X509_V_ERR_CERT_REVOKED);
 #endif
 #ifdef X509_V_ERR_INVALID_CA
-ERROR(X509_V_ERR_INVALID_CA);
+ERROR_SSL(X509_V_ERR_INVALID_CA);
 #endif
 #ifdef X509_V_ERR_PATH_LENGTH_EXCEEDED
-ERROR(X509_V_ERR_PATH_LENGTH_EXCEEDED);
+ERROR_SSL(X509_V_ERR_PATH_LENGTH_EXCEEDED);
 #endif
 #ifdef X509_V_ERR_INVALID_PURPOSE
-ERROR(X509_V_ERR_INVALID_PURPOSE);
+ERROR_SSL(X509_V_ERR_INVALID_PURPOSE);
 #endif
 #ifdef X509_V_ERR_CERT_UNTRUSTED
-ERROR(X509_V_ERR_CERT_UNTRUSTED);
+

[EGIT] [core/efl] efl-1.16 03/03: emile: deprecate the use of SSLv3 with GNUTLS backend to.

2015-11-09 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.16.

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

commit 8e186dec07e8e6bee5a48e1299aaaf85bd4b2e48
Author: Cedric BAIL 
Date:   Mon Nov 9 10:30:00 2015 -0800

emile: deprecate the use of SSLv3 with GNUTLS backend to.
---
 src/lib/emile/emile_cipher_gnutls.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/lib/emile/emile_cipher_gnutls.c 
b/src/lib/emile/emile_cipher_gnutls.c
index d9577d7..491ba78 100644
--- a/src/lib/emile/emile_cipher_gnutls.c
+++ b/src/lib/emile/emile_cipher_gnutls.c
@@ -342,7 +342,6 @@ emile_cipher_server_listen(Emile_Cipher_Type t)
int ret;
 
if (t != EMILE_SSLv23 &&
-   t != EMILE_SSLv3 &&
t != EMILE_TLSv1)
  return NULL;
 
@@ -382,12 +381,10 @@ emile_cipher_server_connect(Emile_Cipher_Type t)
  {
   case EMILE_SSLv23:
  break;
-  case EMILE_SSLv3:
- priority = 
"NORMAL:%VERIFY_ALLOW_X509_V1_CA_CRT:!VERS-TLS1.0:!VERS-TLS1.1:!VERS-TLS1.2";
- break;
   case EMILE_TLSv1:
  priority = "NORMAL:%VERIFY_ALLOW_X509_V1_CA_CRT:!VERS-SSL3.0";
  break;
+  case EMILE_SSLv3:
   default:
  return NULL;
  }

-- 




[EGIT] [core/efl] efl-1.16 01/03: efreet: fix warning

2015-11-09 Thread Vincent Torri
cedric pushed a commit to branch efl-1.16.

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

commit 905c0fe807c249a99447e075aa9fc6ab39c51b11
Author: Vincent Torri 
Date:   Sat Nov 7 14:05:56 2015 +0100

efreet: fix warning

Commit 0cd59bb1 introduced the use of basename()
which needs libgen.h (hence winsock2.h before) on Windows.

Signed-off-by: Cedric BAIL 
---
 src/bin/efreet/efreet_desktop_cache_create.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/bin/efreet/efreet_desktop_cache_create.c 
b/src/bin/efreet/efreet_desktop_cache_create.c
index 399cc81..849c491 100644
--- a/src/bin/efreet/efreet_desktop_cache_create.c
+++ b/src/bin/efreet/efreet_desktop_cache_create.c
@@ -10,6 +10,11 @@
 #include 
 #endif
 
+#ifdef _WIN32
+# include 
+# include 
+#endif
+
 #include 
 #include 
 #include 

-- 




[EGIT] [core/elementary] master 02/09: calendar: weekdays do not get translated when language is dynamically changed issue fix

2015-11-09 Thread Shilpa Singh
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=876889b8a75acbb7eaf520eff7ce420b8757d835

commit 876889b8a75acbb7eaf520eff7ce420b8757d835
Author: Shilpa Singh 
Date:   Mon Nov 9 12:21:09 2015 -0800

calendar: weekdays do not get translated when language is dynamically 
changed issue fix

Summary:
When calendar widget is already created and if we change language,
weekdays do not get translated because weekday string is statically
stored only during create.
Update the weekdays again when object is changed.

@fix

Test Plan:
1.Create and show calendar widget
2.Change the language
Weekdays do not get translated

Reviewers: Hermet, cedric

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D3149

Signed-off-by: Cedric BAIL 
---
 src/lib/elm_calendar.c| 122 +++---
 src/lib/elm_widget_calendar.h |   1 +
 2 files changed, 43 insertions(+), 80 deletions(-)

diff --git a/src/lib/elm_calendar.c b/src/lib/elm_calendar.c
index 038307b..c90dfa0 100644
--- a/src/lib/elm_calendar.c
+++ b/src/lib/elm_calendar.c
@@ -27,50 +27,6 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
{NULL, NULL}
 };
 
-/* This two functions should be moved in Eina for next release. */
-static Eina_Tmpstr *
-_eina_tmpstr_strftime(const char *format, const struct tm *tm)
-{
-   const size_t flen = strlen(format);
-   size_t buflen = 16; // An arbitrary starting size
-   char *buf = NULL;
-
-   do {
-  char *tmp;
-  size_t len;
-
-  tmp = realloc(buf, buflen * sizeof(char));
-  if (!tmp) goto on_error;
-  buf = tmp;
-
-  len = strftime(buf, buflen, format, tm);
-  // Check if we have the expected result and return it.
-  if ((len > 0 && len < buflen) || (len == 0 && flen == 0))
-{
-   Eina_Tmpstr *r;
-
-   r = eina_tmpstr_add_length(buf, len + 1);
-   free(buf);
-   return r;
-}
-
-  /* Possibly buf overflowed - try again with a bigger buffer */
-  buflen <<= 1; // multiply buffer size by 2
-   } while (buflen < 128 * flen);
-
- on_error:
-   free(buf);
-   return NULL;
-}
-
-static char *
-_eina_tmpstr_steal(Eina_Tmpstr *s)
-{
-   char *r = s ? strdup(s) : NULL;
-   eina_tmpstr_del(s);
-   return r;
-}
-
 static Eina_Bool _key_action_move(Evas_Object *obj, const char *params);
 
 static const Elm_Action key_actions[] = {
@@ -216,19 +172,19 @@ _disable(Elm_Calendar_Data *sd,
 static char *
 _format_month_year(struct tm *selected_time)
 {
-   return _eina_tmpstr_steal(_eina_tmpstr_strftime(E_("%B %Y"), 
selected_time));
+   return eina_strftime(E_("%B %Y"), selected_time);
 }
 
 static char *
 _format_month(struct tm *selected_time)
 {
-   return _eina_tmpstr_steal(_eina_tmpstr_strftime(E_("%B"), selected_time));
+   return eina_strftime(E_("%B"), selected_time);
 }
 
 static char *
 _format_year(struct tm *selected_time)
 {
-   return _eina_tmpstr_steal(_eina_tmpstr_strftime(E_("%Y"), selected_time));
+   return eina_strftime(E_("%Y"), selected_time);
 }
 
 static inline void
@@ -623,16 +579,49 @@ _set_headers(Evas_Object *obj)
static char part[] = "ch_0.text";
int i;
ELM_CALENDAR_DATA_GET(obj, sd);
+   time_t weekday = 259200; /* Just the first sunday since epoch */
 
elm_layout_freeze(obj);
 
sd->filling = EINA_TRUE;
-   for (i = 0; i < ELM_DAY_LAST; i++)
+   if (sd->weekdays_set)
  {
-part[3] = i + '0';
-elm_layout_text_set
-  (obj, part, sd->weekdays[(i + sd->first_week_day) % ELM_DAY_LAST]);
+for (i = 0; i < ELM_DAY_LAST; i++)
+  {
+ part[3] = i + '0';
+ elm_layout_text_set(obj, part, sd->weekdays[(i + 
sd->first_week_day) % ELM_DAY_LAST]);
+  }
  }
+   else
+ {
+for (i = 0; i < ELM_DAY_LAST; i++)
+  {
+ struct tm *info;
+
+ /* I don't know of a better way of doing it */
+ info = gmtime();
+ if (info)
+   {
+  char *buf;
+  buf = eina_strftime("%a", info);
+  if (buf)
+{
+   sd->weekdays[i] = eina_stringshare_add(buf);
+   free(buf);
+}
+  else
+{
+   /* If we failed getting day, get a default value */
+   sd->weekdays[i] = _days_abbrev[i];
+   WRN("Failed getting weekday name for '%s' from locale.",
+   _days_abbrev[i]);
+}
+   }
+ part[3] = i + '0';
+ elm_layout_text_set(obj, part, sd->weekdays[i]);
+ weekday += 86400; /* Advance by a day */
+  }
+}
sd->filling = EINA_FALSE;
 
   

[EGIT] [core/elementary] master 06/09: toolbar: remove a legacy code.

2015-11-09 Thread Youngbok Shin
cedric pushed a commit to branch master.

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

commit c315ff1876afad4f340297291123072e6c4ee9d6
Author: Youngbok Shin 
Date:   Mon Nov 9 12:24:08 2015 -0800

toolbar: remove a legacy code.

Summary:
The icon is already sub object of VIEW(item) by content_set.
We don't need to make icon as a sub object of obj again.
It was used when VIEW(item) is Edje object.

Test Plan: None

Reviewers: Hermet, eagleeye, cedric

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D3249

Signed-off-by: Cedric BAIL 
---
 src/lib/elm_toolbar.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c
index 5d46d1f..0484544 100644
--- a/src/lib/elm_toolbar.c
+++ b/src/lib/elm_toolbar.c
@@ -2412,7 +2412,6 @@ _item_new(Evas_Object *obj,
 elm_layout_signal_emit(VIEW(it), "elm,state,icon,visible", "elm");
 elm_layout_signal_emit(VIEW(it), "elm,icon,visible", "elm");
 evas_object_show(it->icon);
-elm_widget_sub_object_add(obj, it->icon);
  }
else
  {

-- 




[EGIT] [core/efl] master 04/16: ecore_cocoa/evas_gl_cocoa: fix indent, remove printf, and add DBG messages

2015-11-09 Thread Nicolas Aguirre
cedric pushed a commit to branch master.

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

commit aab530e3473fa06ce035d2a30b200caa3b3c0ddc
Author: Nicolas Aguirre 
Date:   Thu Aug 6 19:06:34 2015 +0200

ecore_cocoa/evas_gl_cocoa: fix indent, remove printf, and add DBG messages

Signed-off-by: Cedric BAIL 
---
 src/lib/ecore_cocoa/ecore_cocoa.m  |  26 +-
 .../ecore_evas/engines/cocoa/ecore_evas_cocoa.c| 607 ++---
 src/modules/evas/engines/gl_cocoa/evas_engine.c| 314 +--
 .../evas/engines/gl_cocoa/evas_gl_cocoa_main.m |  45 +-
 4 files changed, 471 insertions(+), 521 deletions(-)

diff --git a/src/lib/ecore_cocoa/ecore_cocoa.m 
b/src/lib/ecore_cocoa/ecore_cocoa.m
index 568a828..d4e8580 100644
--- a/src/lib/ecore_cocoa/ecore_cocoa.m
+++ b/src/lib/ecore_cocoa/ecore_cocoa.m
@@ -33,8 +33,6 @@ ecore_cocoa_init(void)
if (++_ecore_cocoa_init_count != 1)
  return _ecore_cocoa_init_count;
 
-   DBG("Ecore Cocoa Init");
-
if (!ecore_init())
  return --_ecore_cocoa_init_count;
 
@@ -48,6 +46,8 @@ ecore_cocoa_init(void)
 return 0;
  }
 
+   DBG("");
+   
ECORE_COCOA_EVENT_GOT_FOCUS  = ecore_event_type_new();
ECORE_COCOA_EVENT_LOST_FOCUS = ecore_event_type_new();
ECORE_COCOA_EVENT_RESIZE = ecore_event_type_new();
@@ -163,20 +163,6 @@ _ecore_cocoa_event_key(NSEvent *event, int keyType)
return ev;
 }
 
-static inline Eina_Bool
-_nsevent_window_is_type_of(NSEvent *event, Class class)
-{
-   /* An NSPeriodic event has no window (undefined behaviour) */
-   if ([event type] == NSPeriodic) return EINA_FALSE;
-   return [[event window] isKindOfClass:class];
-}
-
-static inline Eina_Bool
-_has_ecore_cocoa_window(NSEvent *event)
-{
-   return _nsevent_window_is_type_of(event, [EcoreCocoaWindow class]);
-}
-
 EAPI Eina_Bool
 ecore_cocoa_feed_events(void *anEvent)
 {
@@ -186,7 +172,7 @@ ecore_cocoa_feed_events(void *anEvent)
unsigned int time = (unsigned int)((unsigned long long)(ecore_time_get() * 
1000.0) & 0x);
Eina_Bool pass = EINA_FALSE;
 
-   DBG("Feed events, event type ; %d", [event type]);
+   DBG("Feed events, event type ; %lu", [event type]);
 
switch ([event type])
  {
@@ -381,14 +367,14 @@ ecore_cocoa_feed_events(void *anEvent)
 }
 
 EAPI void
-ecore_cocoa_screen_size_get(Ecore_Cocoa_Screen *screen, int *w, int *h)
+ecore_cocoa_screen_size_get(Ecore_Cocoa_Screen *screen EINA_UNUSED, int *w, 
int *h)
 {
NSSize pt =  [[[NSScreen screens] objectAtIndex:0] frame].size;
 
-   DBG("Screen size get : %dx%d", w, h);
-
if (w) *w = (int)pt.width;
if (h) *h = (int)pt.height;
+   
+   DBG("Screen size get : %dx%d", (int)pt.width, (int)pt.height);
 }
 
 EAPI int
diff --git a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c 
b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c
index 5fe7a73..fc0241f 100644
--- a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c
+++ b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c
@@ -41,13 +41,9 @@ static int  _ecore_evas_init_count = 0;
 // FIXME: In case we have a lot of windows per app, we should probably use 
another container
 // like a rbtree or a dictionnary-based container
 static Eina_List*ecore_evases = NULL;
-static Ecore_Event_Handler  *ecore_evas_event_handlers[5] = {
-  0
-};
+static Ecore_Event_Handler  *ecore_evas_event_handlers[5] = { 0 };
 static Ecore_Idle_Enterer   *ecore_evas_idle_enterer = NULL;
 
-//static const char   *ecore_evas_cocoa_default = "EFL Cocoa";
-
 static int
 _render_updates_process(Ecore_Evas *ee, Eina_List *updates)
 {
@@ -55,11 +51,11 @@ _render_updates_process(Ecore_Evas *ee, Eina_List *updates)
 
if (ee->prop.avoid_damage)
  {
-   if (updates)
-   {
-   _ecore_evas_idle_timeout_update(ee);
-   rend = 1;
-   }
+if (updates)
+  {
+ _ecore_evas_idle_timeout_update(ee);
+ rend = 1;
+  }
 
  }
else if (((ee->visible) && (ee->draw_ok)) ||
@@ -70,11 +66,11 @@ _render_updates_process(Ecore_Evas *ee, Eina_List *updates)
   {
  if (ee->shaped)
{
- //TODO
+  //TODO
}
  if (ee->alpha)
{
- //TODO
+  //TODO
}
  _ecore_evas_idle_timeout_update(ee);
  rend = 1;
@@ -97,7 +93,7 @@ _render_updates_process(Ecore_Evas *ee, Eina_List *updates)
 if ((t - t0) > 1.0)
   {
  td = t - t0;
- printf("FPS: %3.3f\n", (double)frames / td);
+ DBG("FPS: %3.3f", (double)frames / td);
  frames = 0;
  t0 = t;
   }
@@ -107,24 +103,9 @@ _render_updates_process(Ecore_Evas *ee, Eina_List *updates)
 }
 
 static int

[EGIT] [core/efl] master 14/16: eina: fix computation of sqrt near 1.

2015-11-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit e45b8015772ba0cee01a111080e4c04ea513c23f
Author: Cedric BAIL 
Date:   Thu Oct 22 16:55:10 2015 -0700

eina: fix computation of sqrt near 1.

This is still not so good below 1.

@fix
---
 src/lib/eina/eina_inline_f16p16.x |  4 ++--
 src/lib/eina/eina_inline_f32p32.x |  4 ++--
 src/lib/eina/eina_inline_f8p24.x  | 12 ++--
 src/tests/eina/eina_test_quaternion.c |  2 +-
 4 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/lib/eina/eina_inline_f16p16.x 
b/src/lib/eina/eina_inline_f16p16.x
index e16d188..4d906d9 100644
--- a/src/lib/eina/eina_inline_f16p16.x
+++ b/src/lib/eina/eina_inline_f16p16.x
@@ -58,9 +58,9 @@ eina_f16p16_sqrt(Eina_F16p16 a)
root = 0; /* Clear root */
remHi = 0; /* Clear high part of partial remainder */
remLo = a; /* Get argument into low part of partial remainder */
-   count = (15 + (16 >> 1)); /* Load loop counter */
+   count = 16; /* Load loop counter */
do {
-  remHi = (remHi << 2) | (remLo >> 30);
+  remHi = (remHi << 16) | (remLo >> 16);
   remLo <<= 2; /* get 2 bits of arg */
   root <<= 1; /* Get ready for the next bit in the root */
   testDiv = (root << 1) + 1; /* Test radical */
diff --git a/src/lib/eina/eina_inline_f32p32.x 
b/src/lib/eina/eina_inline_f32p32.x
index f0c5fd8..cb69e60 100644
--- a/src/lib/eina/eina_inline_f32p32.x
+++ b/src/lib/eina/eina_inline_f32p32.x
@@ -97,9 +97,9 @@ eina_f32p32_sqrt(Eina_F32p32 a)
root = 0; /* Clear root */
remHi = 0; /* Clear high part of partial remainder */
remLo = a; /* Get argument into low part of partial remainder */
-   count = (31 + (32 >> 1)); /* Load loop counter */
+   count = 32; /* Load loop counter */
do {
-  remHi = (remHi << 2) | (remLo >> 30);
+  remHi = (remHi << 32) | (remLo >> 32);
   remLo <<= 2; /* get 2 bits of arg */
   root <<= 1; /* Get ready for the next bit in the root */
   testDiv = (root << 1) + 1; /* Test radical */
diff --git a/src/lib/eina/eina_inline_f8p24.x b/src/lib/eina/eina_inline_f8p24.x
index f80bf61..315dbdf 100644
--- a/src/lib/eina/eina_inline_f8p24.x
+++ b/src/lib/eina/eina_inline_f8p24.x
@@ -58,17 +58,17 @@ eina_f8p24_sqrt(Eina_F8p24 a)
root = 0; /* Clear root */
remHi = 0; /* Clear high part of partial remainder */
remLo = a; /* Get argument into low part of partial remainder */
-   count = (23 + (24 >> 1)); /* Load loop counter */
+   count = 24; /* Load loop counter */
do {
-  remHi = (remHi << 2) | (remLo >> 30);
+  remHi = (remHi << 8) | (remLo >> 24);
   remLo <<= 2; /* get 2 bits of arg */
   root <<= 1; /* Get ready for the next bit in the root */
   testDiv = (root << 1) + 1; /* Test radical */
   if (remHi >= testDiv)
-   {
-  remHi -= testDiv;
-  root++;
-   }
+{
+   remHi -= testDiv;
+   root++;
+}
} while (count-- != 0);
return (root);
 }
diff --git a/src/tests/eina/eina_test_quaternion.c 
b/src/tests/eina/eina_test_quaternion.c
index 2401dcb..da97dea 100644
--- a/src/tests/eina/eina_test_quaternion.c
+++ b/src/tests/eina/eina_test_quaternion.c
@@ -180,7 +180,7 @@ START_TEST(eina_test_quaternion_f16p16)
fail_if(!eina_quaternion_cmp(, ));
 
res = eina_quaternion_f16p16_norm();
-   fail_if(res != 131072);
+   fail_if(res != 131070);
 
eina_quaternion_f16p16_negative(, );
fail_if(s.x != s.y ||

-- 




[EGIT] [core/efl] master 07/16: ector: follow function naming convention.

2015-11-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit ef975a9fd221a89695d69cd45318efd329d6781b
Author: Cedric BAIL 
Date:   Tue Oct 20 15:30:06 2015 -0700

ector: follow function naming convention.
---
 src/lib/ector/software/ector_drawhelper.c  | 8 
 src/lib/ector/software/ector_drawhelper_neon.c | 2 +-
 src/lib/ector/software/ector_drawhelper_private.h  | 8 
 src/lib/ector/software/ector_drawhelper_sse2.c | 2 +-
 src/lib/ector/software/ector_software_gradient.c   | 2 +-
 src/lib/ector/software/ector_software_rasterizer.c | 2 +-
 6 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/lib/ector/software/ector_drawhelper.c 
b/src/lib/ector/software/ector_drawhelper.c
index 43cf038..518cf92 100644
--- a/src/lib/ector/software/ector_drawhelper.c
+++ b/src/lib/ector/software/ector_drawhelper.c
@@ -159,9 +159,9 @@ RGBA_Comp_Func ector_comp_func_span_get(Ector_Rop op, uint 
color, Eina_Bool src_
return func_for_mode[op];
 }
 
-void init_draw_helper()
+void draw_helper_init()
 {
-   init_drawhelper_gradient();
-   init_draw_helper_sse2();
-   init_draw_helper_neon();
+   drawhelper_gradient_init();
+   draw_helper_sse2_init();
+   draw_helper_neon_init();
 }
diff --git a/src/lib/ector/software/ector_drawhelper_neon.c 
b/src/lib/ector/software/ector_drawhelper_neon.c
index 59e032f..a523119 100644
--- a/src/lib/ector/software/ector_drawhelper_neon.c
+++ b/src/lib/ector/software/ector_drawhelper_neon.c
@@ -214,7 +214,7 @@ comp_func_source_over_sse2(uint * __restrict dest, const 
uint * __restrict src,
 #endif
 
 void
-init_draw_helper_neon()
+draw_helper_neon_init()
 {
 #ifdef BUILD_NEON
if (eina_cpu_features_get() & EINA_CPU_NEON)
diff --git a/src/lib/ector/software/ector_drawhelper_private.h 
b/src/lib/ector/software/ector_drawhelper_private.h
index e446ed2..d15a8f6 100644
--- a/src/lib/ector/software/ector_drawhelper_private.h
+++ b/src/lib/ector/software/ector_drawhelper_private.h
@@ -93,11 +93,11 @@ typedef void (*RGBA_Comp_Func_Solid)(uint *dest, int 
length, uint color, uint co
 extern RGBA_Comp_Func_Solid func_for_mode_solid[ECTOR_ROP_LAST];
 extern RGBA_Comp_Func func_for_mode[ECTOR_ROP_LAST];
 
-void init_drawhelper_gradient();
-void init_draw_helper_sse2();
-void init_draw_helper_neon();
+void drawhelper_gradient_init();
+void draw_helper_sse2_init();
+void draw_helper_neon_init();
 
-void init_draw_helper();
+void draw_helper_init();
 
 RGBA_Comp_Func_Solid ector_comp_func_solid_span_get(Ector_Rop op, uint color);
 RGBA_Comp_Func ector_comp_func_span_get(Ector_Rop op, uint color, Eina_Bool 
src_alpha);
diff --git a/src/lib/ector/software/ector_drawhelper_sse2.c 
b/src/lib/ector/software/ector_drawhelper_sse2.c
index 3af1bc1..402efc8 100644
--- a/src/lib/ector/software/ector_drawhelper_sse2.c
+++ b/src/lib/ector/software/ector_drawhelper_sse2.c
@@ -319,7 +319,7 @@ comp_func_source_over_sse2(uint *dest, const uint *src, int 
length, uint color,
 #endif
 
 void
-init_draw_helper_sse2()
+draw_helper_sse2_init()
 {
 #ifdef BUILD_SSE3
if (eina_cpu_features_get() & EINA_CPU_SSE2)
diff --git a/src/lib/ector/software/ector_software_gradient.c 
b/src/lib/ector/software/ector_software_gradient.c
index 707c345..4a978e0 100644
--- a/src/lib/ector/software/ector_software_gradient.c
+++ b/src/lib/ector/software/ector_software_gradient.c
@@ -475,7 +475,7 @@ fetch_radial_gradient(uint *buffer, Span_Data *data, int y, 
int x, int length)
 
 
 void
-init_drawhelper_gradient()
+drawhelper_gradient_init()
 {
radial_helper = _radial_helper_generic;
linear_helper = _linear_helper_generic;
diff --git a/src/lib/ector/software/ector_software_rasterizer.c 
b/src/lib/ector/software/ector_software_rasterizer.c
index 0cb74a0..eb6ba8c 100644
--- a/src/lib/ector/software/ector_software_rasterizer.c
+++ b/src/lib/ector/software/ector_software_rasterizer.c
@@ -315,7 +315,7 @@ void ector_software_rasterizer_init(Software_Rasterizer 
*rasterizer)
rasterizer->fill_data.clip.enabled = EINA_FALSE;
rasterizer->fill_data.unclipped_blend = 0;
rasterizer->fill_data.blend = 0;
-   init_draw_helper();
+   draw_helper_init();
 }
 
 void ector_software_rasterizer_done(Software_Rasterizer *rasterizer)

-- 




[EGIT] [core/efl] master 15/16: eina: add eina_tmpstr_manage_new, eina_tmpstr_manage_new_length APIs

2015-11-09 Thread Shilpa Singh
cedric pushed a commit to branch master.

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

commit 297ea39a5cd11d1b0697ded2f46412ecddba63b7
Author: Shilpa Singh 
Date:   Tue Nov 3 14:01:51 2015 -0800

eina: add eina_tmpstr_manage_new, eina_tmpstr_manage_new_length APIs

Summary:
Add eina_tmpstr_manage_new, eina_tmpstr_manage_new_length APIs, these APIs 
create new tmpstr but reuse the input string memory.

@feature

Test Plan: Test case and example updated

Reviewers: tasn, cedric

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D3178

Signed-off-by: Cedric BAIL 
---
 src/examples/eina/eina_tmpstr_01.c | 14 +++-
 src/lib/eina/eina_tmpstr.c | 35 ++--
 src/lib/eina/eina_tmpstr.h | 32 ++
 src/tests/eina/eina_test_tmpstr.c  | 67 ++
 4 files changed, 145 insertions(+), 3 deletions(-)

diff --git a/src/examples/eina/eina_tmpstr_01.c 
b/src/examples/eina/eina_tmpstr_01.c
index 36d8c62..68158ca 100644
--- a/src/examples/eina/eina_tmpstr_01.c
+++ b/src/examples/eina/eina_tmpstr_01.c
@@ -8,6 +8,9 @@ int
 main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
 {
const char *str;
+   char *str2;
+   const char *str3;
+   int len;
const char *prologe = "The Cylons were created by man. They rebelled. They "
  "evolved.";
 
@@ -15,9 +18,18 @@ main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
 
str = eina_tmpstr_add_length(prologe, 31);
printf("%s\n", str);
-   printf("length: %d\n", eina_tmpstr_len(str));
+   len = eina_tmpstr_len(str);
+   printf("length: %d\n", len);
eina_tmpstr_del(str);
 
+   str2 = (char *)calloc(61, sizeof(char));
+   strcpy(str2, prologe);
+   str3 = eina_tmpstr_manage_new(str2);
+   printf("%s\n", str3);
+   len = eina_tmpstr_len(str3);
+   printf("length: %d\n", len);
+   eina_tmpstr_del(str3);
+
eina_shutdown();
 
return 0;
diff --git a/src/lib/eina/eina_tmpstr.c b/src/lib/eina/eina_tmpstr.c
index 43824b7..c7d26ee 100644
--- a/src/lib/eina/eina_tmpstr.c
+++ b/src/lib/eina/eina_tmpstr.c
@@ -47,6 +47,7 @@ struct _Str
size_t length;
Str *next;
char *str;
+   Eina_Bool ma : 1;
 };
 
 static Eina_Lock _mutex;
@@ -78,6 +79,7 @@ eina_tmpstr_add_length(const char *str, size_t length)
s->str = ((char *)s) + sizeof(Str);
strncpy(s->str, str, length);
s->str[length] = '\0';
+   s->ma = EINA_FALSE;
eina_lock_take(&_mutex);
s->next = strs;
strs = s;
@@ -86,10 +88,38 @@ eina_tmpstr_add_length(const char *str, size_t length)
 }
 
 EAPI Eina_Tmpstr *
+eina_tmpstr_manage_new_length(char *str, size_t length)
+{
+   Str *s;
+
+   if (!str || !length) return NULL;
+   s = calloc(1, sizeof(Str));
+   if (!s) return NULL;
+   s->length = length;
+   s->str = str;
+   s->ma = EINA_TRUE;
+   eina_lock_take(&_mutex);
+   s->next = strs;
+   strs = s;
+   eina_lock_release(&_mutex);
+   return s->str;
+}
+
+EAPI Eina_Tmpstr *
+eina_tmpstr_manage_new(char *str)
+{
+   size_t len;
+
+   if (!str) return NULL;
+   len = strlen(str);
+   return eina_tmpstr_manage_new_length(str, len);
+}
+
+EAPI Eina_Tmpstr *
 eina_tmpstr_add(const char *str)
 {
size_t len;
-   
+
if (!str) return NULL;
len = strlen(str);
return eina_tmpstr_add_length(str, len);
@@ -99,7 +129,7 @@ EAPI void
 eina_tmpstr_del(Eina_Tmpstr *tmpstr)
 {
Str *s, *sp;
-   
+
if ((!strs) || (!tmpstr)) return;
eina_lock_take(&_mutex);
for (sp = NULL, s = strs; s; sp = s, s = s->next)
@@ -108,6 +138,7 @@ eina_tmpstr_del(Eina_Tmpstr *tmpstr)
   {
  if (sp) sp->next = s->next;
  else strs = s->next;
+ if (s->ma) free(s->str);
  free(s);
  break;
   }
diff --git a/src/lib/eina/eina_tmpstr.h b/src/lib/eina/eina_tmpstr.h
index e516cfd..151fcd1 100644
--- a/src/lib/eina/eina_tmpstr.h
+++ b/src/lib/eina/eina_tmpstr.h
@@ -238,6 +238,38 @@ EAPI size_t eina_tmpstr_len(Eina_Tmpstr *tmpstr);
 EAPI void eina_tmpstr_del(Eina_Tmpstr *tmpstr) EINA_ARG_NONNULL(1);
 
 /**
+ * @brief Add a new temporary string using the passed string. The passed
+ * string is used directly as the buffer. The passed string must be malloced.
+ *
+ * @param str the input string to manage.
+ * @return A pointer to the tmp string that is a standard C string.
+ *
+ * This function creates a new temporary string. On error, @c NULL is
+ * returned. To free the resources, use eina_tmpstr_del().
+ *
+ * @see eina_tmpstr_del()
+ * @since 1.17.0
+ */
+EAPI Eina_Tmpstr *eina_tmpstr_manage_new(char *str) EINA_WARN_UNUSED_RESULT;
+
+/**
+ * @brief Add a new temporary string using the passed string. The passed
+ * string is used directly as the buffer. The passed string must be malloced.
+ *
+ * @param str the input string to manage.
+ * @param length the 

[EGIT] [core/efl] master 09/16: ector: cleanup code convention of the gradient code.

2015-11-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit dcc08940494b55d08fb90505698f37b0c5732cf8
Author: Cedric BAIL 
Date:   Tue Oct 20 16:36:20 2015 -0700

ector: cleanup code convention of the gradient code.
---
 src/lib/ector/software/ector_software_gradient.c | 213 +--
 1 file changed, 118 insertions(+), 95 deletions(-)

diff --git a/src/lib/ector/software/ector_software_gradient.c 
b/src/lib/ector/software/ector_software_gradient.c
index 4a978e0..a68f777 100644
--- a/src/lib/ector/software/ector_software_gradient.c
+++ b/src/lib/ector/software/ector_software_gradient.c
@@ -16,19 +16,20 @@
 #define FIXPT_BITS 8
 #define FIXPT_SIZE (1<gd->s == EFL_GFX_GRADIENT_SPREAD_REPEAT)
  {
 ipos = ipos % GRADIENT_STOPTABLE_SIZE;
@@ -50,11 +51,11 @@ _gradient_clamp(const Ector_Renderer_Software_Gradient_Data 
*data, int ipos)
return ipos;
 }
 
-
 static uint
 _gradient_pixel_fixed(const Ector_Renderer_Software_Gradient_Data *data, int 
fixed_pos)
 {
int ipos = (fixed_pos + (FIXPT_SIZE / 2)) >> FIXPT_BITS;
+
return data->color_table[_gradient_clamp(data, ipos)];
 }
 
@@ -62,6 +63,7 @@ static inline uint
 _gradient_pixel(const Ector_Renderer_Software_Gradient_Data *data, float pos)
 {
int ipos = (int)(pos * (GRADIENT_STOPTABLE_SIZE - 1) + (float)(0.5));
+
return data->color_table[_gradient_clamp(data, ipos)];
 }
 
@@ -70,8 +72,8 @@ _gradient_pixel(const Ector_Renderer_Software_Gradient_Data 
*data, float pos)
 #include 
 
 #define GRADIENT_STOPTABLE_SIZE_SHIFT 10
-typedef union{ __m128i v; int i[4];}vec4_i;
-typedef union{ __m128 v; float f[4];}vec4_f;
+typedef union { __m128i v; int i[4];}  vec4_i;
+typedef union { __m128 v; float f[4];} vec4_f;
 
 #define FETCH_CLAMP_INIT_F \
   __m128 v_min = _mm_set1_ps(0.0f); \
@@ -95,7 +97,6 @@ typedef union{ __m128 v; float f[4];}vec4_f;
   vec4_i index_vec; \
   index_vec.v = _mm_cvttps_epi32(_mm_min_ps(v_max, _mm_max_ps(v_min, 
v_index)));
 
-
 #define FETCH_EPILOGUE_CPY \
   *buffer++ = g_data->color_table[index_vec.i[0]]; \
   *buffer++ = g_data->color_table[index_vec.i[1]]; \
@@ -103,31 +104,43 @@ typedef union{ __m128 v; float f[4];}vec4_f;
   *buffer++ = g_data->color_table[index_vec.i[3]]; \
 }
 
-static void 
+static void
 loop_break(unsigned int *buffer, int length, int *lprealign, int *lby4 , int 
*lremaining)
 {
-   int l1=0,l2=0,l3=0;
+   int l1=0, l2=0, l3=0;
+
while ((uintptr_t)buffer & 0xF)
  buffer++ , l1++;
 
if(length <= l1)
- l1 = length;
+ {
+l1 = length;
+ }
else
  {
-l3 = (length - l1)%4;
+l3 = (length - l1) % 4;
 l2 = length - l1 - l3 ;
  }
+
*lprealign = l1;
*lby4 = l2;
*lremaining = l3;
 }
 
-static void 
+static void
 _radial_helper_sse3(uint *buffer, int length, 
Ector_Renderer_Software_Gradient_Data *g_data,
 float det, float delta_det, float delta_delta_det, float 
b, float delta_b)
 {
int lprealign, lby4, lremaining, i;
+   vec4_f det_vec;
+   vec4_f delta_det4_vec;
+   vec4_f b_vec;
+   __m128 v_delta_delta_det16;
+   __m128 v_delta_delta_det6;
+   __m128 v_delta_b4;
+
loop_break(buffer, length, , , );
+
// prealign loop
for (i = 0 ; i < lprealign ; i++)
  {
@@ -138,10 +151,6 @@ _radial_helper_sse3(uint *buffer, int length, 
Ector_Renderer_Software_Gradient_D
  }
 
// lby4 16byte align loop
-   vec4_f det_vec;
-   vec4_f delta_det4_vec;
-   vec4_f b_vec;
-
for (i = 0; i < 4; ++i)
  {
 det_vec.f[i] = det;
@@ -153,37 +162,36 @@ _radial_helper_sse3(uint *buffer, int length, 
Ector_Renderer_Software_Gradient_D
 b += delta_b;
  }
 
-   __m128 v_delta_delta_det16 = _mm_set1_ps(16 * delta_delta_det);

[EGIT] [core/efl] master 08/16: ector: simplify code by avoiding unecessary intermediate function.

2015-11-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 9023f6d28c127373555339cd062f457f4ce7a9b6
Author: Cedric BAIL 
Date:   Tue Oct 20 15:55:32 2015 -0700

ector: simplify code by avoiding unecessary intermediate function.
---
 .../ector_renderer_software_gradient_linear.c  | 44 ++
 .../ector_renderer_software_gradient_radial.c  | 68 ++
 2 files changed, 49 insertions(+), 63 deletions(-)

diff --git a/src/lib/ector/software/ector_renderer_software_gradient_linear.c 
b/src/lib/ector/software/ector_renderer_software_gradient_linear.c
index a7ce3ec..f0ab0c5 100644
--- a/src/lib/ector/software/ector_renderer_software_gradient_linear.c
+++ b/src/lib/ector/software/ector_renderer_software_gradient_linear.c
@@ -9,31 +9,6 @@
 #include "ector_private.h"
 #include "ector_software_private.h"
 
-
-static void
-_update_linear_data(Ector_Renderer_Software_Gradient_Data *gdata)
-{
-   update_color_table(gdata);
-   gdata->linear.x1 = gdata->gld->start.x;
-   gdata->linear.y1 = gdata->gld->start.y;
-
-   gdata->linear.x2 = gdata->gld->end.x;
-   gdata->linear.y2 = gdata->gld->end.y;
-
-   gdata->linear.dx = gdata->linear.x2 - gdata->linear.x1;
-   gdata->linear.dy = gdata->linear.y2 - gdata->linear.y1;
-   gdata->linear.l = gdata->linear.dx * gdata->linear.dx + gdata->linear.dy * 
gdata->linear.dy;
-   gdata->linear.off = 0;
-
-   if (gdata->linear.l != 0)
- {
-gdata->linear.dx /= gdata->linear.l;
-gdata->linear.dy /= gdata->linear.l;
-gdata->linear.off = -gdata->linear.dx * gdata->linear.x1 - 
gdata->linear.dy * gdata->linear.y1;
- }
-}
-
-
 static Eina_Bool
 
_ector_renderer_software_gradient_linear_ector_renderer_generic_base_prepare(Eo 
*obj,
  
Ector_Renderer_Software_Gradient_Data *pd)
@@ -47,8 +22,25 @@ 
_ector_renderer_software_gradient_linear_ector_renderer_generic_base_prepare(Eo
 pd->surface = eo_data_xref(parent, ECTOR_SOFTWARE_SURFACE_CLASS, obj);
  }
 
-   _update_linear_data(pd);
+   update_color_table(pd);
+
+   pd->linear.x1 = pd->gld->start.x;
+   pd->linear.y1 = pd->gld->start.y;
+
+   pd->linear.x2 = pd->gld->end.x;
+   pd->linear.y2 = pd->gld->end.y;
 
+   pd->linear.dx = pd->linear.x2 - pd->linear.x1;
+   pd->linear.dy = pd->linear.y2 - pd->linear.y1;
+   pd->linear.l = pd->linear.dx * pd->linear.dx + pd->linear.dy * 
pd->linear.dy;
+   pd->linear.off = 0;
+
+   if (pd->linear.l != 0)
+ {
+pd->linear.dx /= pd->linear.l;
+pd->linear.dy /= pd->linear.l;
+pd->linear.off = -pd->linear.dx * pd->linear.x1 - pd->linear.dy * 
pd->linear.y1;
+ }
 
return EINA_FALSE;
 }
diff --git a/src/lib/ector/software/ector_renderer_software_gradient_radial.c 
b/src/lib/ector/software/ector_renderer_software_gradient_radial.c
index 74a8dab..a732935 100644
--- a/src/lib/ector/software/ector_renderer_software_gradient_radial.c
+++ b/src/lib/ector/software/ector_renderer_software_gradient_radial.c
@@ -9,42 +9,6 @@
 #include "ector_private.h"
 #include "ector_software_private.h"
 
-static void
-_update_radial_data(Ector_Renderer_Software_Gradient_Data *gdata)
-{
-   update_color_table(gdata);
-
-   gdata->radial.cx = gdata->grd->radial.x;
-   gdata->radial.cy = gdata->grd->radial.y;
-   gdata->radial.cradius = gdata->grd->radius;
-
-   if (!gdata->grd->focal.x)
- gdata->radial.fx = gdata->grd->radial.x;
-   else
- gdata->radial.fx = gdata->grd->focal.x;
-
-   if (!gdata->grd->focal.y)
- gdata->radial.fy = gdata->grd->radial.y;
-   else
- gdata->radial.fy = gdata->grd->focal.y;
-
-   gdata->radial.fradius = 0;
-
-   gdata->radial.dx = gdata->radial.cx - gdata->radial.fx;
-   gdata->radial.dy = gdata->radial.cy - gdata->radial.fy;
-
-   gdata->radial.dr = gdata->radial.cradius - gdata->radial.fradius;
-   gdata->radial.sqrfr = gdata->radial.fradius * gdata->radial.fradius;
-
-   gdata->radial.a = gdata->radial.dr * gdata->radial.dr -
- gdata->radial.dx * gdata->radial.dx -
- gdata->radial.dy * gdata->radial.dy;
-   gdata->radial.inv2a = 1 / (2 * gdata->radial.a);
-
-   gdata->radial.extended = (gdata->radial.fradius >= 0.1f) || 
gdata->radial.a >= 0.1f;
-}
-
-
 static Eina_Bool
 
_ector_renderer_software_gradient_radial_ector_renderer_generic_base_prepare(Eo 
*obj, Ector_Renderer_Software_Gradient_Data *pd)
 {
@@ -57,7 +21,37 @@ 
_ector_renderer_software_gradient_radial_ector_renderer_generic_base_prepare(Eo
 pd->surface = eo_data_xref(parent, ECTOR_SOFTWARE_SURFACE_CLASS, obj);
  }
 
-   _update_radial_data(pd);
+   update_color_table(pd);
+
+   pd->radial.cx = pd->grd->radial.x;
+   pd->radial.cy = pd->grd->radial.y;
+   pd->radial.cradius = pd->grd->radius;
+
+   if (!pd->grd->focal.x)
+ pd->radial.fx = pd->grd->radial.x;
+   else
+ 

[EGIT] [core/efl] master 06/16: edje entry: remove unreachable dead code

2015-11-09 Thread Subodh Kumar
cedric pushed a commit to branch master.

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

commit 95d398b5c8bfde8d6d760ca5881d19691b522c92
Author: Subodh Kumar 
Date:   Tue Oct 20 12:06:00 2015 -0700

edje entry: remove unreachable dead code

Summary:
Remove dead code

If anchor sel is not there, code inside
while can not execute.

Test Plan: NA

Reviewers: tasn, herdsman, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3190

Signed-off-by: Cedric BAIL 
---
 src/lib/edje/edje_entry.c | 10 --
 1 file changed, 10 deletions(-)

diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index bf9a140..92c40a6 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -927,16 +927,6 @@ _anchors_update(Evas_Textblock_Cursor *c EINA_UNUSED, 
Evas_Object *o, Entry *en)
 
  if (!an->sel)
{
-  while (an->sel)
-{
-   sel = an->sel->data;
-   if (sel->obj_bg) evas_object_del(sel->obj_bg);
-   if (sel->obj_fg) evas_object_del(sel->obj_fg);
-   if (sel->obj) evas_object_del(sel->obj);
-   free(sel);
-   an->sel = eina_list_remove_list(an->sel, an->sel);
-}
-
   sel = calloc(1, sizeof(Sel));
   an->sel = eina_list_append(an->sel, sel);
 

-- 




[EGIT] [core/efl] master 03/16: emile: deprecate the use of SSLv3 with GNUTLS backend to.

2015-11-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 23d8d71e083f24232cf316e8b272e3c8588141db
Author: Cedric BAIL 
Date:   Mon Nov 9 10:30:00 2015 -0800

emile: deprecate the use of SSLv3 with GNUTLS backend to.
---
 src/lib/emile/emile_cipher_gnutls.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/lib/emile/emile_cipher_gnutls.c 
b/src/lib/emile/emile_cipher_gnutls.c
index d9577d7..491ba78 100644
--- a/src/lib/emile/emile_cipher_gnutls.c
+++ b/src/lib/emile/emile_cipher_gnutls.c
@@ -342,7 +342,6 @@ emile_cipher_server_listen(Emile_Cipher_Type t)
int ret;
 
if (t != EMILE_SSLv23 &&
-   t != EMILE_SSLv3 &&
t != EMILE_TLSv1)
  return NULL;
 
@@ -382,12 +381,10 @@ emile_cipher_server_connect(Emile_Cipher_Type t)
  {
   case EMILE_SSLv23:
  break;
-  case EMILE_SSLv3:
- priority = 
"NORMAL:%VERIFY_ALLOW_X509_V1_CA_CRT:!VERS-TLS1.0:!VERS-TLS1.1:!VERS-TLS1.2";
- break;
   case EMILE_TLSv1:
  priority = "NORMAL:%VERIFY_ALLOW_X509_V1_CA_CRT:!VERS-SSL3.0";
  break;
+  case EMILE_SSLv3:
   default:
  return NULL;
  }

-- 




[EGIT] [core/efl] master 13/16: eina: add test case for eina_strbuf_tolower API.

2015-11-09 Thread Srivardhan Hebbar
cedric pushed a commit to branch master.

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

commit 01eaa7a9cceab3b7e45d269387960e91c1940d45
Author: Srivardhan Hebbar 
Date:   Thu Oct 22 12:26:31 2015 -0700

eina: add test case for eina_strbuf_tolower API.

Summary:
Depends on D3200
Signed-off-by: Srivardhan Hebbar 

Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3204

Signed-off-by: Cedric BAIL 
---
 src/tests/eina/eina_test_strbuf.c | 29 +
 1 file changed, 29 insertions(+)

diff --git a/src/tests/eina/eina_test_strbuf.c 
b/src/tests/eina/eina_test_strbuf.c
index 7a1386c..3a3adc6 100644
--- a/src/tests/eina/eina_test_strbuf.c
+++ b/src/tests/eina/eina_test_strbuf.c
@@ -486,6 +486,34 @@ START_TEST(strbuf_trim)
 }
 END_TEST
 
+START_TEST(strbuf_tolower)
+{
+   Eina_Strbuf* buf;
+   const char *str;
+
+   eina_init();
+   buf = eina_strbuf_new();
+   fail_unless(buf != NULL);
+
+   eina_strbuf_append(buf, "UPPER");
+   eina_strbuf_tolower(buf);
+   str = eina_strbuf_string_get(buf);
+   fail_unless(str || strcmp(str, "upper"));
+
+   eina_strbuf_tolower(buf);
+   str = eina_strbuf_string_get(buf);
+   fail_unless(str || strcmp(str, "upper"));
+
+   eina_strbuf_append(buf, "1@ ");
+   eina_strbuf_tolower(buf);
+   str = eina_strbuf_string_get(buf);
+   fail_unless(str || strcmp(str, "upper1@ "));
+
+   eina_strbuf_free(buf);
+   eina_shutdown();
+}
+END_TEST
+
 void
 eina_test_strbuf(TCase *tc)
 {
@@ -499,4 +527,5 @@ eina_test_strbuf(TCase *tc)
tcase_add_test(tc, strbuf_prepend_realloc);
tcase_add_test(tc, strbuf_manage_simple);
tcase_add_test(tc, strbuf_trim);
+   tcase_add_test(tc, strbuf_tolower);
 }

-- 




[EGIT] [core/efl] master 01/16: efreet: fix warning

2015-11-09 Thread Vincent Torri
cedric pushed a commit to branch master.

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

commit 9eef7ae2870429711ef8f93a4841bd6f4f67722e
Author: Vincent Torri 
Date:   Sat Nov 7 14:05:56 2015 +0100

efreet: fix warning

Commit 0cd59bb1 introduced the use of basename()
which needs libgen.h (hence winsock2.h before) on Windows.

Signed-off-by: Cedric BAIL 
---
 src/bin/efreet/efreet_desktop_cache_create.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/bin/efreet/efreet_desktop_cache_create.c 
b/src/bin/efreet/efreet_desktop_cache_create.c
index 399cc81..849c491 100644
--- a/src/bin/efreet/efreet_desktop_cache_create.c
+++ b/src/bin/efreet/efreet_desktop_cache_create.c
@@ -10,6 +10,11 @@
 #include 
 #endif
 
+#ifdef _WIN32
+# include 
+# include 
+#endif
+
 #include 
 #include 
 #include 

-- 




[EGIT] [core/efl] master 11/16: eina: add API for converting strbuf to lowercase.

2015-11-09 Thread Srivardhan Hebbar
cedric pushed a commit to branch master.

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

commit a356c4e3e8cea183ceeb910fe710490f18255a74
Author: Srivardhan Hebbar 
Date:   Wed Oct 21 14:04:43 2015 -0700

eina: add API for converting strbuf to lowercase.

Summary:
This API would be used in efl_network_websocket.

Signed-off-by: Srivardhan Hebbar 

Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3200

Signed-off-by: Cedric BAIL 
---
 src/lib/eina/eina_strbuf.c | 8 
 src/lib/eina/eina_strbuf.h | 9 +
 2 files changed, 17 insertions(+)

diff --git a/src/lib/eina/eina_strbuf.c b/src/lib/eina/eina_strbuf.c
index 828d842..ff461a7 100644
--- a/src/lib/eina/eina_strbuf.c
+++ b/src/lib/eina/eina_strbuf.c
@@ -197,6 +197,14 @@ eina_strbuf_rtrim(Eina_Strbuf *buf)
((unsigned char *)buf->buf)[buf->len] = '\0';
 }
 
+EAPI void
+eina_strbuf_tolower(Eina_Strbuf *buf)
+{
+   if (!buf || !(buf->buf)) return;
+
+   eina_str_tolower((char **)&(buf->buf));
+}
+
 /* Unicode */
 
 #include "eina_strbuf_template_c.x"
diff --git a/src/lib/eina/eina_strbuf.h b/src/lib/eina/eina_strbuf.h
index 1a628b9..3799a3d 100644
--- a/src/lib/eina/eina_strbuf.h
+++ b/src/lib/eina/eina_strbuf.h
@@ -642,6 +642,15 @@ EAPI void eina_strbuf_ltrim(Eina_Strbuf *buf) 
EINA_ARG_NONNULL(1);
 EAPI void eina_strbuf_rtrim(Eina_Strbuf *buf) EINA_ARG_NONNULL(1);
 
 /**
+ * @brief Convert the string to lower case.
+ *
+ * @param buf the string buffer to work with.
+ *
+ * This function converts all the characters in the strbuf to lower case.
+ */
+EAPI void eina_strbuf_tolower(Eina_Strbuf *buf) EINA_ARG_NONNULL(1);
+
+/**
  * @}
  */
 

-- 




[EGIT] [core/efl] master 05/16: edje entry: do not create object if theme source is not available.

2015-11-09 Thread Subodh Kumar
cedric pushed a commit to branch master.

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

commit 9cc8c470be4aee9c7f6a48f624c233194c91c368
Author: Subodh Kumar 
Date:   Tue Oct 20 11:57:17 2015 -0700

edje entry: do not create object if theme source is not available.

Summary:
Object not created if theme source is not available.

In many case we dont need or define all the
theme sources for entry, even if the sources are
null, edje object is being created.

Test Plan: NA

Reviewers: tasn, herdsman, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3199

Signed-off-by: Cedric BAIL 
---
 src/lib/edje/edje_entry.c | 122 ++
 1 file changed, 69 insertions(+), 53 deletions(-)

diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index b6cbf84..bf9a140 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -674,25 +674,31 @@ _sel_update(Edje *ed, Evas_Textblock_Cursor *c 
EINA_UNUSED, Evas_Object *o, Entr
 
   sel = calloc(1, sizeof(Sel));
   en->sel = eina_list_append(en->sel, sel);
-  ob = edje_object_add(ed->base->evas);
-  edje_object_file_set(ob, ed->path, en->rp->part->source);
-  evas_object_smart_member_add(ob, smart);
-  evas_object_stack_below(ob, o);
-  evas_object_clip_set(ob, clip);
-  evas_object_pass_events_set(ob, EINA_TRUE);
-  evas_object_show(ob);
-  sel->obj_bg = ob;
-  _edje_subobj_register(ed, sel->obj_bg);
-
-  ob = edje_object_add(ed->base->evas);
-  edje_object_file_set(ob, ed->path, en->rp->part->source2);
-  evas_object_smart_member_add(ob, smart);
-  evas_object_stack_above(ob, o);
-  evas_object_clip_set(ob, clip);
-  evas_object_pass_events_set(ob, EINA_TRUE);
-  evas_object_show(ob);
-  sel->obj_fg = ob;
-  _edje_subobj_register(ed, sel->obj_fg);
+  if (en->rp->part->source)
+{
+   ob = edje_object_add(ed->base->evas);
+   edje_object_file_set(ob, ed->path, 
en->rp->part->source);
+   evas_object_smart_member_add(ob, smart);
+   evas_object_stack_below(ob, o);
+   evas_object_clip_set(ob, clip);
+   evas_object_pass_events_set(ob, EINA_TRUE);
+   evas_object_show(ob);
+   sel->obj_bg = ob;
+   _edje_subobj_register(ed, sel->obj_bg);
+}
+
+  if (en->rp->part->source2)
+{
+   ob = edje_object_add(ed->base->evas);
+   edje_object_file_set(ob, ed->path, 
en->rp->part->source2);
+   evas_object_smart_member_add(ob, smart);
+   evas_object_stack_above(ob, o);
+   evas_object_clip_set(ob, clip);
+   evas_object_pass_events_set(ob, EINA_TRUE);
+   evas_object_show(ob);
+   sel->obj_fg = ob;
+   _edje_subobj_register(ed, sel->obj_fg);
+}
}
  else
{
@@ -970,25 +976,31 @@ _anchors_update(Evas_Textblock_Cursor *c EINA_UNUSED, 
Evas_Object *o, Entry *en)
 
sel = calloc(1, sizeof(Sel));
an->sel = eina_list_append(an->sel, sel);
-   ob = edje_object_add(ed->base->evas);
-   edje_object_file_set(ob, ed->path, 
en->rp->part->source5);
-   evas_object_smart_member_add(ob, smart);
-   evas_object_stack_below(ob, o);
-   evas_object_clip_set(ob, clip);
-   evas_object_pass_events_set(ob, EINA_TRUE);
-   evas_object_show(ob);
-   sel->obj_bg = ob;
-   _edje_subobj_register(ed, sel->obj_bg);
+   if (en->rp->part->source5)
+ {
+ob = edje_object_add(ed->base->evas);
+edje_object_file_set(ob, ed->path, 
en->rp->part->source5);
+evas_object_smart_member_add(ob, smart);
+evas_object_stack_below(ob, o);
+evas_object_clip_set(ob, clip);
+evas_object_pass_events_set(ob, EINA_TRUE);
+evas_object_show(ob);
+   

[EGIT] [core/efl] master 11/13: edje_cc: Allow LOSSY compression without quality param

2015-11-09 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 6ad565a6afe3243b97cf0f22a17b532aa391c1e9
Author: Jean-Philippe Andre 
Date:   Fri Oct 30 14:30:03 2015 +0900

edje_cc: Allow LOSSY compression without quality param

LOSSY quality will then default to 90.
---
 src/bin/edje/edje_cc_handlers.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index f82b020..e986291 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -1895,8 +1895,10 @@ st_images_image(void)
check_arg_count(2);
else
  {
-   img->source_param = parse_int_range(2, 0, 100);
-   check_arg_count(3);
+if (check_range_arg_count(2, 3) > 2)
+  img->source_param = parse_int_range(2, 0, 100);
+else
+  img->source_param = 90;
  }
 }
 

-- 




[EGIT] [core/efl] master 10/13: Evas: Allow edje_decc to work with ETC images

2015-11-09 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 7974f674aa9ba18588576a373e1ec0c524bbde9f
Author: Jean-Philippe Andre 
Date:   Fri Oct 30 16:41:32 2015 +0900

Evas: Allow edje_decc to work with ETC images

This reuses the internal function data_get, data_put, image_save
respecting the border information and adding support for ETC
formats.

@fix
---
 src/bin/edje/edje_decc.c   |   2 +-
 src/lib/evas/canvas/evas_object_image.c| 101 ++---
 src/lib/evas/common/evas_image_data.c  | 100 
 src/lib/evas/common/evas_image_main.c  |  30 +++---
 .../evas/engines/software_generic/evas_engine.c|  16 
 .../evas/image_savers/tgv/evas_image_save_tgv.c|  14 ++-
 6 files changed, 186 insertions(+), 77 deletions(-)

diff --git a/src/bin/edje/edje_decc.c b/src/bin/edje/edje_decc.c
index 8c0dd3c..5eeb7ef 100644
--- a/src/bin/edje/edje_decc.c
+++ b/src/bin/edje/edje_decc.c
@@ -336,7 +336,7 @@ output(void)
}
  ecore_file_mkpath(pp);
  free(pp);
- if (!evas_object_image_save(im, out, NULL, "quality=100 
compress=9"))
+  if (!evas_object_image_save(im, out, NULL, "quality=100 
compress=9 encoding=auto"))
{
   ERR("Cannot write file %s. Perhaps missing JPEG or PNG 
saver modules for Evas.", out);
   exit(-1);
diff --git a/src/lib/evas/canvas/evas_object_image.c 
b/src/lib/evas/canvas/evas_object_image.c
index e174353..b4a8f19 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -1648,7 +1648,9 @@ _evas_image_efl_file_save(const Eo *eo_obj, 
Evas_Image_Data *o, const char *file
int quality = 80, compress = 9, ok = 0;
char *encoding = NULL;
Image_Entry *ie;
-   Eina_Bool putback = EINA_FALSE, tofree = EINA_FALSE;
+   Eina_Bool putback = EINA_FALSE, tofree = EINA_FALSE, no_convert = 
EINA_FALSE;
+   Evas_Colorspace cspace = EVAS_COLORSPACE_ARGB;
+   int want_cspace = EVAS_COLORSPACE_ARGB;
int imagew, imageh;
void *pixels;
 
@@ -1698,16 +1700,9 @@ _evas_image_efl_file_save(const Eo *eo_obj, 
Evas_Image_Data *o, const char *file
 o->proxyrendering = EINA_FALSE;
  }
 
-   pixels = ENFN->image_data_get(ENDT, pixels, 0, , >load_error, 
);
-
-   if (!pixels)
- {
-WRN("Could not get image pixels.");
-return EINA_FALSE;
- }
-
if (flags)
  {
+const char *ext = NULL;
 char *p, *pp;
 char *tflags;
 
@@ -1724,23 +1719,99 @@ _evas_image_efl_file_save(const Eo *eo_obj, 
Evas_Image_Data *o, const char *file
  if (pp) p = pp + 1;
  else break;
   }
+
+if (file) ext = strrchr(file, '.');
+if (encoding && ext && !strcasecmp(ext, ".tgv"))
+  {
+ if (!strcmp(encoding, "auto"))
+   want_cspace = -1;
+ else if (!strcmp(encoding, "etc1"))
+   want_cspace = EVAS_COLORSPACE_ETC1;
+ else if (!strcmp(encoding, "etc2"))
+   {
+  if (!ENFN->image_alpha_get(ENDT, pixels))
+want_cspace = EVAS_COLORSPACE_RGB8_ETC2;
+  else
+want_cspace = EVAS_COLORSPACE_RGBA8_ETC2_EAC;
+   }
+ else if (!strcmp(encoding, "etc1+alpha"))
+   want_cspace = EVAS_COLORSPACE_ETC1_ALPHA;
+  }
+else
+  {
+ free(encoding);
+ encoding = NULL;
+  }
+ }
+
+   if (!ENFN->image_data_has)
+ pixels = ENFN->image_data_get(ENDT, pixels, 0, , >load_error, 
);
+   else
+ {
+if (ENFN->image_data_has(ENDT, pixels, ))
+  {
+ if ((want_cspace != (int) cspace) && (want_cspace != -1))
+   cspace = EVAS_COLORSPACE_ARGB;
+  }
+else
+  {
+ cspace = ENFN->image_file_colorspace_get(ENDT, pixels);
+ if ((want_cspace != (int) cspace) && (want_cspace != -1))
+   cspace = EVAS_COLORSPACE_ARGB;
+ else
+   {
+  ENFN->image_colorspace_set(ENDT, pixels, cspace);
+  no_convert = EINA_TRUE;
+   }
+  }
+pixels = ENFN->image_data_get(ENDT, pixels, 0, , >load_error, 
);
+ }
+
+   if (!pixels)
+ {
+WRN("Could not get image pixels.");
+return EINA_FALSE;
+ }
+
+   switch (cspace)
+ {
+  case EVAS_COLORSPACE_ARGB:
+break;
+  case EVAS_COLORSPACE_ETC1:
+  case EVAS_COLORSPACE_ETC1_ALPHA:
+  case EVAS_COLORSPACE_RGB8_ETC2:
+  case EVAS_COLORSPACE_RGBA8_ETC2_EAC:
+break;
+  default:
+DBG("Need to convert colorspace before saving");
+ 

[EGIT] [tools/erigo] master 02/02: Factory: update widgets configuration

2015-11-09 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=de068b84679251cbf8572cb471202a534ce141c4

commit de068b84679251cbf8572cb471202a534ce141c4
Author: Daniel Zaoui 
Date:   Tue Nov 10 08:35:48 2015 +0200

Factory: update widgets configuration

The size hint weight was not set, leading to weird resizing when resized
inside a window.
---
 data/layouts/factory.json | 42 ++
 1 file changed, 38 insertions(+), 4 deletions(-)

diff --git a/data/layouts/factory.json b/data/layouts/factory.json
index 1667c2d..e5731c5 100644
--- a/data/layouts/factory.json
+++ b/data/layouts/factory.json
@@ -14,6 +14,7 @@
 "Elm.Win.autodel":[true],
 "Efl.Gfx.Base.size":[300, 300],
 "Elm.Widget.part_text":[null, "Window"],
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.Gfx.Base.visible":[true]
  },
  "Contains": ["Bg"]
@@ -47,6 +48,7 @@
  "Properties":
  {
 "Elm.Widget.part_text":[null, "Button"],
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[73, 30]
  }
@@ -60,6 +62,7 @@
  "Properties":
  {
 "Elm.Widget.part_text":[null, "Label"],
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[60, 30]
  }
@@ -73,6 +76,7 @@
  "Properties":
  {
 "Elm.Widget.part_text":[null, "Check"],
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[80, 30]
  }
@@ -86,8 +90,9 @@
  "Properties":
  {
 "Elm.Widget.part_text":[null, "Radio"],
-"Efl.Gfx.Base.visible":[true],
 "Elm.Radio.state_value":[0],
+"Evas.Object.size_hint_weight":[1, 1],
+"Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[80, 30]
  }
   },
@@ -99,6 +104,7 @@
  },
  "Properties":
  {
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.File.file":["erigo_icon", null],
 "Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[40, 40]
@@ -112,6 +118,7 @@
  },
  "Properties":
  {
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.File.file":["factory_image", null],
 "Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[40, 40]
@@ -125,10 +132,11 @@
  },
  "Properties":
  {
+"Elm.Actionslider.indicator_pos":["ELM_ACTIONSLIDER_CENTER"],
 "Elm.Widget.part_text":["left", "Action"],
 "Elm.Widget.part_text":["center", null],
 "Elm.Widget.part_text":["right", "slider"],
-"Elm.Actionslider.indicator_pos":["ELM_ACTIONSLIDER_CENTER"],
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[180, 30]
  }
@@ -142,6 +150,7 @@
  "Properties":
  {
 "Elm.Widget.part_text":[null, "Bubble"],
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[70, 50]
  }
@@ -154,6 +163,7 @@
  },
  "Properties":
  {
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[120, 120]
  }
@@ -168,6 +178,7 @@
  {
 "Elm.Colorselector.mode":["ELM_COLORSELECTOR_COMPONENTS"],
 "Elm.Colorselector.color":[255, 0, 0, 255],
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[165, 165]
  }
@@ -180,6 +191,7 @@
  },
  "Properties":
  {
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[290, 20]
  }
@@ -192,6 +204,7 @@
  },
  "Properties":
  {
+"Evas.Object.size_hint_weight":[1, 1],
 "Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[65, 35]
  }
@@ -205,8 +218,9 @@
  "Properties":
  {
 "Elm.Entry.scrollable":[true],
-"Efl.Gfx.Base.visible":[true],
 "Elm.Widget.part_text":[null, "Entry"],
+"Evas.Object.size_hint_weight":[1, 1],
+"Efl.Gfx.Base.visible":[true],
 "Efl.Gfx.Base.size":[65, 35]
  }
   },
@@ -218,6 +232,7 @@
  },
  "Properties":
  {
+"Evas.Object.size_hint_weight":[1, 1],
 "Evas.Object.size_hint_min":[75, 75],
 "Elm.Image.resizable":[true, 

[EGIT] [tools/erigo] master 01/02: Updater: supply completion callback

2015-11-09 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=d27884fd2531a575ebc9a7a73e12b99019376df2

commit d27884fd2531a575ebc9a7a73e12b99019376df2
Author: Daniel Zaoui 
Date:   Mon Nov 9 17:01:25 2015 +0200

Updater: supply completion callback

At the end of the session updates, the updater can invoke registered
callbacks.
This is needed if the editor wants to select the right widget and to
update the properties view.
---
 src/lib/updater.c | 22 ++
 src/lib/updater.h |  7 +++
 2 files changed, 29 insertions(+)

diff --git a/src/lib/updater.c b/src/lib/updater.c
index 7a78a81..c41b970 100644
--- a/src/lib/updater.c
+++ b/src/lib/updater.c
@@ -9,10 +9,17 @@ static int _init_counter = 0;
 
 static Ecore_Idler *_idler = NULL;
 static Eina_List *_ctxs_to_update = NULL;
+static Eina_List *_completion_cbs = NULL;
 
 #define SESSIONS_DATA_KEY "__updater_sessions"
 #define CONTEXT_FORCE_WDGS_KEY "__updater_forced_widgets"
 
+typedef struct _completion_info
+{
+   Updater_Completion_Cb cb;
+   void *data;
+} Completion_Info;
+
 typedef struct _force_info
 {
Eid *eid;
@@ -48,6 +55,15 @@ updater_force(Eid *eid, Updater_Force_Type type)
updater_wake(ctx);
 }
 
+void
+updater_completion_callback_add(Updater_Completion_Cb cb, void *data)
+{
+   Completion_Info *info = calloc(1, sizeof(*info));
+   info->cb = cb;
+   info->data = data;
+   _completion_cbs = eina_list_append(_completion_cbs, info);
+}
+
 static void
 _eo_add_apply(const Eina_List *sessions, Eid *eid)
 {
@@ -110,7 +126,9 @@ _update_check(void *data EINA_UNUSED)
 Eina_List *mementos = context_memento_not_updated_list_steal(ctx, 
_dir);
 if (mementos)
   {
+ Eina_List *itr2;
  Memento *mem;
+ Completion_Info *info;
  EINA_LIST_FREE(mementos, mem)
{
   const Eina_List *itr, *commands;
@@ -211,6 +229,10 @@ _update_check(void *data EINA_UNUSED)
  }
 }
}
+ EINA_LIST_FOREACH(_completion_cbs, itr2, info)
+   {
+  info->cb(info->data, mem, mem_dir);
+   }
   }
 Eina_List *forced_wdgs_infos = gui_context_data_get(ctx, 
CONTEXT_FORCE_WDGS_KEY);
 Force_Info *info;
diff --git a/src/lib/updater.h b/src/lib/updater.h
index 6ae572c..c7f6bcf 100644
--- a/src/lib/updater.h
+++ b/src/lib/updater.h
@@ -1,11 +1,15 @@
 #ifndef UPDATER_H
 #define UPDATER_H
 
+#include "undoredo.h"
+
 typedef enum
 {
UPDATER_PROPERTIES_FORCE
 } Updater_Force_Type;
 
+typedef void (*Updater_Completion_Cb)(void *data, Memento *mem, Eina_Bool dir);
+
 Eina_Bool
 updater_init();
 
@@ -19,6 +23,9 @@ void
 updater_wake(const Gui_Context *ctx);
 
 void
+updater_completion_callback_add(Updater_Completion_Cb cb, void *data);
+
+void
 updater_force(Eid *eid, Updater_Force_Type type);
 
 #endif

-- 




[EGIT] [core/efl] master 08/13: Evas: Add some internal engine APIs

2015-11-09 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 64de2f6ce505283ee3de8d69297b7f39e7e5a2d6
Author: Jean-Philippe Andre 
Date:   Thu Oct 29 21:46:08 2015 +0900

Evas: Add some internal engine APIs

- image_file_colorspace_get
   This will be used to determine the best loading format, especially
   targeted at edje_cc / edje_decc so we can avoid ETC re-encoding.

- image_data_has
   Checks whether the image is currently loaded in (CPU) memory,
   and also returns the current colorspace.
---
 src/lib/evas/include/evas_private.h|  3 +-
 src/modules/evas/engines/gl_cocoa/evas_engine.c| 45 --
 src/modules/evas/engines/gl_generic/evas_engine.c  | 28 --
 .../evas/engines/software_generic/evas_engine.c| 28 --
 4 files changed, 74 insertions(+), 30 deletions(-)

diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index 6d2019f..f237a2e 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1311,6 +1311,7 @@ struct _Evas_Func
void *(*image_dirty_region) (void *data, void *image, int x, 
int y, int w, int h);
void *(*image_data_get) (void *data, void *image, int 
to_write, DATA32 **image_data, int *err, Eina_Bool *tofree);
void *(*image_data_put) (void *data, void *image, DATA32 
*image_data);
+   Eina_Bool (*image_data_has) (void *data, void *image, 
Evas_Colorspace *cspace);
void  (*image_data_preload_request) (void *data, void *image, const Eo 
*target);
void  (*image_data_preload_cancel)  (void *data, void *image, const Eo 
*target);
void *(*image_alpha_set)(void *data, void *image, int 
has_alpha);
@@ -1321,9 +1322,9 @@ struct _Evas_Func
void  (*image_border_get)   (void *data, void *image, int *l, 
int *r, int *t, int *b);
Eina_Bool (*image_draw) (void *data, void *context, void 
*surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, 
int dst_y, int dst_w, int dst_h, int smooth, Eina_Bool do_async);
char *(*image_comment_get)  (void *data, void *image, char 
*key);
-   char *(*image_format_get)   (void *data, void *image);
void (*image_colorspace_set)(void *data, void *image, 
Evas_Colorspace cspace);
Evas_Colorspace (*image_colorspace_get) (void *data, void *image);
+   Evas_Colorspace (*image_file_colorspace_get)(void *data, void *image);
Eina_Bool (*image_can_region_get)   (void *data, void *image);
void *(*image_native_set)   (void *data, void *image, void 
*native);
void *(*image_native_get)   (void *data, void *image);
diff --git a/src/modules/evas/engines/gl_cocoa/evas_engine.c 
b/src/modules/evas/engines/gl_cocoa/evas_engine.c
index 56d41eb..9c35280 100644
--- a/src/modules/evas/engines/gl_cocoa/evas_engine.c
+++ b/src/modules/evas/engines/gl_cocoa/evas_engine.c
@@ -377,10 +377,8 @@ eng_polygon_draw(void *data, void *context, void *surface 
EINA_UNUSED, void *pol
 static int
 eng_image_alpha_get(void *data EINA_UNUSED, void *image)
 {
-   //   Render_Engine *re;
Evas_GL_Image *im;
 
-   //   re = (Render_Engine *)data;
if (!image) return 1;
im = image;
return im->alpha;
@@ -389,10 +387,8 @@ eng_image_alpha_get(void *data EINA_UNUSED, void *image)
 static Evas_Colorspace
 eng_image_colorspace_get(void *data EINA_UNUSED, void *image)
 {
-   //   Render_Engine *re;
Evas_GL_Image *im;
 
-   //   re = (Render_Engine *)data;
if (!image) return EVAS_COLORSPACE_ARGB;
im = image;
return im->cs.space;
@@ -450,42 +446,48 @@ eng_image_alpha_set(void *data, void *image, int 
has_alpha)
 static void *
 eng_image_border_set(void *data EINA_UNUSED, void *image, int l EINA_UNUSED, 
int r EINA_UNUSED, int t EINA_UNUSED, int b EINA_UNUSED)
 {
-   //   Render_Engine *re;
-   //
-   //   re = (Render_Engine *)data;
return image;
 }
 
 static void
 eng_image_border_get(void *data EINA_UNUSED, void *image EINA_UNUSED, int *l 
EINA_UNUSED, int *r EINA_UNUSED, int *t EINA_UNUSED, int *b EINA_UNUSED)
 {
-   //   Render_Engine *re;
-   //
-   //   re = (Render_Engine *)data;
 }
 
 static char *
 eng_image_comment_get(void *data EINA_UNUSED, void *image, char *key 
EINA_UNUSED)
 {
-   //   Render_Engine *re;
Evas_GL_Image *im;
 
-   //   re = (Render_Engine *)data;
if (!image) return NULL;
im = image;
if (!im->im) return NULL;
return im->im->info.comment;
 }
 
-static char *
-eng_image_format_get(void *data EINA_UNUSED, void *image)
+static Evas_Colorspace
+eng_image_file_colorspace_get(void *data EINA_UNUSED, void *image)
 {
-   //   Render_Engine *re;
-   Evas_GL_Image *im;
+   Evas_GL_Image *im = image;
 
-   //   re = (Render_Engine 

[EGIT] [core/efl] master 07/13: Evas GL: Optimize out calls to eglGetCurrent from the main loop

2015-11-09 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit c55c7c0a0d3330c9a8a555b1001465df593f0017
Author: Jean-Philippe Andre 
Date:   Fri Nov 6 17:50:22 2015 +0900

Evas GL: Optimize out calls to eglGetCurrent from the main loop

This is an optimization for EGL only and for the main loop only.

eglGetCurrent{Display,Context,Surface} are expensive calls (they
shouldn't be, but they are). eglMakeCurrent is also very expensive,
so we want as much as possible to avoid calling those functions.
Store the pointers for the main loop as static variables.

Valgrind stats for a quick scrolling session in elm_test:

Before this patch:
 - eglGetCurrentContext ~ 0.4%
 - eglGetCurrentDisplay ~ 0.4%

After this patch:
 - evas_eglGetCurrentContext ~ 0.02%
 - evas_eglGetCurrentDisplay ~ 0.02%
---
 src/modules/evas/engines/gl_x11/evas_engine.c | 88 +--
 src/modules/evas/engines/gl_x11/evas_engine.h |  7 ++-
 src/modules/evas/engines/gl_x11/evas_x_main.c | 34 +--
 3 files changed, 93 insertions(+), 36 deletions(-)

diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c 
b/src/modules/evas/engines/gl_x11/evas_engine.c
index 75a3892..0d12b74 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -158,6 +158,65 @@ evgl_eng_evas_surface_get(void *data)
   return NULL;
 }
 
+#ifdef GL_GLES
+static EGLDisplay main_dpy  = EGL_NO_DISPLAY;
+static EGLSurface main_draw = EGL_NO_SURFACE;
+static EGLSurface main_read = EGL_NO_SURFACE;
+static EGLContext main_ctx  = EGL_NO_CONTEXT;
+
+EGLContext
+evas_eglGetCurrentContext(void)
+{
+   if (eina_main_loop_is())
+ return main_ctx;
+   else
+ return eglGetCurrentContext();
+}
+
+EGLSurface
+evas_eglGetCurrentSurface(EGLint readdraw)
+{
+   if (eina_main_loop_is())
+ return (readdraw == EGL_READ) ? main_read : main_draw;
+   else
+ return eglGetCurrentSurface(readdraw);
+}
+
+EGLDisplay
+evas_eglGetCurrentDisplay(void)
+{
+   if (eina_main_loop_is())
+ return main_dpy;
+   else
+ return eglGetCurrentDisplay();
+}
+
+EGLBoolean
+evas_eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, 
EGLContext ctx)
+{
+   if (eina_main_loop_is())
+ {
+EGLBoolean ret;
+
+if ((dpy == main_dpy) && (draw == main_draw) &&
+(read == main_read) && (ctx == main_ctx))
+  return 1;
+
+ret = eglMakeCurrent(dpy, draw, read, ctx);
+if (ret)
+  {
+ main_dpy  = dpy;
+ main_draw = draw;
+ main_read = read;
+ main_ctx  = ctx;
+  }
+return ret;
+ }
+   else
+ return eglMakeCurrent(dpy, draw, read, ctx);
+}
+#endif
+
 static int
 evgl_eng_make_current(void *data, void *surface, void *context, int flush)
 {
@@ -172,7 +231,6 @@ evgl_eng_make_current(void *data, void *surface, void 
*context, int flush)
 return 0;
  }
 
-
 #ifdef GL_GLES
EGLContext ctx = (EGLContext)context;
EGLSurface sfc = (EGLSurface)surface;
@@ -180,25 +238,21 @@ evgl_eng_make_current(void *data, void *surface, void 
*context, int flush)
 
if ((!context) && (!surface))
  {
-if (!eglGetCurrentContext() &&
-!eglGetCurrentSurface(EGL_READ) &&
-!eglGetCurrentSurface(EGL_DRAW))
-  return 1;
-ret = eglMakeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, 
EGL_NO_CONTEXT);
+ret = evas_eglMakeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, 
EGL_NO_CONTEXT);
 if (!ret)
   {
  int err = eglGetError();
  glsym_evas_gl_common_error_set(err - EGL_SUCCESS);
- ERR("eglMakeCurrent() failed! Error Code=%#x", err);
+ ERR("evas_eglMakeCurrent() failed! Error Code=%#x", err);
  return 0;
   }
 return 1;
  }
 
// FIXME: Check (eglGetCurrentDisplay() != dpy) ?
-   if ((eglGetCurrentContext() != ctx) ||
-   (eglGetCurrentSurface(EGL_READ) != sfc) ||
-   (eglGetCurrentSurface(EGL_DRAW) != sfc) )
+   if ((evas_eglGetCurrentContext() != ctx) ||
+   (evas_eglGetCurrentSurface(EGL_READ) != sfc) ||
+   (evas_eglGetCurrentSurface(EGL_DRAW) != sfc) )
  {
 
 // Does it need to be flushed with it's set to NULL above??
@@ -206,13 +260,13 @@ evgl_eng_make_current(void *data, void *surface, void 
*context, int flush)
 if (flush) eng_window_use(NULL);
 
 // Do a make current
-ret = eglMakeCurrent(dpy, sfc, sfc, ctx);
+ret = evas_eglMakeCurrent(dpy, sfc, sfc, ctx);
 
 if (!ret)
   {
  int err = eglGetError();
  glsym_evas_gl_common_error_set(err - EGL_SUCCESS);
- ERR("eglMakeCurrent() failed! Error Code=%#x", err);
+ ERR("evas_eglMakeCurrent() failed! 

[EGIT] [core/efl] master 12/13: Efl.h: Add minor comment (doc)

2015-11-09 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 35056500467355e32e886b1f2a95b040f11fe2f7
Author: Jean-Philippe Andre 
Date:   Tue Nov 3 12:02:56 2015 +0900

Efl.h: Add minor comment (doc)
---
 src/lib/efl/Efl.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/efl/Efl.h b/src/lib/efl/Efl.h
index 7a2ea8f..8358a1f 100644
--- a/src/lib/efl/Efl.h
+++ b/src/lib/efl/Efl.h
@@ -95,6 +95,7 @@ typedef enum _Efl_Gfx_Join
 
 /**
  * Type defining gradient stop.
+ * @note Describe the location and color of a transition point in a gradient.
  * @since 1.14
  */
 typedef struct _Efl_Gfx_Gradient_Stop Efl_Gfx_Gradient_Stop;

-- 




[EGIT] [core/efl] master 06/13: Evas GL: Save all binary shaders during idle_flush

2015-11-09 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit c70ba9e13bd8dcdb892f666fbeb354e84b13eb31
Author: Jean-Philippe Andre 
Date:   Fri Nov 6 17:06:17 2015 +0900

Evas GL: Save all binary shaders during idle_flush
---
 .../evas/engines/gl_common/evas_gl_common.h|  4 ++-
 .../evas/engines/gl_common/evas_gl_shader.c| 37 ++
 src/modules/evas/engines/gl_x11/evas_engine.c  |  4 +--
 3 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h 
b/src/modules/evas/engines/gl_common/evas_gl_common.h
index 342189a..307aa6a 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_common.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_common.h
@@ -198,6 +198,8 @@ struct _Evas_GL_Shared
int foc, z0, px, py;
int ax, ay;
GLfloat proj[16];
+
+   Eina_Bool needs_shaders_flush : 1;
 };
 
 typedef enum _Shader_Sampling Shader_Sampling;
@@ -594,7 +596,7 @@ void 
evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *g
 
 int   evas_gl_common_shader_program_init(Evas_GL_Shared *shared);
 void  evas_gl_common_shader_program_shutdown(Evas_GL_Shared 
*shared);
-EAPI void evas_gl_common_shaders_flush(void);
+EAPI void evas_gl_common_shaders_flush(Evas_GL_Shared *shared);
 
 Evas_GL_Program  *evas_gl_common_shader_program_get(Evas_Engine_GL_Context *gc,
 Shader_Type type,
diff --git a/src/modules/evas/engines/gl_common/evas_gl_shader.c 
b/src/modules/evas/engines/gl_common/evas_gl_shader.c
index 02c1a3f..08f04d4 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_shader.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_shader.c
@@ -515,6 +515,7 @@ evas_gl_common_shader_generate_and_compile(Evas_GL_Shared 
*shared, unsigned int
p = evas_gl_common_shader_compile(flags, vertex, fragment);
if (p)
  {
+shared->needs_shaders_flush = 1;
 evas_gl_common_shader_textures_bind(p);
 eina_hash_add(shared->shaders_hash, , p);
  }
@@ -584,23 +585,45 @@ evas_gl_common_shader_program_init(Evas_GL_Shared *shared)
  p = eina_hash_find(shared->shaders_hash, [i]);
  if (p) p->delete_me = 0;
   }
-evas_gl_common_shaders_flush();
+evas_gl_common_shaders_flush(shared);
  }
 
return 1;
 }
 
 EAPI void
-evas_gl_common_shaders_flush(void)
+evas_gl_common_shaders_flush(Evas_GL_Shared *shared)
 {
-   if (compiler_released) return;
-   compiler_released = EINA_TRUE;
+
+   if (!shared) return;
+   if (!compiler_released)
+ {
+compiler_released = EINA_TRUE;
 #ifdef GL_GLES
-   glReleaseShaderCompiler();
+glReleaseShaderCompiler();
 #else
-   if (glsym_glReleaseShaderCompiler)
- glsym_glReleaseShaderCompiler();
+if (glsym_glReleaseShaderCompiler)
+  glsym_glReleaseShaderCompiler();
 #endif
+ }
+   if (shared->needs_shaders_flush)
+ {
+Eina_List *to_delete = NULL;
+Eina_Iterator *it;
+Evas_GL_Program *p;
+
+_evas_gl_common_shader_binary_save(shared);
+
+it = eina_hash_iterator_data_new(shared->shaders_hash);
+EINA_ITERATOR_FOREACH(it, p)
+  {
+ if (p->delete_me)
+   to_delete = eina_list_append(to_delete, p);
+  }
+
+EINA_LIST_FREE(to_delete, p)
+  eina_hash_del(shared->shaders_hash, >flags, p);
+ }
 }
 
 void
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c 
b/src/modules/evas/engines/gl_x11/evas_engine.c
index 9723e1f..75a3892 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -1485,10 +1485,10 @@ eng_info_free(Evas *eo_e EINA_UNUSED, void *info)
 }
 
 static void
-eng_outbuf_idle_flush(Outbuf *ob EINA_UNUSED)
+eng_outbuf_idle_flush(Outbuf *ob)
 {
if (glsym_evas_gl_common_shaders_flush)
- glsym_evas_gl_common_shaders_flush();
+ glsym_evas_gl_common_shaders_flush(ob->gl_context->shared);
 }
 
 static void

-- 




[EGIT] [core/efl] master 04/13: Evas GL: Delete shaders after linking programs

2015-11-09 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 31b8fd16499e7a71afe43b9859fe312e2706d15b
Author: Jean-Philippe Andre 
Date:   Fri Nov 6 15:33:08 2015 +0900

Evas GL: Delete shaders after linking programs

The shaders eat up some memory and we don't need them after linking
the shader program.
---
 src/modules/evas/engines/gl_common/evas_gl_common.h |  5 ++---
 src/modules/evas/engines/gl_common/evas_gl_shader.c | 11 +--
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h 
b/src/modules/evas/engines/gl_common/evas_gl_common.h
index 115ca28..0d7b21e 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_common.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_common.h
@@ -97,10 +97,9 @@ typedef Eina_Bool (*evas_gl_make_current_cb)(void 
*engine_data, void *doit);
 
 struct _Evas_GL_Program
 {
-   GLuint vert, frag, prog;
-   unsigned int flags, hitcount;
+   unsigned int flags, hitcount, tex_count;
+   GLuint prog;
 
-   int tex_count;
Eina_Bool reset : 1;
Eina_Bool bin_saved : 1;
 };
diff --git a/src/modules/evas/engines/gl_common/evas_gl_shader.c 
b/src/modules/evas/engines/gl_common/evas_gl_shader.c
index df3d396..89ceff0 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_shader.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_shader.c
@@ -163,13 +163,13 @@ _evas_gl_common_shader_program_binary_load(Eet_File *ef, 
unsigned int flags)
p = calloc(1, sizeof(*p));
p->flags = flags;
p->prog = prg;
-   p->vert = vtx;
-   p->frag = frg;
p->reset = EINA_TRUE;
p->bin_saved = EINA_TRUE;
evas_gl_common_shader_textures_bind(p);
 
 finish:
+   if (vtx) glDeleteShader(vtx);
+   if (frg) glDeleteShader(frg);
free(formats);
if (!direct) free(data);
return p;
@@ -330,8 +330,6 @@ static void
 _shaders_hash_free_cb(void *data)
 {
Evas_GL_Program *p = data;
-   if (p->vert) glDeleteShader(p->vert);
-   if (p->frag) glDeleteShader(p->frag);
if (p->prog) glDeleteProgram(p->prog);
free(p);
 }
@@ -613,10 +611,11 @@ evas_gl_common_shader_compile(unsigned int flags, const 
char *vertex,
p = calloc(1, sizeof(*p));
p->flags = flags;
p->prog = prg;
-   p->vert = vtx;
-   p->frag = frg;
p->reset = EINA_TRUE;
 
+   glDeleteShader(vtx);
+   glDeleteShader(frg);
+
return p;
 }
 

-- 




[EGIT] [core/efl] master 09/13: Edje: Directly embed TGV files inside EDJ when possible

2015-11-09 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit a5d02848202475d87621fb61ce7a3e8dcecc11f5
Author: Jean-Philippe Andre 
Date:   Fri Oct 30 16:41:03 2015 +0900

Edje: Directly embed TGV files inside EDJ when possible

This checks that the ETC format is the same, and then proceeds
to simply stuff in the TGV file inside the EDJ as an "edje/image/n"

This will save a huge amount of time since now you just need
to encode an image once to TGV (ETC1 or ETC2) and you can reuse it
directly without re-encoding.

To use this, convert images with ecore_evas_convert and then
add them to EDC with the ".tgv" extension and the proper LOSSY format.
The quality argument will then be ignored.

@feature
---
 src/bin/edje/edje_cc_out.c | 252 ++---
 1 file changed, 193 insertions(+), 59 deletions(-)

diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index 2a31b3f..fb7a9ee 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -151,6 +151,9 @@ struct _Image_Write
Eet_File *ef;
Edje_Image_Directory_Entry *img;
Evas_Object *im;
+   Emile_Image_Property prop;
+   Eina_File *f;
+   Emile_Image *emi;
int w, h;
int alpha;
unsigned int *data;
@@ -1061,7 +1064,7 @@ data_thread_image_end(void *data, Ecore_Thread *thread 
EINA_UNUSED)
 error_and_abort(iw->ef, iw->errstr);
 free(iw->errstr);
  }
-   if (iw->path) free(iw->path);
+   free(iw->path);
evas_object_del(iw->im);
free(iw);
 }
@@ -1084,6 +1087,127 @@ data_image_preload_done(void *data, Evas *e 
EINA_UNUSED, Evas_Object *o, void *e
 }
 
 static void
+tgv_file_thread(void *data, Ecore_Thread *thread EINA_UNUSED)
+{
+   Image_Write *iw = data;
+   char buf[256];
+   size_t len;
+
+   snprintf(buf, sizeof(buf), "edje/images/%i", iw->img->id);
+
+   len = eina_file_size_get(iw->f);
+   eet_write_cipher(iw->ef, buf, iw->data, len, EINA_FALSE /*!no_comp*/, NULL);
+}
+
+static void
+tgv_file_thread_end(void *data, Ecore_Thread *thread EINA_UNUSED)
+{
+   Image_Write *iw = data;
+
+   pending_threads--;
+   if (pending_threads <= 0) ecore_main_loop_quit();
+   if (iw->errstr)
+ {
+error_and_abort(iw->ef, iw->errstr);
+free(iw->errstr);
+ }
+   free(iw->path);
+   emile_image_close(iw->emi);
+   eina_file_map_free(iw->f, iw->data);
+   eina_file_close(iw->f);
+   free(iw);
+}
+
+static Eina_Bool
+tgv_file_check_and_add(Eet_File *ef, Edje_Image_Directory_Entry *img, int 
*image_num)
+{
+   Emile_Image_Load_Error err;
+   Emile_Image *emi = NULL;
+   Image_Write *iw = NULL;
+   Eina_List *li;
+   const char *s;
+   Eina_File *f;
+   void *data;
+
+   EINA_LIST_FOREACH(img_dirs, li, s)
+ {
+char buf[PATH_MAX];
+snprintf(buf, sizeof(buf), "%s/%s", s, img->entry);
+f = eina_file_open(buf, EINA_FALSE);
+if (f) break;
+ }
+   if (!f) return EINA_FALSE;
+
+   data = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
+   if (!data) goto on_error;
+
+   using_file(img->entry, 'I');
+
+   emi = emile_image_tgv_file_open(f, NULL, NULL, );
+   if (!emi || (err != EMILE_IMAGE_LOAD_ERROR_NONE)) goto on_error;
+
+   iw = calloc(1, sizeof(*iw));
+
+   if (!emile_image_head(emi, >prop, sizeof(iw->prop), ) ||
+   (err != EMILE_IMAGE_LOAD_ERROR_NONE))
+ goto on_error;
+
+   if (!iw->prop.cspaces || !iw->prop.w || !iw->prop.h)
+ goto on_error;
+
+   iw->f = f;
+   iw->ef = ef;
+   iw->img = img;
+   iw->emi = emi;
+   iw->data = (unsigned int *) data;
+   iw->w = iw->prop.w;
+   iw->h = iw->prop.h;
+
+   iw->prop.cspace = iw->prop.cspaces[0];
+   if (img->source_type == EDJE_IMAGE_SOURCE_TYPE_INLINE_LOSSY_ETC1)
+ {
+if (no_etc1) goto on_error;
+if (iw->prop.cspace == EMILE_COLORSPACE_ETC1)
+  iw->alpha = 0;
+else if (iw->prop.cspace == EMILE_COLORSPACE_ETC1_ALPHA)
+  iw->alpha = 1;
+else
+  goto on_error;
+ }
+   else if (img->source_type == EDJE_IMAGE_SOURCE_TYPE_INLINE_LOSSY_ETC2)
+ {
+if (no_etc2) goto on_error;
+if (iw->prop.cspace == EMILE_COLORSPACE_RGB8_ETC2)
+  iw->alpha = 0;
+else if (iw->prop.cspace == EMILE_COLORSPACE_RGBA8_ETC2_EAC)
+  iw->alpha = 1;
+else
+  goto on_error;
+ }
+
+   *image_num += 1;
+   iw->path = strdup(img->entry);
+
+   pending_threads++;
+   if (threads)
+ ecore_thread_run(tgv_file_thread, tgv_file_thread_end, NULL, iw);
+   else
+ {
+tgv_file_thread(iw, NULL);
+tgv_file_thread_end(iw, NULL);
+ }
+
+   return EINA_TRUE;
+
+on_error:
+   free(iw);
+   emile_image_close(emi);
+   if (data) eina_file_map_free(f, data);
+   eina_file_close(f);
+   return EINA_FALSE;
+}
+
+static void
 data_write_images(Eet_File *ef, int *image_num)
 {
int i;
@@ -1101,73 

[EGIT] [core/efl] master 05/13: Evas GL: Precompile common shaders

2015-11-09 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 0ba13ae7a245b269378b3bc6c12abc78c5929362
Author: Jean-Philippe Andre 
Date:   Fri Nov 6 16:35:41 2015 +0900

Evas GL: Precompile common shaders

The whole list contains 238 shaders. That's a bit too many, but they
really just take up only ~270K on disk (24Mb of uncompressed data).
---
 .../evas/engines/gl_common/evas_gl_common.h|   1 +
 .../evas/engines/gl_common/evas_gl_shader.c| 356 ++---
 2 files changed, 240 insertions(+), 117 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h 
b/src/modules/evas/engines/gl_common/evas_gl_common.h
index 0d7b21e..342189a 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_common.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_common.h
@@ -102,6 +102,7 @@ struct _Evas_GL_Program
 
Eina_Bool reset : 1;
Eina_Bool bin_saved : 1;
+   Eina_Bool delete_me : 1;
 };
 
 struct _Evas_GL_Shared
diff --git a/src/modules/evas/engines/gl_common/evas_gl_shader.c 
b/src/modules/evas/engines/gl_common/evas_gl_shader.c
index 89ceff0..02c1a3f 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_shader.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_shader.c
@@ -4,9 +4,12 @@
 
 #define SHADER_FLAG_SAM_BITSHIFT 3
 #define SHADER_FLAG_MASKSAM_BITSHIFT 6
-#define SHADER_PROG_NAME_FMT "prog_%08x"
+#define SHADER_PROG_NAME_FMT "/shader/%08x"
 #define SHADER_BINARY_EET_COMPRESS 1
 
+#define P(i) ((void*)(intptr_t)i)
+#define I(p) ((int)(intptr_t)p)
+
 #ifdef WORDS_BIGENDIAN
 # define BASEFLAG SHADER_FLAG_BIGENDIAN;
 #else
@@ -326,14 +329,226 @@ error:
return 0;
 }
 
-static void
-_shaders_hash_free_cb(void *data)
+static inline void
+_program_del(Evas_GL_Program *p)
 {
-   Evas_GL_Program *p = data;
if (p->prog) glDeleteProgram(p->prog);
free(p);
 }
 
+static void
+_shaders_hash_free_cb(void *data)
+{
+   _program_del(data);
+}
+
+static char *
+evas_gl_common_shader_glsl_get(unsigned int flags, const char *base)
+{
+   Eina_Strbuf *s = eina_strbuf_new();
+   unsigned int k;
+   char *str;
+
+   for (k = 0; k < SHADER_FLAG_COUNT; k++)
+ {
+if (flags & (1 << k))
+  eina_strbuf_append_printf(s, "#define SHD_%s\n", _shader_flags[k]);
+ }
+
+   eina_strbuf_append(s, base);
+   str = eina_strbuf_string_steal(s);
+   eina_strbuf_free(s);
+   return str;
+}
+
+static Evas_GL_Program *
+evas_gl_common_shader_compile(unsigned int flags, const char *vertex,
+  const char *fragment)
+{
+   Evas_GL_Program *p;
+   GLuint vtx, frg, prg;
+   GLint ok = 0;
+
+   compiler_released = EINA_FALSE;
+   vtx = glCreateShader(GL_VERTEX_SHADER);
+   frg = glCreateShader(GL_FRAGMENT_SHADER);
+
+   glShaderSource(vtx, 1, , NULL);
+   glCompileShader(vtx);
+   glGetShaderiv(vtx, GL_COMPILE_STATUS, );
+   if (!ok)
+ {
+gl_compile_link_error(vtx, "compile vertex shader");
+ERR("Abort compile of vertex shader:\n%s", vertex);
+glDeleteShader(vtx);
+return NULL;
+ }
+   ok = 0;
+
+   glShaderSource(frg, 1, , NULL);
+   glCompileShader(frg);
+   glGetShaderiv(frg, GL_COMPILE_STATUS, );
+   if (!ok)
+ {
+gl_compile_link_error(frg, "compile fragment shader");
+ERR("Abort compile of fragment shader:\n%s", fragment);
+glDeleteShader(vtx);
+glDeleteShader(frg);
+return NULL;
+ }
+   ok = 0;
+
+   prg = glCreateProgram();
+#ifndef GL_GLES
+   if ((glsym_glGetProgramBinary) && (glsym_glProgramParameteri))
+ glsym_glProgramParameteri(prg, GL_PROGRAM_BINARY_RETRIEVABLE_HINT, 
GL_TRUE);
+#endif
+   glAttachShader(prg, vtx);
+   glAttachShader(prg, frg);
+
+   glBindAttribLocation(prg, SHAD_VERTEX,  "vertex");
+   glBindAttribLocation(prg, SHAD_COLOR,   "color");
+   glBindAttribLocation(prg, SHAD_TEXUV,   "tex_coord");
+   glBindAttribLocation(prg, SHAD_TEXUV2,  "tex_coord2");
+   glBindAttribLocation(prg, SHAD_TEXUV3,  "tex_coord3");
+   glBindAttribLocation(prg, SHAD_TEXA,"tex_coorda");
+   glBindAttribLocation(prg, SHAD_TEXSAM,  "tex_sample");
+   glBindAttribLocation(prg, SHAD_MASK,"mask_coord");
+   glBindAttribLocation(prg, SHAD_MASKSAM, "tex_masksample");
+
+   glLinkProgram(prg);
+   glGetProgramiv(prg, GL_LINK_STATUS, );
+   if (!ok)
+ {
+gl_compile_link_error(prg, "link fragment and vertex shaders");
+ERR("Abort compile of shader (flags: %08x)", flags);
+glDeleteShader(vtx);
+glDeleteShader(frg);
+glDeleteProgram(prg);
+return 0;
+ }
+
+   p = calloc(1, sizeof(*p));
+   p->flags = flags;
+   p->prog = prg;
+   p->reset = EINA_TRUE;
+
+   glDeleteShader(vtx);
+   glDeleteShader(frg);
+
+   return p;
+}
+
+static Eina_List *
+evas_gl_common_shader_precompile_list(Evas_GL_Shared *shared)
+{
+   int bgra, mask, sam, masksam, img, nomul, afill, yuv;
+   

[EGIT] [core/efl] master 02/13: Evas GL: Release shader compiler during evas_render_idle_flush

2015-11-09 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit c22c25c9efd6eac5bfc4929dc25eb0b08c3b1ff0
Author: Jean-Philippe Andre 
Date:   Fri Nov 6 14:53:33 2015 +0900

Evas GL: Release shader compiler during evas_render_idle_flush

It is safe to release the compiler at any time since the next
call to glCompileShader will restore it. This may even be a no-op
for all we know (this is driver-dependent).
---
 src/modules/evas/engines/gl_cocoa/evas_engine.c  |  5 -
 src/modules/evas/engines/gl_common/evas_gl_common.h  |  2 +-
 src/modules/evas/engines/gl_common/evas_gl_context.c |  1 -
 src/modules/evas/engines/gl_common/evas_gl_shader.c  | 12 +++-
 src/modules/evas/engines/gl_x11/evas_engine.c| 15 ---
 5 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/src/modules/evas/engines/gl_cocoa/evas_engine.c 
b/src/modules/evas/engines/gl_cocoa/evas_engine.c
index 8597b05..56d41eb 100644
--- a/src/modules/evas/engines/gl_cocoa/evas_engine.c
+++ b/src/modules/evas/engines/gl_cocoa/evas_engine.c
@@ -309,11 +309,6 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode)
 }
 
 static void
-eng_output_idle_flush(void *data EINA_UNUSED)
-{
-}
-
-static void
 eng_context_cutout_add(void *data EINA_UNUSED, void *context, int x, int y, 
int w, int h)
 {
evas_common_draw_context_add_cutout(context, x, y, w, h);
diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h 
b/src/modules/evas/engines/gl_common/evas_gl_common.h
index c143584..118bf9f 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_common.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_common.h
@@ -593,8 +593,8 @@ void 
evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *g
Evas_Colorspace cspace);
 
 int   evas_gl_common_shader_program_init(Evas_GL_Shared *shared);
-void  evas_gl_common_shader_program_init_done(void);
 void  evas_gl_common_shader_program_shutdown(Evas_GL_Shared 
*shared);
+EAPI void evas_gl_common_shaders_flush(void);
 
 Evas_GL_Program  *evas_gl_common_shader_program_get(Evas_Engine_GL_Context *gc,
 Shader_Type type,
diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c 
b/src/modules/evas/engines/gl_common/evas_gl_context.c
index 58ec6fe..d39be5a 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_context.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_context.c
@@ -933,7 +933,6 @@ evas_gl_common_context_new(void)
 if (gc->state.current.prog)
   glUseProgram(gc->state.current.prog->prog);
 
-evas_gl_common_shader_program_init_done();
 // in shader:
 // uniform sampler2D tex[8];
 //
diff --git a/src/modules/evas/engines/gl_common/evas_gl_shader.c 
b/src/modules/evas/engines/gl_common/evas_gl_shader.c
index 715a045..df3d396 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_shader.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_shader.c
@@ -60,7 +60,8 @@ static const char *_shader_flags[SHADER_FLAG_COUNT] = {
"RGB_A_PAIR"
 };
 
-/
+static Eina_Bool compiler_released = EINA_FALSE;
+
 static void
 gl_compile_link_error(GLuint target, const char *action)
 {
@@ -363,11 +364,11 @@ evas_gl_common_shader_program_init(Evas_GL_Shared *shared)
return 1;
 }
 
-void
-evas_gl_common_shader_program_init_done(void)
+EAPI void
+evas_gl_common_shaders_flush(void)
 {
-#warning FIXME: Disabled compiler unload for now.
-   return;
+   if (compiler_released) return;
+   compiler_released = EINA_TRUE;
 #ifdef GL_GLES
glReleaseShaderCompiler();
 #else
@@ -550,6 +551,7 @@ evas_gl_common_shader_compile(unsigned int flags, const 
char *vertex,
GLuint vtx, frg, prg;
GLint ok = 0;
 
+   compiler_released = EINA_FALSE;
vtx = glCreateShader(GL_VERTEX_SHADER);
frg = glCreateShader(GL_FRAGMENT_SHADER);
 
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c 
b/src/modules/evas/engines/gl_x11/evas_engine.c
index 7713c21..d0a7de7 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -71,6 +71,7 @@ Evas_GL_Preload_Render_Call glsym_evas_gl_preload_render_lock 
= NULL;
 Evas_GL_Preload_Render_Call glsym_evas_gl_preload_render_unlock = NULL;
 Evas_GL_Preload_Render_Call glsym_evas_gl_preload_render_relax = NULL;
 
+glsym_func_void glsym_evas_gl_common_shaders_flush = NULL;
 glsym_func_void glsym_evas_gl_common_error_set = NULL;
 glsym_func_int  glsym_evas_gl_common_error_get = NULL;
 glsym_func_void_ptr glsym_evas_gl_common_current_context_get = NULL;
@@ -1200,7 +1201,8 @@ gl_symbols(void)
if (done) return;
 
 #define LINK2GENERIC(sym) \
-   glsym_##sym = dlsym(RTLD_DEFAULT, #sym);
+   

[EGIT] [core/evas_generic_loaders] master 01/01: configure: Switch to dev mode again. Merge window for 1.17 is open now

2015-11-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit f44028b62a86e9f6385b69ccdc145e4f59ecef3b
Author: Stefan Schmidt 
Date:   Mon Nov 9 11:47:42 2015 +0100

configure: Switch to dev mode again. Merge window for 1.17 is open now
---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index c6f568e..ed0da4c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,12 +2,12 @@
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 m4_define([v_maj], [1])
 m4_define([v_min], [16])
-m4_define([v_mic], [0])
+m4_define([v_mic], [99])
 dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || 
echo 0) | tr -d '\n']))
 ##--   When released, remove the dnl on the below line
 dnl m4_undefine([v_rev])
 ##--   When doing snapshots - change soname. remove dnl on below line
-m4_define([relname], [release])
+m4_define([relname], [dev])
 dnl m4_define([v_rel], [-release relname])
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], 
[m4_define([v_ver], [v_maj.v_min.v_mic])])

-- 




[EGIT] [core/efl] master 01/01: configure: Switch to dev mode again. Merge window for 1.17 is open now

2015-11-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 5e870cd388444a57ff27c9d29e48b9b20683a766
Author: Stefan Schmidt 
Date:   Mon Nov 9 11:45:24 2015 +0100

configure: Switch to dev mode again. Merge window for 1.17 is open now
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index c6e49bc..5ecbcac 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-EFL_VERSION([1], [16], [0], [release])
+EFL_VERSION([1], [16], [99], [dev])
 AC_INIT([efl], [efl_version], [enlightenment-de...@lists.sourceforge.net])
 
 AC_PREREQ([2.60])

-- 




[EGIT] [admin/devs] master 01/01: thiep: let's give him full access.

2015-11-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/admin/devs.git/commit/?id=cc2f2785fd82c486a5f0db76be4fe2e26744245c

commit cc2f2785fd82c486a5f0db76be4fe2e26744245c
Author: Cedric BAIL 
Date:   Mon Nov 9 14:50:48 2015 -0800

thiep: let's give him full access.

I hope to see more time spend on review and fully take over Hermet jobs 
soon ;-)
---
 {probies => developers}/thiep/id_rsa.pub | 0
 {probies => developers}/thiep/info.txt   | 0
 2 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/probies/thiep/id_rsa.pub b/developers/thiep/id_rsa.pub
similarity index 100%
rename from probies/thiep/id_rsa.pub
rename to developers/thiep/id_rsa.pub
diff --git a/probies/thiep/info.txt b/developers/thiep/info.txt
similarity index 100%
rename from probies/thiep/info.txt
rename to developers/thiep/info.txt

-- 




[EGIT] [tools/eflete] master 02/05: project_navigator: add validator for layout name

2015-11-09 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=067fbf0863fd44ae4b9ce1f416aed4a03518121f

commit 067fbf0863fd44ae4b9ce1f416aed4a03518121f
Author: Vyacheslav Reutskiy 
Date:   Mon Nov 9 09:52:06 2015 +0200

project_navigator: add validator for layout name

Change-Id: Idf3a831e9ef292a4e693ec0af603e54d7faf1dc5
---
 src/bin/common/string_common.h |  1 +
 src/bin/ui/project_navigator.c | 12 
 2 files changed, 13 insertions(+)

diff --git a/src/bin/common/string_common.h b/src/bin/common/string_common.h
index 61fd05f..f34c6f7 100644
--- a/src/bin/common/string_common.h
+++ b/src/bin/common/string_common.h
@@ -31,6 +31,7 @@
free(arr); \
 }
 
+#define LAYOUT_NAME_REGEX "^[^\\/][a-zA-Z0-9_\\.\\/]+[^\\/]$"
 #define NAME_REGEX "^[a-zA-Z0-9_]+$"
 #define STATE_VALUE_REGEX "^((0?(\\.[0-9]+)?|1(\\.0+)?))?$"
 #define PART_NAME_REGEX "^[a-zA-Z0-9_\\.]+$"
diff --git a/src/bin/ui/project_navigator.c b/src/bin/ui/project_navigator.c
index 1158c87..2f06199 100644
--- a/src/bin/ui/project_navigator.c
+++ b/src/bin/ui/project_navigator.c
@@ -16,10 +16,14 @@
  * You should have received a copy of the GNU Lesser General Public License
  * along with this program; If not, see www.gnu.org/licenses/lgpl.html.
  */
+#define EO_BETA_API
+#define EFL_BETA_API_SUPPORT
+#define EFL_EO_API_SUPPORT
 
 #include "project_navigator.h"
 #include "main_window.h"
 #include "editor.h"
+#include "validator.h"
 
 #define SIG_GROUP_OPEN "group,open"
 
@@ -44,6 +48,7 @@ typedef struct
 
 static Project_Navigator project_navigator;
 static Layout_Popup layout_p;
+static Resource_Name_Validator *validator = NULL;
 
 static char *
 _group_item_label_get(void *data,
@@ -421,10 +426,15 @@ _btn_add_group_cb(void *data __UNUSED__,
Eina_List *l;
Elm_Object_Item *glit;
 
+   assert(validator == NULL);
+
BOX_ADD(ap.win, layout_p.box, false, false)
/* name: entry */
+   validator = resource_name_validator_new(LAYOUT_NAME_REGEX, NULL);
+   resource_name_validator_list_set(validator, >groups, false);
LAYOUT_PROP_ADD(layout_p.box, _("name"), "property", "1swallow")
ENTRY_ADD(layout_p.box, layout_p.entry, true)
+   eo_do(layout_p.entry, eo_event_callback_add(ELM_ENTRY_EVENT_VALIDATE, 
resource_name_validator_helper, validator));
elm_layout_content_set(item, NULL, layout_p.entry);
elm_box_pack_end(layout_p.box, item);
glit = elm_genlist_selected_item_get(project_navigator.genlist);
@@ -472,6 +482,8 @@ _btn_add_group_cb(void *data __UNUSED__,
 
 close:
evas_object_del(layout_p.box);
+   resource_name_validator_free(validator);
+   validator = NULL;
 }
 
 static void

-- 




[EGIT] [tools/eflete] master 01/05: navigator: fix the rename from c6e14a0f3a3d6ccea508aa48e49d2972e3879673

2015-11-09 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=5f7674e799d98a6d5d8bb2ea8c0d261304fa4cea

commit 5f7674e799d98a6d5d8bb2ea8c0d261304fa4cea
Author: Vyacheslav Reutskiy 
Date:   Mon Nov 9 09:02:41 2015 +0200

navigator: fix the rename from c6e14a0f3a3d6ccea508aa48e49d2972e3879673

Change-Id: If56390272da8285a8b94f8a29da257c9e3f25307
---
 src/bin/ui/project_navigator.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/bin/ui/project_navigator.c b/src/bin/ui/project_navigator.c
index fd0067a..1158c87 100644
--- a/src/bin/ui/project_navigator.c
+++ b/src/bin/ui/project_navigator.c
@@ -611,21 +611,21 @@ project_navigator_add(void)
assert(ap.win != NULL);
 
project_navigator.itc_folder = elm_genlist_item_class_new();
-   project_navigator.itc_folder->item_style = "project_navigator";
+   project_navigator.itc_folder->item_style = "navigator";
project_navigator.itc_folder->func.text_get = _folder_item_label_get;
project_navigator.itc_folder->func.content_get = _folder_item_icon_get;
project_navigator.itc_folder->func.state_get = NULL;
project_navigator.itc_folder->func.del = _folder_item_del;
 
project_navigator.itc_group = elm_genlist_item_class_new();
-   project_navigator.itc_group->item_style = "project_navigator";
+   project_navigator.itc_group->item_style = "navigator";
project_navigator.itc_group->func.text_get = _group_item_label_get;
project_navigator.itc_group->func.content_get = _group_item_icon_get;
project_navigator.itc_group->func.state_get = NULL;
project_navigator.itc_group->func.del = NULL;
 
project_navigator.layout = elm_layout_add(ap.win);
-   elm_layout_theme_set(project_navigator.layout, "layout", 
"project_navigator", "default");
+   elm_layout_theme_set(project_navigator.layout, "layout", "navigator", 
"default");
evas_object_show(project_navigator.layout);
 
project_navigator.btn_add = elm_button_add(project_navigator.layout);

-- 




[EGIT] [tools/eflete] master 04/05: string_macro: update the layout name regex

2015-11-09 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=17a3e0b214f4b01b939b1cbebc72dfc28e44145a

commit 17a3e0b214f4b01b939b1cbebc72dfc28e44145a
Author: Vyacheslav Reutskiy 
Date:   Mon Nov 9 10:19:02 2015 +0200

string_macro: update the layout name regex

Change-Id: I456cdf922ff110c0c6e21ac23794d4905404dc20
---
 src/bin/common/string_common.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/common/string_common.h b/src/bin/common/string_common.h
index f34c6f7..e46cd00 100644
--- a/src/bin/common/string_common.h
+++ b/src/bin/common/string_common.h
@@ -31,7 +31,7 @@
free(arr); \
 }
 
-#define LAYOUT_NAME_REGEX "^[^\\/][a-zA-Z0-9_\\.\\/]+[^\\/]$"
+#define LAYOUT_NAME_REGEX "^[^\\/]?[a-zA-Z0-9_\\.\\/]+[^\\/]?$"
 #define NAME_REGEX "^[a-zA-Z0-9_]+$"
 #define STATE_VALUE_REGEX "^((0?(\\.[0-9]+)?|1(\\.0+)?))?$"
 #define PART_NAME_REGEX "^[a-zA-Z0-9_\\.]+$"

-- 




[EGIT] [tools/eflete] master 05/05: Merge ssh://106.125.46.94:29418/efl-edje-editor-tool

2015-11-09 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=52fdaf40a953e3ddd27ddb28b36c70b180ac8fa7

commit 52fdaf40a953e3ddd27ddb28b36c70b180ac8fa7
Merge: 1a199ee 17a3e0b
Author: Vyacheslav Reutskiy 
Date:   Mon Nov 9 10:26:09 2015 +0200

Merge ssh://106.125.46.94:29418/efl-edje-editor-tool

 src/bin/common/string_common.h |  1 +
 src/bin/ui/project_navigator.c | 36 +---
 2 files changed, 26 insertions(+), 11 deletions(-)

-- 




[EGIT] [tools/eflete] master 03/05: project_navigator: disable 'Ok' if inputed name is invalid

2015-11-09 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=7f7a9347b487bbc66ef1b54e938b757e258d80d8

commit 7f7a9347b487bbc66ef1b54e938b757e258d80d8
Author: Vyacheslav Reutskiy 
Date:   Mon Nov 9 10:18:02 2015 +0200

project_navigator: disable 'Ok' if inputed name is invalid

Change-Id: Ic9eb0bc9ee53ac79529a64376f2bb469bad0f2a6
---
 src/bin/ui/project_navigator.c | 18 ++
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/bin/ui/project_navigator.c b/src/bin/ui/project_navigator.c
index 2f06199..18f0cbe 100644
--- a/src/bin/ui/project_navigator.c
+++ b/src/bin/ui/project_navigator.c
@@ -405,14 +405,15 @@ _group_sel(void *data __UNUSED__,
 elm_object_disabled_set(layout_p.check, (item->index != 0) ? false : true);
 }
 
-static Eina_Bool
-_group_validator(void *data)
+static void
+_group_validate(void *data __UNUSED__,
+Evas_Object *obj __UNUSED__,
+void *event_info __UNUSED__)
 {
-   Evas_Object *entry = (Evas_Object *)data;
-
-   if (edje_edit_group_exist(ap.project->global_object, 
elm_entry_entry_get(entry)))
- return false;
-   return true;
+   if (resource_name_validator_status_get(validator) != ELM_REG_NOERROR)
+ popup_buttons_disabled_set(BTN_OK, true);
+   else
+ popup_buttons_disabled_set(BTN_OK, false);
 }
 
 static void
@@ -434,6 +435,7 @@ _btn_add_group_cb(void *data __UNUSED__,
resource_name_validator_list_set(validator, >groups, false);
LAYOUT_PROP_ADD(layout_p.box, _("name"), "property", "1swallow")
ENTRY_ADD(layout_p.box, layout_p.entry, true)
+   evas_object_smart_callback_add(layout_p.entry, "changed", _group_validate, 
NULL);
eo_do(layout_p.entry, eo_event_callback_add(ELM_ENTRY_EVENT_VALIDATE, 
resource_name_validator_helper, validator));
elm_layout_content_set(item, NULL, layout_p.entry);
elm_box_pack_end(layout_p.box, item);
@@ -464,7 +466,7 @@ _btn_add_group_cb(void *data __UNUSED__,
 
btn_res = popup_want_action(_("Create a new layout"), NULL, layout_p.box,
layout_p.entry, BTN_OK|BTN_CANCEL,
-   _group_validator, layout_p.entry);
+   NULL, layout_p.entry);
if (BTN_CANCEL == btn_res) goto close;
 
Ewe_Combobox_Item *combo_it;

-- 




[EGIT] [core/elementary] master 01/02: po: update po files for release

2015-11-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit cacb788d3a781139cfc33146f3e40b5e6369dfcc
Author: Stefan Schmidt 
Date:   Mon Nov 9 11:04:36 2015 +0100

po: update po files for release
---
 po/ar.po| 28 ++--
 po/az_IR.po | 28 ++--
 po/ca.po| 28 ++--
 po/cs.po| 28 ++--
 po/de.po| 28 ++--
 po/el.po| 28 ++--
 po/eo.po| 28 ++--
 po/es.po| 28 ++--
 po/fa.po| 28 ++--
 po/fi.po| 28 ++--
 po/fr.po| 28 ++--
 po/gl.po| 28 ++--
 po/he.po| 28 ++--
 po/hu.po| 28 ++--
 po/it.po| 28 ++--
 po/ko_KR.po | 28 ++--
 po/lt.po| 28 ++--
 po/nl.po| 28 ++--
 po/pl.po| 28 ++--
 po/ps.po| 28 ++--
 po/pt.po| 28 ++--
 po/ru.po| 28 ++--
 po/sr.po| 28 ++--
 po/tr.po| 28 ++--
 po/ur.po| 28 ++--
 po/vi.po| 28 ++--
 po/yi.po| 28 ++--
 po/zh_CN.po | 28 ++--
 28 files changed, 392 insertions(+), 392 deletions(-)

diff --git a/po/ar.po b/po/ar.po
index 4a43a92..2e47905 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n"
-"POT-Creation-Date: 2015-10-25 11:43+0100\n"
+"POT-Creation-Date: 2015-11-09 11:01+0100\n"
 "PO-Revision-Date: 2010-12-26 10:05+0200\n"
 "Last-Translator: Tom Hacohen \n"
 "Language-Team: General\n"
@@ -39,15 +39,15 @@ msgstr ""
 msgid "OK"
 msgstr ""
 
-#: src/lib/elc_multibuttonentry.c:667
+#: src/lib/elc_multibuttonentry.c:670
 msgid "multi button entry label"
 msgstr ""
 
-#: src/lib/elc_multibuttonentry.c:689
+#: src/lib/elc_multibuttonentry.c:692
 msgid "multi button entry item"
 msgstr ""
 
-#: src/lib/elc_multibuttonentry.c:1560
+#: src/lib/elc_multibuttonentry.c:1565
 msgid "multi button entry"
 msgstr ""
 
@@ -79,10 +79,10 @@ msgstr ""
 msgid "Clicked"
 msgstr ""
 
-#: src/lib/elm_button.c:275 src/lib/elm_check.c:244 src/lib/elm_gengrid.c:1255
-#: src/lib/elm_genlist.c:1659 src/lib/elm_list.c:2189 src/lib/elm_radio.c:268
+#: src/lib/elm_button.c:275 src/lib/elm_check.c:244 src/lib/elm_gengrid.c:1257
+#: src/lib/elm_genlist.c:1659 src/lib/elm_list.c:2193 src/lib/elm_radio.c:268
 #: src/lib/elm_segment_control.c:524 src/lib/elm_spinner.c:902
-#: src/lib/elm_toolbar.c:2246
+#: src/lib/elm_toolbar.c:2250
 msgid "State: Disabled"
 msgstr ""
 
@@ -219,7 +219,7 @@ msgstr ""
 msgid "Entry"
 msgstr ""
 
-#: src/lib/elm_gengrid.c:1285
+#: src/lib/elm_gengrid.c:1287
 msgid "Gengrid Item"
 msgstr ""
 
@@ -263,7 +263,7 @@ msgstr ""
 msgid "Radio"
 msgstr ""
 
-#: src/lib/elm_segment_control.c:527 src/lib/elm_toolbar.c:2248
+#: src/lib/elm_segment_control.c:527 src/lib/elm_toolbar.c:2252
 msgid "State: Selected"
 msgstr ""
 
@@ -303,22 +303,22 @@ msgstr ""
 msgid "spinner text"
 msgstr ""
 
-#: src/lib/elm_toolbar.c:1706 src/lib/elm_toolbar.c:2305
+#: src/lib/elm_toolbar.c:1710 src/lib/elm_toolbar.c:2309
 msgid "Selected"
 msgstr ""
 
-#: src/lib/elm_toolbar.c:2244
+#: src/lib/elm_toolbar.c:2248
 msgid "Separator"
 msgstr ""
 
-#: src/lib/elm_toolbar.c:2250
+#: src/lib/elm_toolbar.c:2254
 msgid "Has menu"
 msgstr ""
 
-#: src/lib/elm_toolbar.c:2300
+#: src/lib/elm_toolbar.c:2304
 msgid "Unselected"
 msgstr ""
 
-#: src/lib/elm_toolbar.c:2317
+#: src/lib/elm_toolbar.c:2321
 msgid "Toolbar Item"
 msgstr ""
diff --git a/po/az_IR.po b/po/az_IR.po
index 69814e2..9957682 100644
--- a/po/az_IR.po
+++ b/po/az_IR.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n"
-"POT-Creation-Date: 2015-10-25 11:43+0100\n"
+"POT-Creation-Date: 2015-11-09 11:01+0100\n"
 "PO-Revision-Date: 2010-12-26 10:05+0200\n"
 "Last-Translator: Tom Hacohen \n"
 "Language-Team: General\n"
@@ -38,15 +38,15 @@ msgstr ""
 msgid "OK"
 msgstr ""
 
-#: src/lib/elc_multibuttonentry.c:667
+#: src/lib/elc_multibuttonentry.c:670
 msgid "multi button entry label"
 msgstr ""
 
-#: src/lib/elc_multibuttonentry.c:689
+#: src/lib/elc_multibuttonentry.c:692
 msgid "multi button entry item"
 msgstr ""
 
-#: src/lib/elc_multibuttonentry.c:1560
+#: src/lib/elc_multibuttonentry.c:1565
 msgid "multi button entry"
 msgstr ""
 
@@ -78,10 

[EGIT] [core/elementary] master 02/02: release: Update NEWS and bump version for 1.16.0 release

2015-11-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit db3eba449066ce4c1455d2aba0114590b12190e4
Author: Stefan Schmidt 
Date:   Mon Nov 9 11:08:34 2015 +0100

release: Update NEWS and bump version for 1.16.0 release
---
 NEWS | 9 +
 configure.ac | 2 +-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index 3f469b9..24555b2 100644
--- a/NEWS
+++ b/NEWS
@@ -26,6 +26,7 @@ Features:
* atspi: support org.a11y.atspi.Collection interface
* atspi: add new relationship append/remove/clear API
* elm run - be explicit about elm run not nesting in docs
+   * gengrid : add all_contents_unset API in gengrid for reusing contents.
 
 Fixes:
 
@@ -124,6 +125,14 @@ Fixes:
* elm_cnp: DnD/X11: correct drag window position in rotation
* dayselector: fix warning related to argument type
* multibuttonentry: fix label packed many times in internal box.
+   * win: reemit atspi "focused" event on bridge connection
+   * multibuttonentry: when item is clicked/selected, select function not 
called issue fix.
+   * widget: update child_can_focus flag on focusability change
+   * colorselector: picker spinner UI not proper issue fix. (T2401)
+   * autoscroll focus: pass the object region position relative to the 
scroller. (T1686)
+   * elm_segment_control: fix invalid parameter
+   * atspi: add missing SELECTED changed signals
+   * win : Prohibiting auto-rendering, until elm_win is shown.
 
 Changes since 1.14.0:
 -
diff --git a/configure.ac b/configure.ac
index 9c1a32a..a8e294c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 EFL_VERSION([1], [16], [0], [release])
-AC_INIT([elementary], [efl_version-beta3], 
[enlightenment-de...@lists.sourceforge.net])
+AC_INIT([elementary], [efl_version], 
[enlightenment-de...@lists.sourceforge.net])
 
 AC_PREREQ(2.63)
 AC_CONFIG_SRCDIR([configure.ac])

-- 




[EGIT] [core/evas_generic_loaders] annotated tag v1.16.0 created (now 720d161)

2015-11-09 Thread Enlightenment Git
This is an automated email from the git hooks/post-receive script.

stefan pushed a change to annotated tag v1.16.0
in repository core/evas_generic_loaders.

at  720d161   (tag)
   tagging  cff07118ec77b87e3ab2c117848354dadb3ec1f5 (commit)
  replaces  v1.16.0-beta3
 tagged by  Stefan Schmidt
on  Mon Nov 9 11:30:36 2015 +0100

- Log -
v1.16.0

Stefan Schmidt (1):
  release: Update NEWS and bump version for 1.16.0 release

---

No new revisions were added by this update.

-- 




[EGIT] [core/efl] annotated tag v1.16.0-beta3 created (now d422452)

2015-11-09 Thread Enlightenment Git
This is an automated email from the git hooks/post-receive script.

stefan pushed a change to annotated tag v1.16.0-beta3
in repository core/efl.

at  d422452   (tag)
   tagging  03e8f3846391bd0dd133f3a9f35449323a5ccd60 (commit)
  replaces  v1.16.0-beta2
 tagged by  Stefan Schmidt
on  Mon Oct 26 08:27:16 2015 +0100

- Log -
v1.16.0-beta3

Carsten Haitzler (13):
  edje - fix some horrible misleading indenting in edje calc.
  efl - edje - fix edje calc to avoid eo calls when object doesnt change
  efl - eo - massively improve eo cal resolv and data scope get with cache
  eo - shut clang up because otherwise i have to argue with peolpe
  eo resolv cache - remove params passed to resolv func for efficiency
  eo - oops remove warning cpp i accidentally put in!
  efl eo - pass test suite function overrides again after adding cache
  evas - software render async - fix async render to actually be all async
  efl tests - ecore fb - disable as it basically is more pain than gain
  evas gl - rect draws didnt obey cutout max like font and img - fix
  eo header - remove 2 errant spaces to clean formatting
  eo - move cache lookup into the hot path if as it only is valid there
  eo - make null object silent if eo id is off

Cedric BAIL (6):
  efl: fix copy & paste typo while parsing SVG elliptical arc command.
  emile: prevent segv when rotation is asked and there is no opts provided.
  emile: fix typos catched by coverity.
  efl: fix path parsing to actually check the value returned by strtol.
  eina: make sure to cleanup the right string.
  efreet: make sure that we use the right directory and ef for the cache.

Chidambar Zinnoury (2):
  ecore fb: We shall look for the Ecore_Fb.h header only where needed.
  ecore fb: Unbreak ecore_evas_fb.

Jaehwan Kim (2):
  edje: add edje signal emit about swallow, text
  Revert "edje: add edje signal emit about swallow, text"

Jean-Philippe ANDRÉ (1):
  Evas render: Fix rendering of snapshot objects

Jee-Yong Um (1):
  evas table: fix miscalcuation in cells with span and padding

Jihoon Kim (1):
  Ecore evas: Correct function name in magic failure of 
ecore_evas_rotation_with_resize_set ()

Mike Blumenkrantz (5):
  ecore-wayland: defer shell surface creation for windows if shell is not 
bound
  ecore-wayland: only do deferred shell surface creation when a surface 
exists
  ee-wayland: use frame callbacks exclusively to determine render timing
  ecore-wayland: plug some trivial leaks
  ee-wayland: remove attempt to optimize canvas resizing

Shilpa Singh (1):
  edje: comparision with non-scaled min values issue fix.

Shinwoo Kim (1):
  ecore: use recursive lock for _ecore_glib_select

Srivardhan Hebbar (11):
  edje: fix memory leak on realloc.
  ector: removing useless assignement.
  ecore_x: handling realloc failure.
  ecore_x: removing useless assignment.
  ecore_x: removing useless assignment variable.
  ector: handling memory leak on error.
  evas: handling memory leak on realloc failure.
  eet: handling memory leak on realloc fail.
  ecore_x: remove useless assignment.
  emile: handling memory leak on realloc.
  eet: handling memory leak on realloc fail.

Stefan Schmidt (4):
  emile: remove dead code
  ephysics: add missing break in switch to avoid override variable with 
other cases
  po: update po files
  release: Update NEWS and bump version for 1.16.0-beta3 release

Subhransu Mohanty (1):
  efl/gfx: fix svg path parsing logic.

Subodh Kumar (2):
  evas textblock: fix memory leak
  evas: fix memory leak.

Vincent Torri (3):
  ecore_exe: terminate threads also in destructor
  efreet: use eina_file_mkstemp() for portability and fix a bug on Windows
  ecore_audio: do not compile elua file if ecore_audio is disabled

Vitor Sousa (1):
  eolian: Test recognition of struct types used in methods

Vivek Ellur (3):
  evil: fix memory leak issue in evil module
  eina: add test cases for f16p16 quaternion interpolation functions
  eina_quaternion: add test cases for interpolation functions.

perepelits.m (1):
  evas: fix memory leak

---

No new revisions were added by this update.

-- 




[EGIT] [core/elementary] annotated tag v1.16.0-beta3 created (now 0edc805)

2015-11-09 Thread Enlightenment Git
This is an automated email from the git hooks/post-receive script.

stefan pushed a change to annotated tag v1.16.0-beta3
in repository core/elementary.

at  0edc805   (tag)
   tagging  ed5579bc509641235facd74d280845145beffa1c (commit)
  replaces  v1.16.0-beta2
 tagged by  Stefan Schmidt
on  Mon Oct 26 08:38:45 2015 +0100

- Log -
v1.16.0-beta3

Amitesh Singh (2):
  image: use eo_isa for checking object types instead of string comparison
  flip: use eo_isa for checking object types

Andrii Kroitor (1):
  elm_colorselector: fix color selection with spinners

Carsten Haitzler (2):
  elm test - genlist test - add bounce option test for testing performance
  elm test - make automated test betetr by auto-exiting after 50 bounces

Cedric BAIL (3):
  hoversel: rename label_auto_changed -> auto_update
  toolbar: limit number of min restricted calc to exacly what we need.
  Revert "elementary: Comment out (#if 0) unused functions"

Dave Andreoli (1):
  Fix typo in docs

Jee-Yong Um (4):
  elm_hoversel: change Elm_Hoversel_Data member name from scroll_enabled to 
scrollable
  elm_hoversel: change API name (label_auto_changed -> auto_update)
  elm_hoversel: remove unused internal functions
  hoversel: expands scrollable hoversel as large as it can

Lukasz Stanislawski (3):
  atspi: always update cache
  atspi: clean-up children-changed event emission.
  atspi: fix invalid shift operation.

Nak-Gyeong Kim (1):
  elm_win: fix wrong comment.

Shilpa Singh (1):
  elm_cnp: DnD/X11: correct drag window position in rotation

Stefan Schmidt (10):
  examples/camera_light: free resources if we fail to allocate all and leave
  examples/sphere_hunter: use coorect logic for if condition.
  examples/sphere_hunter: make sure we do not loose fractional part of 
double.
  examples/sphere_hunter: initialize struct in all cases
  elm_widget_prefs: no need to redefine a typedef we already have
  examples/sphere_hunter: remove unused function
  examples/sphere_hunter: fix another instance of floating point 
incorrectness
  build: simplify SUBDIR usage in examples
  po: update po files
  release: Update NEWS and bump version for 1.16.0-beta3 release

Sung-Taek Hong (2):
  elm_map: block longpressed event when scrolled, zoomed, or rotated
  elc_file_selector_button: free allocated path name

Vivek Ellur (2):
  dayselector: fix warning related to argument type
  elm_index: Fix memory leak issue in realloc failure

woochan lee (2):
  gesture_layer: fix long tap gesture has wrong timestamp.
  multibuttonentry: fix label packed many times in internal box.

---

No new revisions were added by this update.

-- 




[EGIT] [core/efl] annotated tag v1.16.0 created (now 5e6800c)

2015-11-09 Thread Enlightenment Git
This is an automated email from the git hooks/post-receive script.

stefan pushed a change to annotated tag v1.16.0
in repository core/efl.

at  5e6800c   (tag)
   tagging  37a1e0112d3a5394682db7f8f75e531fc042f8fe (commit)
  replaces  v1.16.0-beta3
 tagged by  Stefan Schmidt
on  Mon Nov 9 11:28:20 2015 +0100

- Log -
v1.16.0

Amitesh Singh (1):
  evas box: don't allow duplicate child append

Carsten Haitzler (4):
  efl - make drm vsync handle broken drm irq timestamps
  ecore imf - fix modules that are x11 based to only load in x11 and in wl
  efreet - fix efreetd to not exit on $home being in extra app dirs
  evas - patch in one more if check for obj layer to avoid shutdown crash

Cedric BAIL (4):
  Revert "Eina: Fix 58b194e0ad56fe83cce3946a5deb0045ee0cbce2"
  eina: correctly prepare path before sanitizing it.
  emile/ecore_con: drop SSLv3 support due to security issue.
  ecore: remove useless printf in Win32 main loop.

Chidambar Zinnoury (3):
  ecore fb: Change default tslib device.
  Revert “ecore fb: Change default tslib device.”
  ecore fb: Use a default tslib device when none is specified through the 
environment variable TSLIB_TSDEVICE.

Christopher Michael (19):
  ecore-evas-wayland: Fix formatting
  ecore-drm: Don't exit tty setup if tty is already in graphics mode
  evas-gl-drm: Move definition of Render_Engine out to header
  evas-gl-drm: Resize gbm surface when canvas size changes
  ecore-evas-wl: Ignore step size when maximizing
  ecore-drm: Add some debug printing for driver details
  ecore-evas-drm: Use GBM_FORMAT_XRGB when creating new canvas
  evas-gl-drm: Fix issue of gl_drm engine not working
  evas-wayland-egl: Fix missing support for EVAS_NATIVE_SURFACE_WL
  evas-wayland-egl: Add missing include header for gl_common
  evas-gl-drm: Set Outbuf vsync according to engine
  ecore-drm: Don't always check fb size against dumb buffer
  ecore-evas-gl-drm: Don't create software dumb buffers when using gl
  evas-gl-drm: Find symlink for eglSetDamageRegionKHR
  evas-gl-drm: Implement eglSetDamageRegionKHR
  ecore-drm: Check return value of drmHandleEvent and cleanup
  ecore-drm: Fix issue of duplicate page flips
  ecore-drm: Fix issue of hanging in read()
  ecore-drm: Remove unused function

Daniel Kolesa (1):
  eolian: fix function parameter memory leak with value

Jaehyun Cho (1):
  ecore_file: Fix ecore_file_file_get function on Windows.

Jean-Philippe ANDRÉ (13):
  Emile: Allow load of ETC images if region = whole image
  Evas: Fix error message on stride_get with ETC & S3TC
  Eet: fix decoding of embedded ETC images
  Eet: Another ETC decoding fix
  Evas: Disable TGV save debugging and fix error log
  ecore_evas_convert: Improve cmdline help a bit
  Evas render: Fix 'no_render' when object is proxy source
  tests: Fix build warning
  Evas: Remove dead code (cached surfaces)
  Evas: minor whitespace and debug changes
  doc: Add EDC doc for desc.proxy, fix for desc.fill
  doc: Fixup EDC doc for Evas 3D stuff
  doc: Deprecate filter reference page and link to the wiki

Mike Blumenkrantz (3):
  evas gl: init evgl during eng_gl_get_pixels_pre()
  evas gl_drm: don't deref null ptr on output free
  evas gl-x11: add missing EVAS_NATIVE_SURFACE_WL support

Shinwoo Kim (1):
  [eldbus] assign NULL to fd_handler, after deletion.

Srivardhan Hebbar (6):
  evas: removing redundant check in gl_x11 backend.
  eet: removing useless assignment variables.
  evas: removing redundant assigment in gl_common.
  evas: removing redundant assignment in gl_drm.
  evas: handling realloc failure in gl_generic.
  evas: removing redundant if case in gl_cocoa backend.

Stefan Schmidt (4):
  ecore_wayland: fix build for ivi-shell.
  tests/ecore_con: check saved env variables before setting them again.
  po: update po files before release
  release: Update NEWS and bump version for 1.16.0 release

Vincent Torri (2):
  Eina: Fix 58b194e0ad56fe83cce3946a5deb0045ee0cbce2
  eina/efreet: open file with binary file on Windows

Vitalii Vorobiov (1):
  Evas Text: avoid SIGSEV while ellipsis recalculation

Vivek Ellur (6):
  eina_quaternion: correct the API name in header file
  eina_quaternion: add test cases for quaternion rotation functions
  eina_quaternion: add test case for rotation function
  eina_hash: add test cases for eina_hash_add/del by hash functions
  ector: fix null pointer dereference issue
  ecore: add test case for idler enterer function

pierre lamot (1):
  ecore_cocoa: prevent mouse event loss when clicking in titlebar

---

No new revisions were added by this update.

-- 




[EGIT] [core/evas_generic_loaders] annotated tag v1.16.0-beta3 created (now 8fce17a)

2015-11-09 Thread Enlightenment Git
This is an automated email from the git hooks/post-receive script.

stefan pushed a change to annotated tag v1.16.0-beta3
in repository core/evas_generic_loaders.

at  8fce17a   (tag)
   tagging  a82813337c91d55b82354e803683720d7bea4af2 (commit)
  replaces  v1.16.0-beta2
 tagged by  Stefan Schmidt
on  Mon Oct 26 08:38:37 2015 +0100

- Log -
v1.16.0-beta3

Stefan Schmidt (1):
  release: Update NEWS and bump version for 1.16.0-beta3 release

---

No new revisions were added by this update.

-- 




[EGIT] [core/elementary] annotated tag v1.16.0 created (now 3c8ec4e)

2015-11-09 Thread Enlightenment Git
This is an automated email from the git hooks/post-receive script.

stefan pushed a change to annotated tag v1.16.0
in repository core/elementary.

at  3c8ec4e   (tag)
   tagging  db3eba449066ce4c1455d2aba0114590b12190e4 (commit)
  replaces  v1.16.0-beta3
 tagged by  Stefan Schmidt
on  Mon Nov 9 11:30:45 2015 +0100

- Log -
v1.16.0

Amitesh Singh (2):
  test_gesture_layer: use bigger font size for entry
  test_explode: use evas_object_clipees_has instead

Carsten Haitzler (1):
  genlist tree test - minor - show all callbacks called so people know

Cedric BAIL (1):
  Revert "elm: Add eglfs backend support."

Daniel Juyung Seo (1):
  elm: Fix typos fun!

Felipe Magno de Almeida (1):
  Remove #include for config.h from C++ public header

Hosang Kim (1):
  interface_scrollable: delete unnecessary smart callback call.

Jean Guyomarc'h (1):
  elm_segment_control: fix invalid parameter

Jean-Philippe ANDRÉ (1):
  notify: animate on hide

Jee-Yong Um (1):
  hoversel: remove scrollable_set/get() API

Lukasz Stanislawski (3):
  win: reemit atspi "focused" event on bridge connection
  widget: update child_can_focus flag on focusability change
  atspi: add missing SELECTED changed signals

Nicolas Aguirre (1):
  elm: Add eglfs backend support.

Shilpa Singh (2):
  multibuttonentry: when item is clicked/selected, select function not 
called issue fix.
  colorselector: picker spinner UI not proper issue fix.

Stefan Schmidt (2):
  po: update po files for release
  release: Update NEWS and bump version for 1.16.0 release

Wonsik Jung (1):
  win : Prohibiting auto-rendering, until elm_win is shown.

Yeshwanth Reddivari (1):
  Hoversel: Fix dismiss callback

chris (1):
  autoscroll focus: pass the object region position relative to the 
scroller.

woochan lee (1):
  multibuttonentry: fix internal entry be an orphan when editable set API 
called.

---

No new revisions were added by this update.

-- 




[EGIT] [core/emotion_generic_players] annotated tag v1.16.0-beta3 created (now b81a8ad)

2015-11-09 Thread Enlightenment Git
This is an automated email from the git hooks/post-receive script.

stefan pushed a change to annotated tag v1.16.0-beta3
in repository core/emotion_generic_players.

at  b81a8ad   (tag)
   tagging  8aed59672618f260274781a27f30f07e99984784 (commit)
  replaces  v1.16.0-beta2
 tagged by  Stefan Schmidt
on  Mon Oct 26 08:38:41 2015 +0100

- Log -
v1.16.0-beta3

Stefan Schmidt (1):
  release: Update NEWS and bump version for 1.16.0-beta3 release

---

No new revisions were added by this update.

-- 




[EGIT] [core/emotion_generic_players] annotated tag v1.16.0 created (now 86b01f7)

2015-11-09 Thread Enlightenment Git
This is an automated email from the git hooks/post-receive script.

stefan pushed a change to annotated tag v1.16.0
in repository core/emotion_generic_players.

at  86b01f7   (tag)
   tagging  a335b11ce90a8248c50a196d0b0a7aa995b653e6 (commit)
  replaces  v1.16.0-beta3
 tagged by  Stefan Schmidt
on  Mon Nov 9 11:30:41 2015 +0100

- Log -
v1.16.0

Stefan Schmidt (1):
  release: Update NEWS and bump version for 1.16.0 release

---

No new revisions were added by this update.

-- 




[EGIT] [website/www-content] master 01/01: release: Update links for version 1.16

2015-11-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=982abac83feaca3d135b51b88bc1bde4a28118b1

commit 982abac83feaca3d135b51b88bc1bde4a28118b1
Author: Stefan Schmidt 
Date:   Mon Nov 9 11:34:57 2015 +0100

release: Update links for version 1.16
---
 pages/download-latest.txt | 8 
 pages/start-release.txt   | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/pages/download-latest.txt b/pages/download-latest.txt
index c76f0c7..248f5ab 100644
--- a/pages/download-latest.txt
+++ b/pages/download-latest.txt
@@ -1,8 +1,8 @@
 
-efl_v = 1.15.2
-elm_v = 1.15.2
-emotion_generic_players_v = 1.15.0
-evas_generic_loaders_v= 1.15.0
+efl_v = 1.16.0
+elm_v = 1.16.0
+emotion_generic_players_v = 1.16.0
+evas_generic_loaders_v= 1.16.0
 python_efl_v  = 1.15.0
 
 enlightenment_v   = 0.19.12
diff --git a/pages/start-release.txt b/pages/start-release.txt
index 451bb48..78f2c25 100644
--- a/pages/start-release.txt
+++ b/pages/start-release.txt
@@ -1,3 +1,3 @@
 
-EFL 1.15.2 and Enlightenment 0.19.12 are out - go to our [[download]] page.
-
\ No newline at end of file
+EFL 1.16.0 and Enlightenment 0.19.12 are out - go to our [[download]] page.
+

-- 




[EGIT] [core/efl] master 15/24: eina: added test case for matrix4 transpose function

2015-11-09 Thread Vivek Ellur
cedric pushed a commit to branch master.

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

commit b5e672aad883143184e61efe4a9a0df1110e3be1
Author: Vivek Ellur 
Date:   Mon Nov 9 16:16:05 2015 -0800

eina: added test case for matrix4 transpose function

Summary:
Added test case for eina_matrix4_transpose function

Signed-off-by: Vivek Ellur 

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3279

Signed-off-by: Cedric BAIL 
---
 src/tests/eina/eina_test_matrix.c | 12 
 1 file changed, 12 insertions(+)

diff --git a/src/tests/eina/eina_test_matrix.c 
b/src/tests/eina/eina_test_matrix.c
index 11cc2c6..50323fb 100644
--- a/src/tests/eina/eina_test_matrix.c
+++ b/src/tests/eina/eina_test_matrix.c
@@ -167,6 +167,18 @@ START_TEST(eina_matrix4)
wy != wz ||
wz != 0);
 
+   eina_matrix4_values_set(,
+   1, 2, 3, 4,
+   5, 6, 7, 8,
+   9, 10, 11, 12,
+   13, 14, 15, 16);
+
+   eina_matrix4_transpose(, );
+   fail_if(n.xx != 1 || n.xy != 5 || n.xz != 9 || n.xw != 13 ||
+   n.yx != 2 || n.yy != 6 || n.yz != 10 || n.yw != 14 ||
+   n.zx != 3 || n.zy != 7 || n.zz != 11 || n.zw != 15 ||
+   n.wx != 4 || n.wy != 8 || n.wz != 12 || n.ww != 16);
+
eina_shutdown();
 }
 END_TEST

-- 




[EGIT] [core/efl] master 16/24: eina: add test case for eina list reverse iterator

2015-11-09 Thread Vivek Ellur
cedric pushed a commit to branch master.

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

commit f06eedf3c339af6647fc216ca06f29de53831c70
Author: Vivek Ellur 
Date:   Mon Nov 9 16:17:24 2015 -0800

eina: add test case for eina list reverse iterator

Summary:
Added test case for eina_list_iterator_reversed_new function

Signed-off-by: Vivek Ellur 

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3281

Signed-off-by: Cedric BAIL 
---
 src/tests/eina/eina_test_iterator.c | 66 +
 1 file changed, 66 insertions(+)

diff --git a/src/tests/eina/eina_test_iterator.c 
b/src/tests/eina/eina_test_iterator.c
index 4c14dec..5c4b88d 100644
--- a/src/tests/eina/eina_test_iterator.c
+++ b/src/tests/eina/eina_test_iterator.c
@@ -287,6 +287,71 @@ START_TEST(eina_iterator_list_simple)
 }
 END_TEST
 
+static Eina_Bool
+eina_reverse_iterator_list_data_check(EINA_UNUSED const Eina_List *list,
+  int *data,
+  int *fdata)
+{
+   switch (*fdata)
+ {
+  case 0: fail_if(*data != 1337); break;
+
+  case 1: fail_if(*data != 1); break;
+
+  case 2: fail_if(*data != 42); break;
+
+  case 3: fail_if(*data != 6); break;
+
+  case 4: fail_if(*data != 9); break;
+
+  case 5: fail_if(*data != 7); break;
+
+  case 6: fail_if(*data != 81); break;
+ }
+
+   (*fdata)++;
+
+   return EINA_TRUE;
+}
+
+START_TEST(eina_reverse_iterator_list_simple)
+{
+   Eina_List *list = NULL;
+   Eina_Iterator *it;
+   int data[] = { 6, 9, 42, 1, 7, 1337, 81, 1664 };
+   int i = 0;
+
+   eina_init();
+
+   list = eina_list_append(list, [0]);
+   fail_if(list == NULL);
+
+   list = eina_list_prepend(list, [1]);
+   fail_if(list == NULL);
+
+   list = eina_list_append(list, [2]);
+   fail_if(list == NULL);
+
+   list = eina_list_append(list, [3]);
+   fail_if(list == NULL);
+
+   list = eina_list_prepend(list, [4]);
+   fail_if(list == NULL);
+
+   list = eina_list_append(list, [5]);
+   fail_if(list == NULL);
+
+   list = eina_list_prepend(list, [6]);
+   fail_if(list == NULL);
+
+   it = eina_list_iterator_reversed_new(list);
+   fail_if(!it);
+
+   eina_iterator_foreach(it, 
EINA_EACH_CB(eina_reverse_iterator_list_data_check), );
+   eina_iterator_free(it);
+}
+END_TEST
+
 typedef struct _Eina_Rbtree_Int Eina_Rbtree_Int;
 struct _Eina_Rbtree_Int
 {
@@ -461,5 +526,6 @@ eina_test_iterator(TCase *tc)
tcase_add_test(tc, eina_iterator_hash_simple);
tcase_add_test(tc, eina_iterator_inlist_simple);
tcase_add_test(tc, eina_iterator_list_simple);
+   tcase_add_test(tc, eina_reverse_iterator_list_simple);
tcase_add_test(tc, eina_iterator_rbtree_simple);
 }

-- 




[EGIT] [core/efl] master 14/24: evil: avoid SIGSEV while using strlen function

2015-11-09 Thread Yeshwanth Reddivari
cedric pushed a commit to branch master.

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

commit a605bd8498ead542405941c1f722b3b4080ad6ed
Author: Yeshwanth Reddivari 
Date:   Mon Nov 9 16:10:59 2015 -0800

evil: avoid SIGSEV while using strlen function

Summary: Assertion of (fp!=NULL) should be done before passing fp to strlen 
funcion

Reviewers: singh.amitesh, Hermet, alok25, mvsovani, vtorri

Subscribers: sachin.dev, cedric

Differential Revision: https://phab.enlightenment.org/D3274

Signed-off-by: Cedric BAIL 
---
 src/lib/evil/regex/regcomp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/lib/evil/regex/regcomp.c b/src/lib/evil/regex/regcomp.c
index 080d292..c1b7850 100644
--- a/src/lib/evil/regex/regcomp.c
+++ b/src/lib/evil/regex/regcomp.c
@@ -1179,9 +1179,10 @@ register cset *cs;
 register char *cp;
 {
 register char *fp = mcfind(cs, cp);
-register size_t len = strlen(fp);
+register size_t len;
 
 assert(fp != NULL);
+len = strlen(fp);
 (void) memmove(fp, fp + len + 1,
 cs->smultis - (fp + len + 1 - cs->multis));
 cs->smultis -= len;

-- 




[EGIT] [core/efl] master 24/24: evas: fix inverted texture coordinate in Evas.Canvas3d.

2015-11-09 Thread Oleksandr Shcherbina
cedric pushed a commit to branch master.

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

commit 35d942829ae50c5eb376c2e30682d3237bbc9d27
Author: Oleksandr Shcherbina 
Date:   Mon Nov 9 16:26:57 2015 -0800

evas: fix inverted texture coordinate in Evas.Canvas3d.

Summary: Fix T2820

Reviewers: cedric, raster, Hermet

Maniphest Tasks: T2820

Differential Revision: https://phab.enlightenment.org/D3294

Signed-off-by: Cedric BAIL 
---
 .../gl_common/shader_3d/evas_gl_3d_shaders.x   | 30 +-
 .../evas/engines/gl_common/shader_3d/include.shd   |  5 ++--
 2 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x 
b/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x
index 1ac2a1c..c03d8b5 100644
--- a/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x
+++ b/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x
@@ -143,10 +143,11 @@ static const char diffuse_vert_glsl[] =
"#endif // VERTEX_POSITION\n"
"#endif //VERTEX_POSITION_BLEND\n"
"   #ifdef VERTEX_TEXCOORD_BLEND\n"
-   "   vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n"
+   "   vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
+   "   vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), 
uTexCoordWeight);\n"
"#else\n"
"#ifdef VERTEX_TEXCOORD\n"
-   "   vTexCoord = aTexCoord0.st;\n"
+   "   vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
"#endif //VERTEX_TEXCOORD\n"
"#endif //VERTEX_TEXCOORD_BLEND\n"
"   gl_Position = uMatrixMvp * position;\n"
@@ -359,10 +360,11 @@ static const char flat_vert_glsl[] =
"#endif //VERTEX_NORMAL\n"
"#endif //VERTEX_NORMAL_BLEND\n"
"   #ifdef VERTEX_TEXCOORD_BLEND\n"
-   "   vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n"
+   "   vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
+   "   vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), 
uTexCoordWeight);\n"
"#else\n"
"#ifdef VERTEX_TEXCOORD\n"
-   "   vTexCoord = aTexCoord0.st;\n"
+   "   vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
"#endif //VERTEX_TEXCOORD\n"
"#endif //VERTEX_TEXCOORD_BLEND\n"
"   gl_Position = uMatrixMvp * position;\n"
@@ -686,10 +688,11 @@ static const char phong_vert_glsl[] =
"#endif //VERTEX_NORMAL\n"
"#endif //VERTEX_NORMAL_BLEND\n"
"   #ifdef VERTEX_TEXCOORD_BLEND\n"
-   "   vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n"
+   "   vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
+   "   vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), 
uTexCoordWeight);\n"
"#else\n"
"#ifdef VERTEX_TEXCOORD\n"
-   "   vTexCoord = aTexCoord0.st;\n"
+   "   vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
"#endif //VERTEX_TEXCOORD\n"
"#endif //VERTEX_TEXCOORD_BLEND\n"
"   gl_Position = uMatrixMvp * position;\n"
@@ -1104,10 +1107,11 @@ static const char normal_map_vert_glsl[] =
"#endif //VERTEX_TANGENT\n"
"#endif //VERTEX_TANGENT_BLEND\n"
"   #ifdef VERTEX_TEXCOORD_BLEND\n"
-   "   vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n"
+   "   vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
+   "   vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), 
uTexCoordWeight);\n"
"#else\n"
"#ifdef VERTEX_TEXCOORD\n"
-   "   vTexCoord = aTexCoord0.st;\n"
+   "   vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
"#endif //VERTEX_TEXCOORD\n"
"#endif //VERTEX_TEXCOORD_BLEND\n"
"   gl_Position = uMatrixMvp * position;\n"
@@ -1475,10 +1479,11 @@ static const char shadow_map_vert_glsl[] =
"#endif //VERTEX_POSITION_BLEND\n"
"#ifdef ALPHA_TEST_ENABLED\n"
"   #ifdef VERTEX_TEXCOORD_BLEND\n"
-   "   vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n"
+   "   vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
+   "   vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), 
uTexCoordWeight);\n"
"#else\n"
"#ifdef VERTEX_TEXCOORD\n"
-   "   vTexCoord = aTexCoord0.st;\n"
+   "   vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
"#endif //VERTEX_TEXCOORD\n"
"#endif //VERTEX_TEXCOORD_BLEND\n"
"#endif //ALPHA_TEST_ENABLED\n"
@@ -1767,10 +1772,11 @@ static const char parallax_occlusion_vert_glsl[] =
"#endif //VERTEX_TANGENT\n"
"#endif //VERTEX_TANGENT_BLEND\n"
"   #ifdef VERTEX_TEXCOORD_BLEND\n"
-   "   vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n"
+   "   vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
+   "   vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), 
uTexCoordWeight);\n"
"#else\n"
"#ifdef VERTEX_TEXCOORD\n"
-   "   vTexCoord = aTexCoord0.st;\n"
+   "   vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
"#endif 

[EGIT] [core/efl] master 19/24: eina: add test case for list data idx function.

2015-11-09 Thread Vivek Ellur
cedric pushed a commit to branch master.

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

commit 4f6e158c13abf4182832df3e26c6af3a47e4b155
Author: Vivek Ellur 
Date:   Mon Nov 9 16:19:43 2015 -0800

eina: add test case for list data idx function.

Summary:
Added test case for eina_list_data_idx function

Signed-off-by: Vivek Ellur 

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3287
---
 src/tests/eina/eina_test_list.c | 9 +
 1 file changed, 9 insertions(+)

diff --git a/src/tests/eina/eina_test_list.c b/src/tests/eina/eina_test_list.c
index 1ae20cb..29d1d51 100644
--- a/src/tests/eina/eina_test_list.c
+++ b/src/tests/eina/eina_test_list.c
@@ -77,6 +77,15 @@ START_TEST(eina_test_simple)
list = eina_list_append(list, [2]);
 fail_if(list == NULL);
 
+   i = eina_list_data_idx(list, [1]);
+   fail_if(i != 0);
+
+   i = eina_list_data_idx(list, [2]);
+   fail_if(i != 2);
+
+   i = eina_list_data_idx(list, [3]);
+   fail_if(i != -1);
+
list = eina_list_demote_list(list, eina_list_nth_list(list, 1));
test1 = eina_list_nth(list, 2);
fail_if(test1 == NULL);

-- 




[EGIT] [core/efl] master 09/24: eina: fix wrong API since documentation.

2015-11-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit b9913d52e81e3e7fe0d50268a3bfd259d1d9de9f
Author: Cedric BAIL 
Date:   Mon Nov 9 15:44:32 2015 -0800

eina: fix wrong API since documentation.
---
 src/lib/eina/eina_str.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_str.h b/src/lib/eina/eina_str.h
index 2045764..6347dd9 100644
--- a/src/lib/eina/eina_str.h
+++ b/src/lib/eina/eina_str.h
@@ -378,7 +378,7 @@ EAPI unsigned char *eina_memdup(unsigned char *mem, size_t 
size, Eina_Bool termi
  * free(buf);
  * @endcode
  *
- * @since 1.16.0
+ * @since 1.17.0
  */
 EAPI char *eina_strftime(const char *format, const struct tm *tm);
 

-- 




[EGIT] [core/efl] master 21/24: ecore_con: adding test case for ecore_con_url_status_code_get.

2015-11-09 Thread Srivardhan Hebbar
cedric pushed a commit to branch master.

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

commit c99d50e00b07d4f4406b16f996515f008e26aec7
Author: Srivardhan Hebbar 
Date:   Mon Nov 9 16:21:42 2015 -0800

ecore_con: adding test case for ecore_con_url_status_code_get.

Summary: Signed-off-by: Srivardhan Hebbar 

Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3289

Signed-off-by: Cedric BAIL 
---
 src/tests/ecore_con/ecore_con_test_ecore_con_url.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/tests/ecore_con/ecore_con_test_ecore_con_url.c 
b/src/tests/ecore_con/ecore_con_test_ecore_con_url.c
index d8b7ab1..38fb234 100644
--- a/src/tests/ecore_con/ecore_con_test_ecore_con_url.c
+++ b/src/tests/ecore_con/ecore_con_test_ecore_con_url.c
@@ -33,12 +33,15 @@ _url_compl_cb(void *data, int type EINA_UNUSED, void 
*event_info)
 {
url_test *info = data;
Ecore_Con_Event_Url_Complete *ev = event_info;
+   int status;
 
printf("Total downloaded bytes = %d\n",
ecore_con_url_received_bytes_get(ev->url_con));
 
if (info->_tmpfd)
  {
+status = ecore_con_url_status_code_get(ev->url_con);
+fail_if(status != 220);
 _free_url_test(info);
 ecore_con_url_free(ev->url_con);
  }

-- 




[EGIT] [core/efl] master 17/24: eina: add test case for list demote function

2015-11-09 Thread Vivek Ellur
cedric pushed a commit to branch master.

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

commit fec6bd3fef426f75581ddffa0587db10da4052c6
Author: Vivek Ellur 
Date:   Mon Nov 9 16:18:03 2015 -0800

eina: add test case for list demote function

Summary:
Added test case for eina_list_demote_list function

Signed-off-by: Vivek Ellur 

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3283

Signed-off-by: Cedric BAIL 
---
 src/tests/eina/eina_test_list.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/tests/eina/eina_test_list.c b/src/tests/eina/eina_test_list.c
index 4523311..1fea84b 100644
--- a/src/tests/eina/eina_test_list.c
+++ b/src/tests/eina/eina_test_list.c
@@ -77,6 +77,11 @@ START_TEST(eina_test_simple)
list = eina_list_append(list, [2]);
 fail_if(list == NULL);
 
+   list = eina_list_demote_list(list, eina_list_nth_list(list, 1));
+   test1 = eina_list_nth(list, 2);
+   fail_if(test1 == NULL);
+   fail_if(*test1 != 6);
+
list = eina_list_remove(list, [0]);
 fail_if(list == NULL);
 

-- 




[EGIT] [core/efl] master 18/24: eina: add test cases for eina list move functions

2015-11-09 Thread Vivek Ellur
cedric pushed a commit to branch master.

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

commit 6bf43179cd128b3fe2d491c82b34e5cd729c1a30
Author: Vivek Ellur 
Date:   Mon Nov 9 16:18:58 2015 -0800

eina: add test cases for eina list move functions

Summary:
Added test cases for eina_list_move and eina_list_move_list functions

Signed-off-by: Vivek Ellur 

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3285

Signed-off-by: Cedric BAIL 
---
 src/tests/eina/eina_test_list.c | 41 +
 1 file changed, 41 insertions(+)

diff --git a/src/tests/eina/eina_test_list.c b/src/tests/eina/eina_test_list.c
index 1fea84b..1ae20cb 100644
--- a/src/tests/eina/eina_test_list.c
+++ b/src/tests/eina/eina_test_list.c
@@ -489,6 +489,46 @@ START_TEST(eina_test_clone)
 }
 END_TEST
 
+START_TEST(eina_test_move)
+{
+   Eina_List *list1 = NULL, *list2 = NULL;
+   Eina_Bool ret;
+   int data1[] = {1, 2, 3, 4, 5};
+   int data2[] = {6, 7, 8, 9, 10};
+   int i, *list_data;
+
+   eina_init();
+
+   for (i = 0; i < 5; i++)
+   {
+  list1 = eina_list_append(list1, [i]);
+  list2 = eina_list_append(list2, [i]);
+   }
+   fail_if(eina_list_count(list1) != 5);
+   fail_if(eina_list_count(list2) != 5);
+
+   ret = eina_list_move(, , [4]);
+   fail_if(ret != EINA_TRUE);
+   fail_if(eina_list_count(list1) != 6);
+   fail_if(eina_list_count(list2) != 4);
+   list_data = eina_list_nth(list1, 5);
+   fail_if(*list_data != 10);
+
+   ret = eina_list_move_list(, ,
+ eina_list_nth_list(list2, 1));
+   fail_if(ret != EINA_TRUE);
+   fail_if(eina_list_count(list1) != 7);
+   fail_if(eina_list_count(list2) != 3);
+   list_data = eina_list_nth(list1, 6);
+   fail_if(*list_data != 7);
+
+   eina_list_free(list1);
+   eina_list_free(list2);
+
+   eina_shutdown();
+}
+END_TEST
+
 void
 eina_test_list(TCase *tc)
 {
@@ -498,4 +538,5 @@ eina_test_list(TCase *tc)
tcase_add_test(tc, eina_test_list_split);
tcase_add_test(tc, eina_test_shuffle);
tcase_add_test(tc, eina_test_clone);
+   tcase_add_test(tc, eina_test_move);
 }

-- 




  1   2   >