[EGIT] [core/efl] master 01/01: Revert "Eo: Optimise event callback call"
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e992a3a1e0b597fecbe4b935659138d6a9bafcf2 commit e992a3a1e0b597fecbe4b935659138d6a9bafcf2 Author: Tom HacohenDate: 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
yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=1be14afa8f8067d399bf141e8b8105eb849d0b75 commit 1be14afa8f8067d399bf141e8b8105eb849d0b75 Author: Yakov GoldbergDate: 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
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=6c70b9e994a162b5be1cf8e2f2756f307a5a commit 6c70b9e994a162b5be1cf8e2f2756f307a5a Author: Daniel ZaouiDate: 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
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=1a83706673cdd325ef86e2abd05912b0632534e4 commit 1a83706673cdd325ef86e2abd05912b0632534e4 Author: Daniel ZaouiDate: 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
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=8b3162c8de36ae058412c28f4061d7737c3dab44 commit 8b3162c8de36ae058412c28f4061d7737c3dab44 Author: Daniel ZaouiDate: 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
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=688ddfbd94a60d4215c1333b8e9deb125e7425aa commit 688ddfbd94a60d4215c1333b8e9deb125e7425aa Author: Daniel ZaouiDate: 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
stefan pushed a commit to branch master. http://git.enlightenment.org/core/evas_generic_loaders.git/commit/?id=ab7d7d7da8e18a5de84fd21bd30c001afc5f5765 commit ab7d7d7da8e18a5de84fd21bd30c001afc5f5765 Author: Stefan SchmidtDate: 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
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=5bd4e4f904ce40c84753aa6db3255901235e4c8f commit 5bd4e4f904ce40c84753aa6db3255901235e4c8f Author: Daniel ZaouiDate: 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
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=6a2a558f39acfefeefc3b1895040ead0bb90d254 commit 6a2a558f39acfefeefc3b1895040ead0bb90d254 Author: Daniel ZaouiDate: 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
jeyzu pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4b116627c24a43248abf5a34a391241b1c0cf983 commit 4b116627c24a43248abf5a34a391241b1c0cf983 Author: Jérémy ZurcherDate: 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
yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=6ad73cb8855ae58ea0dfb734890c3cf80e07762a commit 6ad73cb8855ae58ea0dfb734890c3cf80e07762a Author: Yakov GoldbergDate: 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
glima pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f74ab7f7d27e7b2ab994563404e0b29f13f9736d commit f74ab7f7d27e7b2ab994563404e0b29f13f9736d Author: Gustavo Lima ChavesDate: 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
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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=945f9506cf7377bf01de3a6a87a669be0f290fb3 commit 945f9506cf7377bf01de3a6a87a669be0f290fb3 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=9ffef78188b523a3de594a1e99f8f8973ce872fe commit 9ffef78188b523a3de594a1e99f8f8973ce872fe Author: Mike BlumenkrantzDate: 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
stefan pushed a commit to branch master. http://git.enlightenment.org/core/emotion_generic_players.git/commit/?id=c78c1b09034dbfda0446a8d6324e90a0f0335d30 commit c78c1b09034dbfda0446a8d6324e90a0f0335d30 Author: Stefan SchmidtDate: 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
stefan pushed a commit to branch master. http://git.enlightenment.org/core/emotion_generic_players.git/commit/?id=ad1d91a8ef653311332a56e77b363728c8a2937a commit ad1d91a8ef653311332a56e77b363728c8a2937a Author: Stefan SchmidtDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1529bebcb0b500cc853d8850337e1a62fa010fe6 commit 1529bebcb0b500cc853d8850337e1a62fa010fe6 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=88726e8df35d966b6587ace70d8d08a25e99dc48 commit 88726e8df35d966b6587ace70d8d08a25e99dc48 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3e5d970c2fdc34919c5d8088980e31a60492000f commit 3e5d970c2fdc34919c5d8088980e31a60492000f Author: Mike BlumenkrantzDate: 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
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0c1bb7d7b3d4e9a91ae33455ab761d7e9405c2df commit 0c1bb7d7b3d4e9a91ae33455ab761d7e9405c2df Author: Shilpa SinghDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=13f3cad5f120a98e4cc1b56059490f83628af9f8 commit 13f3cad5f120a98e4cc1b56059490f83628af9f8 Author: Shilpa SinghDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=cf94160b6bd9a1180c8a1fdcb35b8ee1e055f37f commit cf94160b6bd9a1180c8a1fdcb35b8ee1e055f37f Author: woochan leeDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=58edfd10d7b077382178713699d9c84367d1686c commit 58edfd10d7b077382178713699d9c84367d1686c Author: godly.taliasDate: 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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=551657e02a1165c3940a98c10f5d2019d1c6a5fe commit 551657e02a1165c3940a98c10f5d2019d1c6a5fe Author: Mike BlumenkrantzDate: 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
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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8589289ff54fff77974955bd2eadf8c734554d96 commit 8589289ff54fff77974955bd2eadf8c734554d96 Author: Mike BlumenkrantzDate: 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
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()
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e8c7f5686c6761ced482b8a6b319f458665b5b2c commit e8c7f5686c6761ced482b8a6b319f458665b5b2c Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=eefba0945669f8829c34d43642c05f84eca7a82b commit eefba0945669f8829c34d43642c05f84eca7a82b Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=71b113f44c3b8be2677c39470badb0122a877b4e commit 71b113f44c3b8be2677c39470badb0122a877b4e Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=93243139485e0fad6db62cdfae5b2f1f448df44a commit 93243139485e0fad6db62cdfae5b2f1f448df44a Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c7cd4178a7e228ec85781e4ef7302d2882084297 commit c7cd4178a7e228ec85781e4ef7302d2882084297 Author: shorneDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ffc1f2604a691dc1f811404f1b975a023bc13995 commit ffc1f2604a691dc1f811404f1b975a023bc13995 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=27a798c4f1a61314b7c60b5ea35704ad5c5ce056 commit 27a798c4f1a61314b7c60b5ea35704ad5c5ce056 Author: Stafford HorneDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=90b0708fb11ddbf8e528d6295ae2980df3a967cf commit 90b0708fb11ddbf8e528d6295ae2980df3a967cf Author: Mike BlumenkrantzDate: 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"
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=755073b5fcbb14101711a38c0d76d71973971a7f commit 755073b5fcbb14101711a38c0d76d71973971a7f Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c31824c2ef43f4cb66534f4bc8c26064c477591a commit c31824c2ef43f4cb66534f4bc8c26064c477591a Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=245bb979221cb0dca3252b103b3cb274ddd3d916 commit 245bb979221cb0dca3252b103b3cb274ddd3d916 Author: Mike BlumenkrantzDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=599141a96b68262022a281dbb7c225fd68d57b18 commit 599141a96b68262022a281dbb7c225fd68d57b18 Author: Cedric BAILDate: 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
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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=02d78670d48c904cff483b74e514640bd961ed06 commit 02d78670d48c904cff483b74e514640bd961ed06 Author: Srivardhan HebbarDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=12d8191cb59ecbdfc53d8fea80ef50a37f655392 commit 12d8191cb59ecbdfc53d8fea80ef50a37f655392 Author: Cedric BAILDate: 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
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.
cedric pushed a commit to branch efl-1.16. http://git.enlightenment.org/core/efl.git/commit/?id=8e186dec07e8e6bee5a48e1299aaaf85bd4b2e48 commit 8e186dec07e8e6bee5a48e1299aaaf85bd4b2e48 Author: Cedric BAILDate: 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
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
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=876889b8a75acbb7eaf520eff7ce420b8757d835 commit 876889b8a75acbb7eaf520eff7ce420b8757d835 Author: Shilpa SinghDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=c315ff1876afad4f340297291123072e6c4ee9d6 commit c315ff1876afad4f340297291123072e6c4ee9d6 Author: Youngbok ShinDate: 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
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=aab530e3473fa06ce035d2a30b200caa3b3c0ddc commit aab530e3473fa06ce035d2a30b200caa3b3c0ddc Author: Nicolas AguirreDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e45b8015772ba0cee01a111080e4c04ea513c23f commit e45b8015772ba0cee01a111080e4c04ea513c23f Author: Cedric BAILDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ef975a9fd221a89695d69cd45318efd329d6781b commit ef975a9fd221a89695d69cd45318efd329d6781b Author: Cedric BAILDate: 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
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=297ea39a5cd11d1b0697ded2f46412ecddba63b7 commit 297ea39a5cd11d1b0697ded2f46412ecddba63b7 Author: Shilpa SinghDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dcc08940494b55d08fb90505698f37b0c5732cf8 commit dcc08940494b55d08fb90505698f37b0c5732cf8 Author: Cedric BAILDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9023f6d28c127373555339cd062f457f4ce7a9b6 commit 9023f6d28c127373555339cd062f457f4ce7a9b6 Author: Cedric BAILDate: 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
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=95d398b5c8bfde8d6d760ca5881d19691b522c92 commit 95d398b5c8bfde8d6d760ca5881d19691b522c92 Author: Subodh KumarDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=23d8d71e083f24232cf316e8b272e3c8588141db commit 23d8d71e083f24232cf316e8b272e3c8588141db Author: Cedric BAILDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=01eaa7a9cceab3b7e45d269387960e91c1940d45 commit 01eaa7a9cceab3b7e45d269387960e91c1940d45 Author: Srivardhan HebbarDate: 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
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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a356c4e3e8cea183ceeb910fe710490f18255a74 commit a356c4e3e8cea183ceeb910fe710490f18255a74 Author: Srivardhan HebbarDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9cc8c470be4aee9c7f6a48f624c233194c91c368 commit 9cc8c470be4aee9c7f6a48f624c233194c91c368 Author: Subodh KumarDate: 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
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6ad565a6afe3243b97cf0f22a17b532aa391c1e9 commit 6ad565a6afe3243b97cf0f22a17b532aa391c1e9 Author: Jean-Philippe AndreDate: 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
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7974f674aa9ba18588576a373e1ec0c524bbde9f commit 7974f674aa9ba18588576a373e1ec0c524bbde9f Author: Jean-Philippe AndreDate: 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
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=de068b84679251cbf8572cb471202a534ce141c4 commit de068b84679251cbf8572cb471202a534ce141c4 Author: Daniel ZaouiDate: 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
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=d27884fd2531a575ebc9a7a73e12b99019376df2 commit d27884fd2531a575ebc9a7a73e12b99019376df2 Author: Daniel ZaouiDate: 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
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=64de2f6ce505283ee3de8d69297b7f39e7e5a2d6 commit 64de2f6ce505283ee3de8d69297b7f39e7e5a2d6 Author: Jean-Philippe AndreDate: 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
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c55c7c0a0d3330c9a8a555b1001465df593f0017 commit c55c7c0a0d3330c9a8a555b1001465df593f0017 Author: Jean-Philippe AndreDate: 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)
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=35056500467355e32e886b1f2a95b040f11fe2f7 commit 35056500467355e32e886b1f2a95b040f11fe2f7 Author: Jean-Philippe AndreDate: 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
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c70ba9e13bd8dcdb892f666fbeb354e84b13eb31 commit c70ba9e13bd8dcdb892f666fbeb354e84b13eb31 Author: Jean-Philippe AndreDate: 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
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=31b8fd16499e7a71afe43b9859fe312e2706d15b commit 31b8fd16499e7a71afe43b9859fe312e2706d15b Author: Jean-Philippe AndreDate: 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
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a5d02848202475d87621fb61ce7a3e8dcecc11f5 commit a5d02848202475d87621fb61ce7a3e8dcecc11f5 Author: Jean-Philippe AndreDate: 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
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0ba13ae7a245b269378b3bc6c12abc78c5929362 commit 0ba13ae7a245b269378b3bc6c12abc78c5929362 Author: Jean-Philippe AndreDate: 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
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c22c25c9efd6eac5bfc4929dc25eb0b08c3b1ff0 commit c22c25c9efd6eac5bfc4929dc25eb0b08c3b1ff0 Author: Jean-Philippe AndreDate: 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
stefan pushed a commit to branch master. http://git.enlightenment.org/core/evas_generic_loaders.git/commit/?id=f44028b62a86e9f6385b69ccdc145e4f59ecef3b commit f44028b62a86e9f6385b69ccdc145e4f59ecef3b Author: Stefan SchmidtDate: 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
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5e870cd388444a57ff27c9d29e48b9b20683a766 commit 5e870cd388444a57ff27c9d29e48b9b20683a766 Author: Stefan SchmidtDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=cc2f2785fd82c486a5f0db76be4fe2e26744245c commit cc2f2785fd82c486a5f0db76be4fe2e26744245c Author: Cedric BAILDate: 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
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=067fbf0863fd44ae4b9ce1f416aed4a03518121f commit 067fbf0863fd44ae4b9ce1f416aed4a03518121f Author: Vyacheslav ReutskiyDate: 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
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=5f7674e799d98a6d5d8bb2ea8c0d261304fa4cea commit 5f7674e799d98a6d5d8bb2ea8c0d261304fa4cea Author: Vyacheslav ReutskiyDate: 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
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=17a3e0b214f4b01b939b1cbebc72dfc28e44145a commit 17a3e0b214f4b01b939b1cbebc72dfc28e44145a Author: Vyacheslav ReutskiyDate: 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
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=52fdaf40a953e3ddd27ddb28b36c70b180ac8fa7 commit 52fdaf40a953e3ddd27ddb28b36c70b180ac8fa7 Merge: 1a199ee 17a3e0b Author: Vyacheslav ReutskiyDate: 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
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=7f7a9347b487bbc66ef1b54e938b757e258d80d8 commit 7f7a9347b487bbc66ef1b54e938b757e258d80d8 Author: Vyacheslav ReutskiyDate: 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
stefan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=cacb788d3a781139cfc33146f3e40b5e6369dfcc commit cacb788d3a781139cfc33146f3e40b5e6369dfcc Author: Stefan SchmidtDate: 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
stefan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=db3eba449066ce4c1455d2aba0114590b12190e4 commit db3eba449066ce4c1455d2aba0114590b12190e4 Author: Stefan SchmidtDate: 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)
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)
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)
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)
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)
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)
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)
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)
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
stefan pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=982abac83feaca3d135b51b88bc1bde4a28118b1 commit 982abac83feaca3d135b51b88bc1bde4a28118b1 Author: Stefan SchmidtDate: 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
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b5e672aad883143184e61efe4a9a0df1110e3be1 commit b5e672aad883143184e61efe4a9a0df1110e3be1 Author: Vivek EllurDate: 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
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f06eedf3c339af6647fc216ca06f29de53831c70 commit f06eedf3c339af6647fc216ca06f29de53831c70 Author: Vivek EllurDate: 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
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a605bd8498ead542405941c1f722b3b4080ad6ed commit a605bd8498ead542405941c1f722b3b4080ad6ed Author: Yeshwanth ReddivariDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=35d942829ae50c5eb376c2e30682d3237bbc9d27 commit 35d942829ae50c5eb376c2e30682d3237bbc9d27 Author: Oleksandr ShcherbinaDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4f6e158c13abf4182832df3e26c6af3a47e4b155 commit 4f6e158c13abf4182832df3e26c6af3a47e4b155 Author: Vivek EllurDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b9913d52e81e3e7fe0d50268a3bfd259d1d9de9f commit b9913d52e81e3e7fe0d50268a3bfd259d1d9de9f Author: Cedric BAILDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c99d50e00b07d4f4406b16f996515f008e26aec7 commit c99d50e00b07d4f4406b16f996515f008e26aec7 Author: Srivardhan HebbarDate: 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
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=fec6bd3fef426f75581ddffa0587db10da4052c6 commit fec6bd3fef426f75581ddffa0587db10da4052c6 Author: Vivek EllurDate: 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
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6bf43179cd128b3fe2d491c82b34e5cd729c1a30 commit 6bf43179cd128b3fe2d491c82b34e5cd729c1a30 Author: Vivek EllurDate: 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); } --