Re: [E-devel] EDD 2017 location discussion - Vote opened
Hello. On 06/12/16 23:06, Stefan Schmidt wrote: > Hello. > > On 25/11/16 11:55, Stefan Schmidt wrote: >> Hello. >> >> On 14/11/16 10:11, Stefan Schmidt wrote: >>> Hello. >>> >>> On 04/11/16 11:48, Stefan Schmidt wrote: Hello. After gettign more feedback and proposals here I put out a vote: https://phab.enlightenment.org/V27 Let us know what makes sense to you! >>> >>> We got feedback and preferences form 15 people so far which is great and >>> already gives a direction. (e.g. Paris, Toulouse and Edinburgh are >>> leading with Malta directly behind) >>> >>> This community is bigger than 15 people though. :) If you have not voted >>> yet please do so to help us understand where we should focus on. >> >> We got to 22 votes now. I still miss some of the usual suspects though. :) >> >> Malta and Toulouse are leading with 14 votes so far, followed by Paris >> with 13, Edinburgh with 12 and USA with 11. > > 25 votes now and the top 3-4 seems to stay the same. > > If you have not voted yet, but still want to, you have until the end of > the year before I close the vote (31.12). Afterwards we will look at the > top votes and try to find the location which will work best for us. > You can expect another vote for dates in January or February. No more votes came in after this mail and I closed the poll with 25 votes today. Results are as follows: 16 votes Malta 16 votes Toulouse 15 votes Paris 14 votes Edinburgh 12 votes USA 10 votes London 09 votes Tel Aviv 09 votes Seoul Based on this we will talk with Jonathan (Malta) and Nicolas (Toulouse) about their proposals and see which one would work best for us. regards Stefan Schmidt -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Weekly news from the automated build and QA front
Hello. Summary: o Build failure percentage really low (holiday effect?) This should give everyone an overview over what has happened in the last week on the QA front. The numbers in parentheses reflect the values from last week to give you a trend. CI: o Overall build statistic: 9.83% (6.25%) failed. https://build.enlightenment.org/ Unit tests: o N/A (885) unit tests for efl Coverage: o EFL total coverage is at 27.3% (27.3%) lines, 37.8% (37.8%) functions and N/A (N/A) branches https://build.enlightenment.org/view/Test%20Coverage/ Coverity: o EFL: Outstanding defects 73 (87) with a density of 0.07 (0.08) o Enlightenment: Outstanding defects 1 (1) with a density of 0 (0) o Terminology: Outstanding defects 1 (3) with a density of 0.01 (0.03) o Rage: Outstanding defects 0 (0) with a density of 0 (0) Phab: o EFL bug count: 317 (310) o E bug count: 397 (389) https://phab.enlightenment.org/maniphest/report/burn/ o Pending patch reviews: 117 (105) regards Stefan Schmidt -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/enlightenment] master 05/05: e icon - use new skip header async preload to make icon loads async
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3779086a638ec5e30bc102fefa17e34d91d17767 commit 3779086a638ec5e30bc102fefa17e34d91d17767 Author: Carsten Haitzler (Rasterman) Date: Sun Jan 1 22:19:51 2017 +0900 e icon - use new skip header async preload to make icon loads async now they can be trule async hopefully stopping things like application menu from stalling while loading icons header... which is really nasty with svg's. this actually makes icons async by default which is really EXACTLY what you want. this also prepares for later making edje loads async. @feature --- src/bin/e_dialog.c | 6 +- src/bin/e_fm.c | 4 +- src/bin/e_icon.c | 187 +-- src/bin/e_icon.h | 2 +- src/bin/e_utils.c| 3 +- src/bin/e_widget_image.c | 9 +- src/bin/e_xkb.c | 1 + src/modules/conf_display/e_int_config_desklock.c | 6 +- src/modules/conf_theme/e_int_config_xsettings.c | 14 +- src/modules/everything/evry_util.c | 6 +- src/modules/ibar/e_mod_main.c| 4 +- src/modules/ibox/e_mod_main.c| 4 +- src/modules/notification/e_mod_popup.c | 11 +- src/modules/systray/e_mod_notifier_host.c| 6 +- src/modules/tasks/e_mod_main.c | 2 +- src/modules/winlist/e_winlist.c | 6 +- 16 files changed, 135 insertions(+), 136 deletions(-) diff --git a/src/bin/e_dialog.c b/src/bin/e_dialog.c index 2b0435b..d9639be 100644 --- a/src/bin/e_dialog.c +++ b/src/bin/e_dialog.c @@ -176,11 +176,7 @@ e_dialog_icon_set(E_Dialog *dia, const char *icon, Evas_Coord size) evas_object_show(dia->icon_object); } if (!e_util_icon_theme_set(dia->icon_object, icon)) - if (!e_icon_file_edje_set(dia->icon_object, icon, "icon")) -{ - E_FREE_FUNC(dia->icon_object, evas_object_del); - return; -} + e_icon_file_edje_set(dia->icon_object, icon, "icon"); evas_object_size_hint_min_set(dia->icon_object, size * e_scale, size * e_scale); elm_layout_signal_emit(dia->bg_object, "e,state,icon", "e"); elm_layout_signal_emit(dia->bg_object, "e,icon,enabled", "e"); diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index b05ef1e..048c4d2 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -11517,9 +11517,9 @@ _update_volume_icon(E_Volume *v, E_Fm2_Icon *ic) if (e) { if (ic->info.removable_full) - edje_object_signal_emit(e, "e,state,removable,full", "e"); + e_icon_edje_emit(ic->obj_icon, "e,state,removable,full", "e"); else - edje_object_signal_emit(e, "e,state,removable,empty", "e"); + e_icon_edje_emit(ic->obj_icon, "e,state,removable,empty", "e"); } if (v) diff --git a/src/bin/e_icon.c b/src/bin/e_icon.c index 305fcfd..2e4ed79 100644 --- a/src/bin/e_icon.c +++ b/src/bin/e_icon.c @@ -217,20 +217,22 @@ _handle_anim(E_Smart_Data *sd) return 1; } -E_API Eina_Bool +E_API void e_icon_file_set(Evas_Object *obj, const char *file) { E_Smart_Data *sd; int len; - if (!file) return EINA_FALSE; - if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR(0); - if (!(sd = evas_object_smart_data_get(obj))) - return EINA_FALSE; + if (!file) return; + if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR(); + if (!(sd = evas_object_smart_data_get(obj))) return; len = strlen(file); if ((len > 4) && (!strcasecmp(file + len - 4, ".edj"))) - return e_icon_file_edje_set(obj, file, "icon"); + { +e_icon_file_edje_set(obj, file, "icon"); +return; + } /* smart code here */ _e_icon_obj_prepare(obj, sd); @@ -258,13 +260,15 @@ e_icon_file_set(Evas_Object *obj, const char *file) if (_e_icon_cache_find(obj, file)) { _e_icon_smart_reconfigure(sd); -return EINA_TRUE; +return; } #endif + if (sd->preload) + evas_object_image_load_head_skip_set(sd->obj, EINA_TRUE); evas_object_image_file_set(sd->obj, file, NULL); - if (evas_object_image_load_error_get(sd->obj) != EVAS_LOAD_ERROR_NONE) - return EINA_FALSE; +// if (evas_object_image_load_error_get(sd->obj) != EVAS_LOAD_ERROR_NONE) +// return EINA_FALSE; if (!_handle_anim(sd)) { @@ -294,17 +298,15 @@ e_icon_file_set(Evas_Object *obj, const char *file) #endif _e_icon_smart_reconfigure(sd); - return EINA_TRUE; } -E_API Eina_Bool +E_API void e_icon_file_key_set(Evas_Object *obj, const char *file, const char *key) { E_Smart_Data *sd; - if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR(0); - if (!(sd = evas_obj
[EGIT] [core/efl] master 02/03: evas image async preload - add option to also make header load async
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9e01cf2698d5b24f440d696fd57d469cdc5a6b5f commit 9e01cf2698d5b24f440d696fd57d469cdc5a6b5f Author: Carsten Haitzler (Rasterman) Date: Sun Jan 1 22:15:24 2017 +0900 evas image async preload - add option to also make header load async to date if you use async preload we still load the header synchronously and this can be horrible especially with generic loaders. there is no way to farm this off to the preload thread. now there is. youhave to set it as a skip head load option before doing a file_set AND you need to issue a preload ... but now it's possible. @feature --- src/bin/evas/evas_cserve2_cache.c | 233 +++-- src/bin/evas/evas_cserve2_main.c | 22 +- src/bin/evas/evas_cserve2_shm_debug.c | 30 +-- src/bin/evas/evas_cserve2_slave.c | 22 +- src/lib/efl/interfaces/efl_image_load.eo | 15 ++ src/lib/evas/Evas_Legacy.h | 25 +++ src/lib/evas/Evas_Loader.h | 11 +- src/lib/evas/cache/evas_cache_image.c | 130 +++- src/lib/evas/cache2/evas_cache2.c | 97 + src/lib/evas/canvas/efl_canvas_image.c | 26 +++ src/lib/evas/canvas/efl_canvas_image.eo| 1 + src/lib/evas/canvas/evas_image_legacy.c| 14 ++ src/lib/evas/canvas/evas_image_private.h | 4 + src/lib/evas/canvas/evas_object_image.c| 110 ++ src/lib/evas/canvas/evas_object_inform.c | 2 + src/lib/evas/common/evas_image_load.c | 181 +--- src/lib/evas/cserve2/evas_cs2_client.c | 149 ++--- src/lib/evas/include/evas_common_private.h | 9 +- .../evas/engines/gl_common/evas_gl_common.h| 2 + src/modules/evas/engines/gl_common/evas_gl_image.c | 93 +++- src/modules/evas/engines/gl_generic/evas_engine.c | 16 +- .../evas/image_loaders/bmp/evas_image_load_bmp.c | 38 ++-- .../generic/evas_image_load_generic.c | 14 +- .../evas/image_loaders/ico/evas_image_load_ico.c | 12 +- .../evas/image_loaders/jpeg/evas_image_load_jpeg.c | 13 +- .../evas/image_loaders/png/evas_image_load_png.c | 38 ++-- .../evas/image_loaders/tgv/evas_image_load_tgv.c | 13 +- 27 files changed, 822 insertions(+), 498 deletions(-) diff --git a/src/bin/evas/evas_cserve2_cache.c b/src/bin/evas/evas_cserve2_cache.c index eec4ea3..277853e 100644 --- a/src/bin/evas/evas_cserve2_cache.c +++ b/src/bin/evas/evas_cserve2_cache.c @@ -28,19 +28,22 @@ typedef struct _Font_Source Font_Source; typedef struct _Font_Entry Font_Entry; static const Evas_Image_Load_Opts empty_lo = { - { 0, 0, 0, 0 }, - { -0, 0, 0, 0, -0, 0, -0, -0 - }, - 0.0, - 0, 0, - 0, - 0, - - EINA_FALSE + { +{ 0, 0, 0, 0 }, +{ + 0, 0, 0, 0, + 0, 0, + 0, + 0 +}, + 0.0, + 0, 0, + 0, + 0, + + EINA_FALSE + }, + EINA_FALSE }; typedef enum { @@ -761,13 +764,13 @@ _load_request_build(Image_Entry *ientry, int *bufsize) msg.alpha = fd->alpha; // NOTE: Not passing scale_load options - msg.opts.w = idata->opts.w; - msg.opts.h = idata->opts.h; - msg.opts.region = idata->opts.region; - msg.opts.scale_down_by = idata->opts.scale_down_by; - msg.opts.dpi = idata->opts.dpi; - msg.opts.degree = idata->opts.degree; - msg.opts.orientation = idata->opts.orientation; + msg.opts.emile.w = idata->opts.emile.w; + msg.opts.emile.h = idata->opts.emile.h; + msg.opts.emile.region = idata->opts.emile.region; + msg.opts.emile.scale_down_by = idata->opts.emile.scale_down_by; + msg.opts.emile.dpi = idata->opts.emile.dpi; + msg.opts.emile.degree = idata->opts.emile.degree; + msg.opts.emile.orientation = idata->opts.emile.orientation; msg.shm.mmap_offset = cserve2_shm_map_offset_get(ientry->shm); msg.shm.image_offset = cserve2_shm_offset_get(ientry->shm); @@ -798,9 +801,9 @@ _load_request_build(Image_Entry *ientry, int *bufsize) static inline Eina_Bool _scaling_needed(Image_Data *idata, Slave_Msg_Image_Loaded *resp) { - return (((idata->opts.scale_load.dst_w) && (idata->opts.scale_load.dst_h)) && - ((idata->opts.scale_load.dst_w != resp->w) || -(idata->opts.scale_load.dst_h != resp->h))); + return (((idata->opts.emile.scale_load.dst_w) && (idata->opts.emile.scale_load.dst_h)) && + ((idata->opts.emile.scale_load.dst_w != resp->w) || +(idata->opts.emile.scale_load.dst_h != resp->h))); } static int @@ -838,20 +841,20 @@ _scaling_do(Shm_Handle *scale_shm, Image_Data *idata, Image_Entry *original) DBG("Scaling image ([%dx%d]:[%d,%d:%dx%d] --> [%d,%d:%dx%d])", orig_idata->w, orig_idata->h, - idata->opts.scale_load.src_x, idata->
[EGIT] [core/enlightenment] master 03/05: desklock - allow for fadein/out effects in theme for locking/unlocking
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c997077c171f6bcab895659cc3030e14d6f04026 commit c997077c171f6bcab895659cc3030e14d6f04026 Author: Carsten Haitzler (Rasterman) Date: Fri Dec 30 15:26:37 2016 +0900 desklock - allow for fadein/out effects in theme for locking/unlocking this allows the theme to now do special effects on showing the desklock and on hiding it again afterwards so it can look nicer. @feature --- src/bin/e_desklock.c| 2 +- src/modules/lokker/lokker.c | 42 +- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/src/bin/e_desklock.c b/src/bin/e_desklock.c index e36dc61..b293016 100644 --- a/src/bin/e_desklock.c +++ b/src/bin/e_desklock.c @@ -294,7 +294,7 @@ e_desklock_show(Eina_Bool suspend) o = evas_object_rectangle_add(e_comp->evas); block_rects = eina_list_append(block_rects, o); - evas_object_color_set(o, 0, 0, 0, 255); + evas_object_color_set(o, 0, 0, 0, 0); evas_object_resize(o, 9, 9); evas_object_layer_set(o, E_LAYER_DESKLOCK); evas_object_show(o); diff --git a/src/modules/lokker/lokker.c b/src/modules/lokker/lokker.c index db9fb82..0dea675 100644 --- a/src/modules/lokker/lokker.c +++ b/src/modules/lokker/lokker.c @@ -455,15 +455,47 @@ _lokker_popup_add(E_Zone *zone) } static void +_lokker_cb_hide_done(void *data, Evas_Object *obj, const char *sig EINA_UNUSED, const char *src EINA_UNUSED) +{ + Evas_Object *comp_object = evas_object_data_get(obj, "comp_object"); + edje_object_signal_callback_del(obj, "e,action,hide,done", "e", + _lokker_cb_hide_done); + evas_object_del(data); + evas_object_del(obj); + evas_object_hide(comp_object); + evas_object_del(comp_object); +} + +static void _lokker_popup_free(Lokker_Popup *lp) { + const char *s; if (!lp) return; - evas_object_hide(lp->comp_object); - evas_object_del(lp->comp_object); - evas_object_del(lp->bg_object); - evas_object_del(lp->login_box); - + s = edje_object_data_get(lp->bg_object, "hide_signal"); + if ((s) && (atoi(s) == 1)) + { +evas_object_data_set(lp->bg_object, "comp_object", lp->comp_object); +evas_object_data_set(lp->bg_object, "login_box", lp->login_box); +edje_object_signal_callback_add(lp->bg_object, +"e,action,hide,done", "e", +_lokker_cb_hide_done, +lp->login_box); +edje_object_signal_emit(lp->bg_object, "e,action,hide", "e"); +edje_object_signal_emit(lp->login_box, "e,action,hide", "e"); +lp->bg_object = NULL; +lp->login_box = NULL; + } + else + { +evas_object_del(lp->bg_object); +evas_object_del(lp->login_box); +evas_object_hide(lp->comp_object); +evas_object_del(lp->comp_object); +lp->comp_object = NULL; +lp->bg_object = NULL; +lp->login_box = NULL; + } free(lp); } --
[EGIT] [core/enlightenment] master 04/05: e icon header - clean up formatting
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=227d49e346941e86c584588420db94309b0dbe4d commit 227d49e346941e86c584588420db94309b0dbe4d Author: Carsten Haitzler (Rasterman) Date: Sat Dec 31 10:04:51 2016 +0900 e icon header - clean up formatting --- src/bin/e_icon.h | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/bin/e_icon.h b/src/bin/e_icon.h index cbe42bb..3c08d4a 100644 --- a/src/bin/e_icon.h +++ b/src/bin/e_icon.h @@ -7,14 +7,14 @@ EINTERN int e_icon_init(void); EINTERN int e_icon_shutdown(void); E_API Evas_Object *e_icon_add (Evas *evas); -E_API Eina_Boole_icon_file_set (Evas_Object *obj, const char *file); -E_API Eina_Boole_icon_file_key_set (Evas_Object *obj, const char *file, const char *key); -E_API Evas_Object *e_icon_edje_get(Evas_Object *obj); -E_API Eina_Boole_icon_file_edje_set(Evas_Object *obj, const char *file, const char *part); -E_API Eina_Boole_icon_fdo_icon_set (Evas_Object *obj, const char *icon); -E_API void e_icon_edje_object_set(Evas_Object *obj, Evas_Object *edje); -E_API void e_icon_image_object_set (Evas_Object *obj, Evas_Object *o); -E_API Eina_Bool e_icon_file_get(const Evas_Object *obj, const char **file, const char **group); +E_API void e_icon_file_set (Evas_Object *obj, const char *file); +E_API void e_icon_file_key_set (Evas_Object *obj, const char *file, const char *key); +E_API Evas_Object *e_icon_edje_get (Evas_Object *obj); +E_API void e_icon_file_edje_set(Evas_Object *obj, const char *file, const char *part); +E_API void e_icon_fdo_icon_set (Evas_Object *obj, const char *icon); +E_API void e_icon_edje_object_set (Evas_Object *obj, Evas_Object *edje); +E_API void e_icon_image_object_set (Evas_Object *obj, Evas_Object *o); +E_API Eina_Boole_icon_file_get (const Evas_Object *obj, const char **file, const char **group); E_API void e_icon_smooth_scale_set (Evas_Object *obj, Eina_Bool smooth); E_API Eina_Boole_icon_smooth_scale_get (const Evas_Object *obj); E_API void e_icon_alpha_set(Evas_Object *obj, Eina_Bool smooth); @@ -30,7 +30,7 @@ E_API void e_icon_data_set (Evas_Object *obj, void *data, int w, E_API void*e_icon_data_get (const Evas_Object *obj, int *w, int *h); E_API void e_icon_scale_size_set (Evas_Object *obj, int size); E_API int e_icon_scale_size_get (const Evas_Object *obj); -E_API void e_icon_selected_set (const Evas_Object *obj, Eina_Bool selected); +E_API void e_icon_selected_set (const Evas_Object *obj, Eina_Bool selected); #endif #endif --
[EGIT] [core/enlightenment] master 02/05: appmenu - make appmenu work with click+release and not hide on focus out
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=965133445a0ea6de95b7ff6f08d4800ac7817dd1 commit 965133445a0ea6de95b7ff6f08d4800ac7817dd1 Author: Carsten Haitzler (Rasterman) Date: Thu Dec 29 22:44:28 2016 +0900 appmenu - make appmenu work with click+release and not hide on focus out appmenu is annoying in that is hides on focus out whish is what happens when a menu is popped up! fix this and make a qhick click+release work as well! if we are going to have a global app menu then let's make it vaguely decent... :) also get menu positioning right with item geometry itself for the menu not pointer position AND get menu pop direction correct based on gadcon orientation. @fix --- src/modules/appmenu/e_mod_appmenu_private.h | 2 + src/modules/appmenu/e_mod_appmenu_render.c | 101 ++-- src/modules/appmenu/e_mod_main.c| 3 +- 3 files changed, 98 insertions(+), 8 deletions(-) diff --git a/src/modules/appmenu/e_mod_appmenu_private.h b/src/modules/appmenu/e_mod_appmenu_private.h index 481cfe8..f0a1e43 100644 --- a/src/modules/appmenu/e_mod_appmenu_private.h +++ b/src/modules/appmenu/e_mod_appmenu_private.h @@ -41,5 +41,7 @@ void appmenu_dbus_registrar_server_shutdown(E_AppMenu_Context *ctx); void appmenu_application_monitor(void *data, const char *bus, const char *old, const char *new); void appmenu_menu_render(E_AppMenu_Context *ctxt EINA_UNUSED, E_AppMenu_Window *w); void appmenu_menu_of_instance_render(E_AppMenu_Instance *inst, E_AppMenu_Window *window); +int appmenu_menu_count_get(void); +void appmenu_cancel(void); #endif diff --git a/src/modules/appmenu/e_mod_appmenu_render.c b/src/modules/appmenu/e_mod_appmenu_render.c index 1c95475..b866e37 100644 --- a/src/modules/appmenu/e_mod_appmenu_render.c +++ b/src/modules/appmenu/e_mod_appmenu_render.c @@ -1,5 +1,45 @@ #include "e_mod_appmenu_private.h" +static int menu_count = 0; +static E_Menu *menu_pending = NULL; +static Ecore_Timer *menu_timer = NULL; +static int menu_dir = 0; +static Evas_Coord menu_x = 0, menu_y = 0, menu_w = 0, menu_h = 0; + +void +appmenu_cancel(void) +{ + if (menu_pending) + { +e_object_del(E_OBJECT(menu_pending)); +menu_pending = NULL; + } + if (menu_timer) + { +ecore_timer_del(menu_timer); +menu_timer = NULL; + } +} + +int +appmenu_menu_count_get(void) +{ + return menu_count; +} + +static void +item_activate(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED) +{ + menu_count++; +} + +static void +item_deactivate(void *data EINA_UNUSED, E_Menu *m) +{ + if (menu_pending == m) menu_pending = NULL; + menu_count--; +} + static void menu_deactive(E_Menu *m) { @@ -21,6 +61,7 @@ menu_post_deactivate(void *data, E_Menu *m) { E_Gadcon *gadcon = data; + item_deactivate(data, m); e_gadcon_locked_set(gadcon, 0); menu_deactive(m); } @@ -70,23 +111,64 @@ item_submenu_new(E_DBusMenu_Item *item, E_Menu_Item *mi) item_submenu_new(child, submi); e_util_menu_item_theme_icon_set(submi, child->icon_name); } + e_menu_pre_activate_callback_set(m, item_activate, item); + e_menu_post_deactivate_callback_set(m, item_deactivate, item); return m; } +static Eina_Bool +item_menu_delay(void *data EINA_UNUSED) +{ + Evas_Coord x, y, w, h; + E_Zone *zone; + + x = menu_x; + y = menu_y; + w = menu_w; + h = menu_h; + zone = e_comp_zone_xy_get(x + (w / 2), y + (h / 2)); + e_menu_activate_mouse(menu_pending, zone, x, y, w, h, menu_dir, 0); + menu_pending = NULL; + menu_timer = NULL; + return EINA_FALSE; +} + static void -item_menu_open(E_DBusMenu_Item *item, E_Gadcon *gadcon) +item_menu_open(E_DBusMenu_Item *item, E_Gadcon *gadcon, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) { E_Menu *m = item_submenu_new(item, NULL); - E_Zone *zone; - int x, y; + int dir = E_MENU_POP_DIRECTION_AUTO; EINA_SAFETY_ON_NULL_RETURN(m); e_gadcon_locked_set(gadcon, 1); e_menu_post_deactivate_callback_set(m, menu_post_deactivate, gadcon); - ecore_evas_pointer_xy_get(e_comp->ee, &x, &y); - zone = e_comp_zone_xy_get(x, y); - e_menu_activate_mouse(m, zone, x, y, 1, 1, E_MENU_POP_DIRECTION_DOWN, 0); + if ((gadcon->orient == E_GADCON_ORIENT_TOP) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_TL) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_TR)) + dir = E_MENU_POP_DIRECTION_DOWN; + else if ((gadcon->orient == E_GADCON_ORIENT_BOTTOM) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_BL) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_BR)) + dir = E_MENU_POP_DIRECTION_UP; + else if ((gadcon->orient == E_GADCON_ORIENT_LEFT) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_LT) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_LB)) + dir = E_MENU_POP_DIRECTION_RIGHT; + else if ((gadcon-
[EGIT] [core/efl] master 03/03: evas generic loader - expand buffers in case of weird install location
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b1aa6360e07a64b1779ed6940d4b875f01469b17 commit b1aa6360e07a64b1779ed6940d4b875f01469b17 Author: Carsten Haitzler (Rasterman) Date: Mon Jan 2 08:40:37 2017 +0900 evas generic loader - expand buffers in case of weird install location so we had just 128 bytes for path to generic loader utility. in most cases this is plenty but if you have bizarre symlinks and long paths we may run out of space, so move up to 4k buffers as this is realistically the max path len anyway on a system. @fix --- .../generic/evas_image_load_generic.c | 50 -- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/src/modules/evas/image_loaders/generic/evas_image_load_generic.c b/src/modules/evas/image_loaders/generic/evas_image_load_generic.c index 0efe39e..88dedad 100644 --- a/src/modules/evas/image_loaders/generic/evas_image_load_generic.c +++ b/src/modules/evas/image_loaders/generic/evas_image_load_generic.c @@ -113,7 +113,7 @@ _load(Eina_File *ef, const char *key, Eina_Bool res = EINA_FALSE; int w = 0, h = 0, alpha = 0; const char *dot1 = NULL, *dot2 = NULL, *end, *p; - char *cmd = NULL, decoders[3][128], buf[4096]; + char *cmd = NULL, decoders[3][4096], buf[4096]; char *loader = "/evas/utils/evas_image_loader"; char *img_loader = NULL; const char *libdir; @@ -132,16 +132,16 @@ _load(Eina_File *ef, const char *key, strcat(img_loader, loader); // params excluding file, key and loadopts - cmd_len += 1024; - cmd_len += strlen(eina_file_filename_get(ef)) * 2; - if (key) cmd_len += strlen(key) * 2; + cmd_len += 5120; // up to 4096 for cmd plus 1024 for cmd line opts + cmd_len += strlen(eina_file_filename_get(ef)) * 2; // double in case of esc + if (key) cmd_len += strlen(key) * 2; // double in case every char is esc cmd = alloca(cmd_len + 1); len = strlen(eina_file_filename_get(ef)); if (len < 1) { *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; - return EINA_FALSE; +return EINA_FALSE; } end = eina_file_filename_get(ef) + len; for (p = end - 1; p >= eina_file_filename_get(ef); p--) @@ -155,21 +155,21 @@ _load(Eina_File *ef, const char *key, // double extn not too long if (((end - dot2) <= 10) && (!illegal_char(dot2))) { - strncpy(&(decoders[decoders_num][0]), img_loader, 127); - decoders[decoders_num][127] = 0; + strncpy(&(decoders[decoders_num][0]), img_loader, 4000); + decoders[decoders_num][4000] = 0; dotcat(&(decoders[decoders_num][0]), dot2); decoders_num++; } // single extn not too long if (((end - dot1) <= 5) && (!illegal_char(dot1))) { - strncpy(&(decoders[decoders_num][0]), img_loader, 127); - decoders[decoders_num][127] = 0; + strncpy(&(decoders[decoders_num][0]), img_loader, 4000); + decoders[decoders_num][4000] = 0; dotcat(&(decoders[decoders_num][0]), dot1); decoders_num++; } -strncpy(decoders[decoders_num], img_loader, 127); -decoders[decoders_num][127] = 0; +strncpy(decoders[decoders_num], img_loader, 4000); +decoders[decoders_num][4000] = 0; decoders_num++; } else if (dot1) @@ -177,19 +177,19 @@ _load(Eina_File *ef, const char *key, // single extn not too long if (((end - dot1) <= 5) && (!illegal_char(dot1))) { - strncpy(&(decoders[decoders_num][0]), img_loader, 127); - decoders[decoders_num][127] = 0; + strncpy(&(decoders[decoders_num][0]), img_loader, 4000); + decoders[decoders_num][4000] = 0; dotcat(&(decoders[decoders_num][0]), dot1); decoders_num++; } -strncpy(decoders[decoders_num], img_loader, 127); -decoders[decoders_num][127] = 0; +strncpy(decoders[decoders_num], img_loader, 4000); +decoders[decoders_num][4000] = 0; decoders_num++; } else { -strncpy(decoders[decoders_num], img_loader, 127); -decoders[decoders_num][127] = 0; +strncpy(decoders[decoders_num], img_loader, 4000); +decoders[decoders_num][4000] = 0; decoders_num++; } @@ -206,6 +206,9 @@ _load(Eina_File *ef, const char *key, strcat(cmd, " "); // filename first arg len = strlen(cmd); +// escape any special chars with \ + char so if every char in a +// path is illegal/needs escape then at most we double the mem use +// for it and we accounted for that above when we calculated cmd_len escape_copy(eina_file_filename_get(ef), cmd + len); if (!get_data) { @@ -215,6 +218,7 @@ _load(Eina_File *ef, const char *ke
[EGIT] [core/efl] master 01/03: evas cutouts - quickly avoid huge per issues with large nos of cutouts
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b0530aba4f777352cc3ae9772fb1d22f598679a5 commit b0530aba4f777352cc3ae9772fb1d22f598679a5 Author: Carsten Haitzler (Rasterman) Date: Fri Dec 30 18:55:55 2016 +0900 evas cutouts - quickly avoid huge per issues with large nos of cutouts i found evas_common_draw_context_apply_cutouts() was procsessing 300+ cutouts and as it's O(n^2)/2 to try and merge adjacent rects for cutouts this really performs like complete junk. we apply cutout rects a LOT. this is not the best solution, but it's quick and much faster than doing the clipouts which drop framerate to like 1-2fps or so in the nasty case i say (tyls -m of photos in a dir with a 2160 high terminal). this figures out the target area to limit the count of rects significantly so O(n^2) is far far better when n is now < 10 most of the time. and for the few operations where it's a high value this now uses qsort to speed up merges etc. etc. @optimize --- src/lib/evas/canvas/evas_object_text.c | 33 ++-- src/lib/evas/canvas/evas_object_textblock.c| 20 ++- src/lib/evas/canvas/evas_object_textgrid.c | 12 ++ src/lib/evas/canvas/evas_render.c | 5 + src/lib/evas/common/evas_draw.h| 2 +- src/lib/evas/common/evas_draw_main.c | 182 +++-- src/lib/evas/include/evas_common_private.h | 3 + src/lib/evas/include/evas_private.h| 1 + .../evas/engines/software_generic/evas_engine.c| 8 + 9 files changed, 198 insertions(+), 68 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_text.c b/src/lib/evas/canvas/evas_object_text.c index 4d302b1..a4f8702 100644 --- a/src/lib/evas/canvas/evas_object_text.c +++ b/src/lib/evas/canvas/evas_object_text.c @@ -1805,21 +1805,26 @@ evas_object_text_render(Evas_Object *eo_obj, (((int)object->sub.col.b) * (amul)) / 255, \ (((int)object->sub.col.a) * (amul)) / 255); -#define DRAW_TEXT(ox, oy) \ - if ((o->font) && (it->text_props.len > 0)) \ - evas_font_draw_async_check(obj, output,\ -context,\ -surface,\ -o->font,\ +#define DRAW_TEXT(ox, oy) \ + if ((o->font) && (it->text_props.len > 0)) { \ + ENFN->context_cutout_target(output, context, \ + obj->cur->geometry.x + x + sl + ox + it->x, \ + obj->cur->geometry.y + y + st + oy, \ + it->w, it->h); \ + evas_font_draw_async_check(obj, output, \ +context, \ +surface, \ +o->font, \ obj->cur->geometry.x + x + sl + ox + it->x, \ -obj->cur->geometry.y + y + st + oy + \ -(int) o->max_ascent,\ -obj->cur->geometry.w,\ -obj->cur->geometry.h,\ -obj->cur->geometry.w,\ -obj->cur->geometry.h,\ -&it->text_props,\ -do_async); +obj->cur->geometry.y + y + st + oy + \ +(int)o->max_ascent, \ +obj->cur->geometry.w, \ +obj->cur->geometry.h, \ +obj->cur->geometry.w, \ +obj->cur->geometry.h, \ +&it->text_props, \ +do_async); \ + } if (o->has_filter) { diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index 5115bb0..638c5d5 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -12862,13 +12862,18 @@ evas_object_textblock_render(Evas_Object *eo_obj EINA_UNUSED, cr = nr; cg = ng; cb = nb; ca = na; \ } #define DRAW_TEXT(ox, oy) \ - if (ti->parent.format->font.font)\ - evas_font_draw_async_check(obj, output, context, surface, \ + if (ti->parent.format->font.font) { \ + ENFN->context_cutout_target(output, context,
[EGIT] [core/enlightenment] master 01/05: e sys - remove system action dialogs as comp actually does this
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8b9fee916ec3dfe5f60c0c4eabe187f500ee5b96 commit 8b9fee916ec3dfe5f60c0c4eabe187f500ee5b96 Author: Carsten Haitzler (Rasterman) Date: Thu Dec 29 21:14:28 2016 +0900 e sys - remove system action dialogs as comp actually does this so we have some dialog saying we're suspending/shutting down etc. etc. and this is really pointless as comp already does a screen-wide effect like fading out etc. and these dialogs were added long before we had a compositor. there isn't much point anymore so remove them and let comp deal with it. --- src/bin/e_sys.c | 91 +++-- 1 file changed, 10 insertions(+), 81 deletions(-) diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c index a6fa6a8..0a70465 100644 --- a/src/bin/e_sys.c +++ b/src/bin/e_sys.c @@ -14,7 +14,6 @@ static void _e_sys_logout_begin(E_Sys_Action a_after, Eina_Bool raw); static void _e_sys_current_action(void); static void _e_sys_action_failed(void); static int _e_sys_action_do(E_Sys_Action a, char *param, Eina_Bool raw); -static void _e_sys_dialog_cb_delete(E_Obj_Dialog *od); static Ecore_Event_Handler *_e_sys_exe_exit_handler = NULL; static Ecore_Exe *_e_sys_halt_check_exe = NULL; @@ -33,7 +32,6 @@ static Ecore_Exe *_e_sys_exe = NULL; static double _e_sys_begin_time = 0.0; static double _e_sys_logout_begin_time = 0.0; static Ecore_Timer *_e_sys_logout_timer = NULL; -static E_Obj_Dialog *_e_sys_dialog = NULL; static E_Dialog *_e_sys_logout_confirm_dialog = NULL; static Ecore_Timer *_e_sys_susp_hib_check_timer = NULL; static double _e_sys_susp_hib_check_last_tick = 0.0; @@ -55,6 +53,8 @@ static Ecore_Timer *action_timeout = NULL; static Eldbus_Proxy *login1_manger_proxy = NULL; +static int _e_sys_comp_waiting = 0; + E_API int E_EVENT_SYS_SUSPEND = -1; E_API int E_EVENT_SYS_HIBERNATE = -1; E_API int E_EVENT_SYS_RESUME = -1; @@ -62,6 +62,7 @@ E_API int E_EVENT_SYS_RESUME = -1; static void _e_sys_comp_done_cb(void *data, Evas_Object *obj, const char *sig, const char *src) { + if (_e_sys_comp_waiting == 1) _e_sys_comp_waiting--; edje_object_signal_callback_del(obj, sig, src, _e_sys_comp_done_cb); e_sys_action_raw_do((E_Sys_Action)(long)data, NULL); E_FREE_FUNC(action_timeout, ecore_timer_del); @@ -75,6 +76,7 @@ _e_sys_comp_action_timeout(void *data) E_Sys_Action a = (long)(intptr_t)data; const char *sig = NULL; + if (_e_sys_comp_waiting == 1) _e_sys_comp_waiting--; switch (a) { case E_SYS_LOGOUT: @@ -112,6 +114,7 @@ _e_sys_comp_emit_cb_wait(E_Sys_Action a, const char *sig, const char *rep, Eina_ E_Zone *zone; Eina_Bool first = EINA_TRUE; + if (_e_sys_comp_waiting == 0) _e_sys_comp_waiting++; if (nocomp_push) e_comp_override_add(); else e_comp_override_timed_pop(); printf("_e_sys_comp_emit_cb_wait - [%x] %s %s\n", a, sig, rep); @@ -468,11 +471,6 @@ _e_sys_susp_hib_check_timer_cb(void *data EINA_UNUSED) if ((t - _e_sys_susp_hib_check_last_tick) > 0.2) { _e_sys_susp_hib_check_timer = NULL; -if (_e_sys_dialog) - { - e_object_del(E_OBJECT(_e_sys_dialog)); - _e_sys_dialog = NULL; - } ecore_job_add(_e_sys_resume_job, NULL); return EINA_FALSE; } @@ -528,17 +526,6 @@ _e_sys_cb_exit(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) if ((_e_sys_exe) && (ev->exe == _e_sys_exe)) { if (ev->exit_code != 0) _e_sys_action_failed(); -if (((_e_sys_action_current != E_SYS_HALT) && - (_e_sys_action_current != E_SYS_HALT_NOW) && - (_e_sys_action_current != E_SYS_REBOOT)) || -(ev->exit_code != 0)) - { - if (_e_sys_dialog) - { - e_object_del(E_OBJECT(_e_sys_dialog)); - _e_sys_dialog = NULL; - } - } _e_sys_action_current = E_SYS_NONE; _e_sys_exe = NULL; return ECORE_CALLBACK_RENEW; @@ -622,11 +609,6 @@ _e_sys_cb_logout_abort(void *data EINA_UNUSED, E_Dialog *dia) _e_sys_action_current = E_SYS_NONE; _e_sys_action_after = E_SYS_NONE; _e_sys_action_after_raw = EINA_FALSE; - if (_e_sys_dialog) - { -e_object_del(E_OBJECT(_e_sys_dialog)); -_e_sys_dialog = NULL; - } } static void @@ -744,11 +726,6 @@ after: static void _e_sys_logout_after(void) { - if (_e_sys_dialog) - { -e_object_del(E_OBJECT(_e_sys_dialog)); -_e_sys_dialog = NULL; - } _e_sys_action_current = _e_sys_action_after; _e_sys_action_do(_e_sys_action_after, NULL, _e_sys_action_after_raw); _e_sys_action_after = E_SYS_NONE; @@ -760,23 +737,9 @@ _e_sys_logout_begin(E_Sys_Action a_after, Eina_Bool raw) { const Eina_List *l; E_Client *ec; - E_Obj_Dialog *od; stopping
[EGIT] [core/efl] master 01/01: edje_cc_parse: Compile EDC file whose path contains space character.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c670a32053718312f4231171c2755fea88418d85 commit c670a32053718312f4231171c2755fea88418d85 Author: Jaehyun Cho Date: Mon Jan 2 19:25:45 2017 +0900 edje_cc_parse: Compile EDC file whose path contains space character. Previously, edje_cc could not compile EDC file whose path contains space character since edje_cc interpreted the EDC file as separate 2 inputs. (i.e. "input file.edc" was interpreted as "input" and "file.edc") This patch enables edje_cc to interpret above case correctly. --- src/bin/edje/edje_cc_parse.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/bin/edje/edje_cc_parse.c b/src/bin/edje/edje_cc_parse.c index e5a7386..ed55bf3 100644 --- a/src/bin/edje/edje_cc_parse.c +++ b/src/bin/edje/edje_cc_parse.c @@ -1069,21 +1069,24 @@ compile(void) inc = ecore_file_dir_get(file_in); if (depfile) - snprintf(buf, sizeof(buf), "%s -MMD %s -MT %s %s -I%s %s -o %s" + snprintf(buf, sizeof(buf), "%s -MMD \"%s\" -MT \"%s\" \"%s\"" +" -I\"%s\" \"%s\" -o \"%s\"" " -DEFL_VERSION_MAJOR=%d -DEFL_VERSION_MINOR=%d" EDJE_CC_EFL_VERSION_SUPPORTED, buf2, depfile, file_out, file_in, inc ? inc : "./", def, clean_file, EINA_VERSION_MAJOR, EINA_VERSION_MINOR); else if (annotate) - snprintf(buf, sizeof(buf), "%s -annotate -a %s %s -I%s %s -o %s" + snprintf(buf, sizeof(buf), "%s -annotate -a \"%s\" \"%s\"" +" -I\"%s\" \"%s\" -o \"%s\"" " -DEFL_VERSION_MAJOR=%d -DEFL_VERSION_MINOR=%d" EDJE_CC_EFL_VERSION_SUPPORTED, buf2, watchfile ? watchfile : "/dev/null", file_in, inc ? inc : "./", def, clean_file, EINA_VERSION_MAJOR, EINA_VERSION_MINOR); else - snprintf(buf, sizeof(buf), "%s -a %s %s -I%s %s -o %s" + snprintf(buf, sizeof(buf), "%s -a \"%s\" \"%s\" -I\"%s\" \"%s\"" +" -o \"%s\"" " -DEFL_VERSION_MAJOR=%d -DEFL_VERSION_MINOR=%d" EDJE_CC_EFL_VERSION_SUPPORTED, buf2, watchfile ? watchfile : "/dev/null", file_in, --
[EGIT] [core/efl] master 01/01: edje_cc_parse: Fix to insert missing double quotation marks
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5ae6e1db2f7f181039b05cbb562573321f419a8e commit 5ae6e1db2f7f181039b05cbb562573321f419a8e Author: Jaehyun Cho Date: Mon Jan 2 19:59:06 2017 +0900 edje_cc_parse: Fix to insert missing double quotation marks --- src/bin/edje/edje_cc_parse.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bin/edje/edje_cc_parse.c b/src/bin/edje/edje_cc_parse.c index ed55bf3..f0bd003 100644 --- a/src/bin/edje/edje_cc_parse.c +++ b/src/bin/edje/edje_cc_parse.c @@ -1069,7 +1069,7 @@ compile(void) inc = ecore_file_dir_get(file_in); if (depfile) - snprintf(buf, sizeof(buf), "%s -MMD \"%s\" -MT \"%s\" \"%s\"" + snprintf(buf, sizeof(buf), "\"%s\" -MMD \"%s\" -MT \"%s\" \"%s\"" " -I\"%s\" \"%s\" -o \"%s\"" " -DEFL_VERSION_MAJOR=%d -DEFL_VERSION_MINOR=%d" EDJE_CC_EFL_VERSION_SUPPORTED, @@ -1077,7 +1077,7 @@ compile(void) inc ? inc : "./", def, clean_file, EINA_VERSION_MAJOR, EINA_VERSION_MINOR); else if (annotate) - snprintf(buf, sizeof(buf), "%s -annotate -a \"%s\" \"%s\"" + snprintf(buf, sizeof(buf), "\"%s\" -annotate -a \"%s\" \"%s\"" " -I\"%s\" \"%s\" -o \"%s\"" " -DEFL_VERSION_MAJOR=%d -DEFL_VERSION_MINOR=%d" EDJE_CC_EFL_VERSION_SUPPORTED, @@ -1085,8 +1085,8 @@ compile(void) inc ? inc : "./", def, clean_file, EINA_VERSION_MAJOR, EINA_VERSION_MINOR); else - snprintf(buf, sizeof(buf), "%s -a \"%s\" \"%s\" -I\"%s\" \"%s\"" -" -o \"%s\"" + snprintf(buf, sizeof(buf), "\"%s\" -a \"%s\" \"%s\" -I\"%s\"" +" \"%s\" -o \"%s\"" " -DEFL_VERSION_MAJOR=%d -DEFL_VERSION_MINOR=%d" EDJE_CC_EFL_VERSION_SUPPORTED, buf2, watchfile ? watchfile : "/dev/null", file_in, --
Re: [E-devel] EDD 2017 location discussion - Vote opened
Stefan I'll be on irc later to chat about the below. Will you be online as well? Sent from my iPhone > On 02 Jan 2017, at 10:00, Stefan Schmidt wrote: > > Hello. > >> On 06/12/16 23:06, Stefan Schmidt wrote: >> Hello. >> >>> On 25/11/16 11:55, Stefan Schmidt wrote: >>> Hello. >>> On 14/11/16 10:11, Stefan Schmidt wrote: Hello. > On 04/11/16 11:48, Stefan Schmidt wrote: > Hello. > > After gettign more feedback and proposals here I put out a vote: > > https://phab.enlightenment.org/V27 > > Let us know what makes sense to you! We got feedback and preferences form 15 people so far which is great and already gives a direction. (e.g. Paris, Toulouse and Edinburgh are leading with Malta directly behind) This community is bigger than 15 people though. :) If you have not voted yet please do so to help us understand where we should focus on. >>> >>> We got to 22 votes now. I still miss some of the usual suspects though. :) >>> >>> Malta and Toulouse are leading with 14 votes so far, followed by Paris >>> with 13, Edinburgh with 12 and USA with 11. >> >> 25 votes now and the top 3-4 seems to stay the same. >> >> If you have not voted yet, but still want to, you have until the end of >> the year before I close the vote (31.12). Afterwards we will look at the >> top votes and try to find the location which will work best for us. >> You can expect another vote for dates in January or February. > > No more votes came in after this mail and I closed the poll with 25 > votes today. > > Results are as follows: > 16 votes Malta > 16 votes Toulouse > 15 votes Paris > 14 votes Edinburgh > 12 votes USA > 10 votes London > 09 votes Tel Aviv > 09 votes Seoul > > Based on this we will talk with Jonathan (Malta) and Nicolas (Toulouse) > about their proposals and see which one would work best for us. > > regards > Stefan Schmidt > > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] EDD 2017 location discussion - Vote opened
Hello. On 02/01/17 13:51, Jonathan Aquilina wrote: > Stefan I'll be on irc later to chat about the below. Will you be online as > well? Yes regards Stefan Schmidt -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: evas loader - don't stat NULL file paths
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2cb621fe4ab852a586c07ce3c5dbae0ee3556afa commit 2cb621fe4ab852a586c07ce3c5dbae0ee3556afa Author: Carsten Haitzler (Rasterman) Date: Mon Jan 2 22:58:24 2017 +0900 evas loader - don't stat NULL file paths something i found valgrinding my recent async improvments. statting null path. fix it. --- src/lib/evas/common/evas_image_load.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/common/evas_image_load.c b/src/lib/evas/common/evas_image_load.c index f51ab01..8e59bdd 100644 --- a/src/lib/evas/common/evas_image_load.c +++ b/src/lib/evas/common/evas_image_load.c @@ -457,7 +457,8 @@ end: } if (!ie->f) return EVAS_LOAD_ERROR_DOES_NOT_EXIST; - if (stat(ie->file, &st) == 0) _timestamp_build(&(ie->tstamp), &st); + if ((ie->file) && (stat(ie->file, &st) == 0)) + _timestamp_build(&(ie->tstamp), &st); memset(&property, 0, sizeof (property)); property.w = ie->w; --
[EGIT] [website/git] master 01/01: MINOR: conf: Follow file move as with git log --follow
beber pushed a commit to branch master. http://git.enlightenment.org/website/git.git/commit/?id=56e72bbbd094163ba5b37987bf46602151d15bfa commit 56e72bbbd094163ba5b37987bf46602151d15bfa Author: Bertrand Jacquin Date: Mon Jan 2 14:15:00 2017 + MINOR: conf: Follow file move as with git log --follow --- cgitrc | 1 + 1 file changed, 1 insertion(+) diff --git a/cgitrc b/cgitrc index 5d66682..2cc7369 100644 --- a/cgitrc +++ b/cgitrc @@ -17,6 +17,7 @@ enable-index-links=0 enable-index-owner=1 # See merges in log enable-commit-graph=1 +enable-follow-links=1 enable-log-filecount=1 enable-log-linecount=1 enable-tree-linenumbers=1 --
[EGIT] [core/enlightenment] master 01/01: ibar - fix seg with ibar icon task menus are up while desktop files change
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c0f6594c96ada64e5f28c347c479288e4942f935 commit c0f6594c96ada64e5f28c347c479288e4942f935 Author: Carsten Haitzler (Rasterman) Date: Mon Jan 2 23:26:14 2017 +0900 ibar - fix seg with ibar icon task menus are up while desktop files change segv if u go do make installs that install desktop files causing efreet to recheck desktop files causing e to reset desktop files causing ibar to refill icons but this causea a segv if a hover menu of windows for that icon are up at the same time. this fixes that. @fix --- src/modules/ibar/e_mod_main.c | 11 ++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index 1b949de..5579744 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -140,6 +140,8 @@ static void _ibar_exec_new_client_show(void *data, Evas *e EINA_UNUSED, static Eina_Bool_ibar_cb_out_hide_delay(void *data); static void _ibar_icon_menu_show(IBar_Icon *ic, Eina_Bool grab); static void _ibar_icon_menu_hide(IBar_Icon *ic, Eina_Bool grab); +static void _ibar_cb_icon_menu_img_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED); +static void _ibar_cb_icon_frame_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED); static E_Config_DD *conf_edd = NULL; static E_Config_DD *conf_item_edd = NULL; @@ -872,7 +874,14 @@ _ibar_icon_free(IBar_Icon *ic) E_Exec_Instance *inst; Evas_Object *o; - EINA_LIST_FREE(ic->client_objs, o) evas_object_del(o); + EINA_LIST_FREE(ic->client_objs, o) + { +evas_object_event_callback_del(o, EVAS_CALLBACK_DEL, + _ibar_cb_icon_frame_del); +evas_object_event_callback_del(o, EVAS_CALLBACK_DEL, + _ibar_cb_icon_menu_img_del); +evas_object_del(o); + } if (ic->ibar->menu_icon == ic) ic->ibar->menu_icon = NULL; if (ic->ibar->ic_drop_before == ic) ic->ibar->ic_drop_before = NULL; if (ic->menu) e_object_data_set(E_OBJECT(ic->menu), NULL); --
[EGIT] [core/efl] master 02/04: eolian: partially clean up implement filling logic
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0b2c070b0634bdf5e171423c6fb56fd671ddcc85 commit 0b2c070b0634bdf5e171423c6fb56fd671ddcc85 Author: Daniel Kolesa Date: Mon Jan 2 14:35:17 2017 +0100 eolian: partially clean up implement filling logic --- src/lib/eolian/database_fill.c | 97 +++--- src/lib/eolian/eo_parser.c | 7 +-- 2 files changed, 47 insertions(+), 57 deletions(-) diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c index 14c79cb..743419d 100644 --- a/src/lib/eolian/database_fill.c +++ b/src/lib/eolian/database_fill.c @@ -7,44 +7,52 @@ static Eina_Bool _func_error(Eolian_Class *cl, Eolian_Implement *impl) { - fprintf(stderr, "eolian:%s:%d:%d: '%s%s' not known in class '%s'\n", + fprintf(stderr, "eolian:%s:%d:%d: '%s' not known in class '%s'\n", impl->base.file, impl->base.line, impl->base.column, impl->full_name, - (impl->is_prop_get ? ".get" : (impl->is_prop_set ? ".set" : "")), eolian_class_name_get(cl)); return EINA_FALSE; } static Eina_Bool -_get_impl_func(Eolian_Class *cl, Eolian_Implement *impl, +_get_impl_func(Eolian_Class *cl EINA_UNUSED, Eolian_Implement *impl, Eolian_Function_Type ftype, Eolian_Function **foo_id) { - size_t cllen = strlen(cl->full_name); size_t imlen = strlen(impl->full_name); - const char *imstr = impl->full_name; - *foo_id = NULL; - if (imstr[0] == '.') - ++imstr; - else if ((imlen > (cllen + 1)) && (*(imstr + cllen) == '.') -&& !strncmp(imstr, cl->full_name, cllen)) - imstr += cllen + 1; - else - return EINA_TRUE; - if (strchr(imstr, '.')) - return EINA_TRUE; - impl->klass = cl; - *foo_id = (Eolian_Function*)eolian_class_function_get_by_name(cl, imstr, - ftype); - impl->foo_id = *foo_id; - return !!*foo_id; + char *clbuf = alloca(imlen + 1); + memcpy(clbuf, impl->full_name, imlen + 1); + + char *ldot = strrchr(clbuf, '.'); + if (!ldot) + return EINA_FALSE; /* unreachable in practice, for static analysis */ + + *ldot = '\0'; /* split between class name and func name */ + const char *clname = clbuf; + const char *fnname = ldot + 1; + + const Eolian_Class *tcl = eolian_class_get_by_name(clname); + if (!tcl) + return EINA_FALSE; + + impl->klass = tcl; + + const Eolian_Function *fid = eolian_class_function_get_by_name(tcl, fnname, ftype); + if (!fid) + return EINA_FALSE; + + *foo_id = (Eolian_Function *)fid; + impl->foo_id = fid; + + return EINA_TRUE; } static void -_write_impl(Eolian_Function *fid, Eolian_Implement *impl) +_write_impl(Eolian_Function *fid, Eolian_Function_Type ftype, +Eolian_Implement *impl) { - if (impl->is_prop_set) - fid->set_impl = impl; - else if (impl->is_prop_get) + if (ftype == EOLIAN_PROP_GET) fid->get_impl = impl; + else if (ftype == EOLIAN_PROP_SET) + fid->set_impl = impl; else fid->get_impl = fid->set_impl = impl; } @@ -52,12 +60,12 @@ _write_impl(Eolian_Function *fid, Eolian_Implement *impl) static Eina_Bool _db_fill_implement(Eolian_Class *cl, Eolian_Implement *impl) { - const char *impl_name = impl->full_name; - Eolian_Function *foo_id; Eolian_Function_Type ftype = EOLIAN_UNRESOLVED; - if (impl->is_prop_get) + if (impl->is_prop_get && impl->is_prop_set) + ftype = EOLIAN_PROPERTY; + else if (impl->is_prop_get) ftype = EOLIAN_PROP_GET; else if (impl->is_prop_set) ftype = EOLIAN_PROP_SET; @@ -66,47 +74,28 @@ _db_fill_implement(Eolian_Class *cl, Eolian_Implement *impl) { if (!_get_impl_func(cl, impl, ftype, &foo_id)) return _func_error(cl, impl); -if (!foo_id) - goto pasttags; -if (impl->is_prop_set) - foo_id->set_auto = EINA_TRUE; -else - foo_id->get_auto = EINA_TRUE; - -_write_impl(foo_id, impl); +foo_id->get_auto = impl->is_prop_get; +foo_id->set_auto = impl->is_prop_set; +_write_impl(foo_id, ftype, impl); } else if (impl->is_empty) { if (!_get_impl_func(cl, impl, ftype, &foo_id)) return _func_error(cl, impl); -if (!foo_id) - goto pasttags; -if (impl->is_prop_set) - foo_id->set_empty = EINA_TRUE; -else - foo_id->get_empty = EINA_TRUE; - -_write_impl(foo_id, impl); +foo_id->get_empty = impl->is_prop_get; +foo_id->set_empty = impl->is_prop_set; +_write_impl(foo_id, ftype, impl); } else if (!_get_impl_func(cl, impl, ftype, &foo_id)) return _func_error(cl, impl); if (foo_id && foo_id->klass == cl && eolian_function_is_virtual_pure(foo_id, ftype)) { -fprintf(stderr, "eolian:%s:%d:%d: impl of pure virtual '%s%s'\n", -impl->base.file, impl->
[EGIT] [core/efl] master 03/04: eolian: no need to fill func in eolian_implement_function_get
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bd21080c8224f001742251e93c7ebd65d1c8224a commit bd21080c8224f001742251e93c7ebd65d1c8224a Author: Daniel Kolesa Date: Mon Jan 2 15:00:38 2017 +0100 eolian: no need to fill func in eolian_implement_function_get All implements are now filled in the previous stage. --- src/lib/eolian/database_implement_api.c | 53 +++-- 1 file changed, 11 insertions(+), 42 deletions(-) diff --git a/src/lib/eolian/database_implement_api.c b/src/lib/eolian/database_implement_api.c index 172e678..dfaa686 100644 --- a/src/lib/eolian/database_implement_api.c +++ b/src/lib/eolian/database_implement_api.c @@ -26,53 +26,22 @@ eolian_implement_function_get(const Eolian_Implement *impl, { EINA_SAFETY_ON_NULL_RETURN_VAL(impl, NULL); - if (impl->foo_id) - { -if (!func_type) - return impl->foo_id; + if (!impl->foo_id) + return NULL; /* normally unreachable */ -if (impl->is_prop_get && impl->is_prop_set) - *func_type = EOLIAN_PROPERTY; -else if (impl->is_prop_get) - *func_type = EOLIAN_PROP_GET; -else if (impl->is_prop_set) - *func_type = EOLIAN_PROP_SET; -else - *func_type = eolian_function_type_get(impl->foo_id); - -return impl->foo_id; - } - - const Eolian_Class *klass = eolian_implement_class_get(impl); - if (!klass) - return NULL; - - const char *func_name = impl->full_name + strlen(klass->full_name) + 1; - - Eolian_Function_Type tp = EOLIAN_UNRESOLVED; + if (!func_type) + return impl->foo_id; if (impl->is_prop_get && impl->is_prop_set) - tp = EOLIAN_PROPERTY; - if (impl->is_prop_get) - tp = EOLIAN_PROP_GET; + *func_type = EOLIAN_PROPERTY; + else if (impl->is_prop_get) + *func_type = EOLIAN_PROP_GET; else if (impl->is_prop_set) - tp = EOLIAN_PROP_SET; - - const Eolian_Function *fid = eolian_class_function_get_by_name(klass, - func_name, - tp); - - if (func_type) - { -if (tp == EOLIAN_UNRESOLVED) - *func_type = eolian_function_type_get(fid); -else - *func_type = tp; - } - - ((Eolian_Implement*)impl)->foo_id = fid; + *func_type = EOLIAN_PROP_SET; + else + *func_type = eolian_function_type_get(impl->foo_id); - return fid; + return impl->foo_id; } EAPI Eina_Bool --
[EGIT] [core/efl] master 01/04: eolian: require specification of either get or set in property impls
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=692d445dcf41888e0fe7efdf43d03560c160f482 commit 692d445dcf41888e0fe7efdf43d03560c160f482 Author: Daniel Kolesa Date: Mon Jan 2 14:02:44 2017 +0100 eolian: require specification of either get or set in property impls --- src/lib/eolian/eo_parser.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index a441d76..d864791 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -1593,6 +1593,8 @@ propbeg: goto propend; } propend: +if (!has_get && !has_set) + eo_lexer_syntax_error(ls, "property implements need at least get or set specified"); check_next(ls, '}'); } else --
[EGIT] [core/efl] master 04/04: eolian: fill ctor class early on
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3dc9d282795e1269d9b3b8b16f8bb86e75dbb970 commit 3dc9d282795e1269d9b3b8b16f8bb86e75dbb970 Author: Daniel Kolesa Date: Mon Jan 2 15:28:26 2017 +0100 eolian: fill ctor class early on --- src/lib/eolian/database_constructor_api.c | 3 +-- src/lib/eolian/database_fill.c| 35 +++ src/lib/eolian/database_implement_api.c | 3 +-- src/lib/eolian/eolian_database.c | 13 src/lib/eolian/eolian_database.h | 1 - 5 files changed, 37 insertions(+), 18 deletions(-) diff --git a/src/lib/eolian/database_constructor_api.c b/src/lib/eolian/database_constructor_api.c index 6eedefd..90b1d47 100644 --- a/src/lib/eolian/database_constructor_api.c +++ b/src/lib/eolian/database_constructor_api.c @@ -16,8 +16,7 @@ EAPI const Eolian_Class * eolian_constructor_class_get(const Eolian_Constructor *ctor) { EINA_SAFETY_ON_NULL_RETURN_VAL(ctor, NULL); - Eolian_Constructor *mctor = (Eolian_Constructor *)ctor; - return database_object_class_fill(ctor->full_name, &mctor->klass); + return ctor->klass; } EAPI const Eolian_Function * diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c index 743419d..d380cc7 100644 --- a/src/lib/eolian/database_fill.c +++ b/src/lib/eolian/database_fill.c @@ -204,11 +204,46 @@ _db_fill_implements(Eolian_Class *cl) } static Eina_Bool +_db_fill_ctors(Eolian_Class *cl) +{ + Eolian_Constructor *ctor; + Eina_List *l; + + EINA_LIST_FOREACH(cl->constructors, l, ctor) + { +const char *ldot = strrchr(ctor->full_name, '.'); +if (!ldot) + return EINA_FALSE; +char *cnbuf = alloca(ldot - ctor->full_name + 1); +memcpy(cnbuf, ctor->full_name, ldot - ctor->full_name); +cnbuf[ldot - ctor->full_name] = '\0'; +const Eolian_Class *tcl = NULL; +/* referencing self */ +if (!strcmp(cnbuf, cl->full_name)) + tcl = cl; +else + tcl = eolian_class_get_by_name(cnbuf); +if (!tcl) + { + fprintf(stderr, "eolian:%s:%d:%d: class not found for ctor '%s'\n", +ctor->base.file, ctor->base.line, ctor->base.column, ctor->full_name); + return EINA_FALSE; + } +ctor->klass = tcl; + } + + return EINA_TRUE; +} + +static Eina_Bool _db_fill_class(Eolian_Class *cl) { if (!_db_fill_implements(cl)) return EINA_FALSE; + if (!_db_fill_ctors(cl)) + return EINA_FALSE; + eina_hash_set(_classes, cl->full_name, cl); eina_hash_set(_classesf, cl->base.file, cl); diff --git a/src/lib/eolian/database_implement_api.c b/src/lib/eolian/database_implement_api.c index dfaa686..9ab6a83 100644 --- a/src/lib/eolian/database_implement_api.c +++ b/src/lib/eolian/database_implement_api.c @@ -16,8 +16,7 @@ EAPI const Eolian_Class * eolian_implement_class_get(const Eolian_Implement *impl) { EINA_SAFETY_ON_NULL_RETURN_VAL(impl, NULL); - Eolian_Implement *mimpl = (Eolian_Implement *)impl; - return database_object_class_fill(impl->full_name, &mimpl->klass); + return impl->klass; } EAPI const Eolian_Function * diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 2298b80..6cf71c5 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -655,19 +655,6 @@ database_class_to_filename(const char *cname) return ret; } -const Eolian_Class * -database_object_class_fill(const char *class_name, const Eolian_Class **cl) -{ - if (*cl) return *cl; - char *name = strdup(class_name); - char *ldot = strrchr(name + 1, '.'); - if (ldot) *ldot = '\0'; - const Eolian_Class *found = eolian_class_get_by_name(name); - *cl = found; - free(name); - return found; -} - static Eina_Bool _eolian_file_parse_nodep(const char *filepath) { diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 479b357..783558e 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -288,7 +288,6 @@ int database_shutdown(void); char *database_class_to_filename(const char *cname); Eina_Bool database_validate(); -const Eolian_Class *database_object_class_fill(const char *class_name, const Eolian_Class **cl); void database_decl_add(Eina_Stringshare *name, Eolian_Declaration_Type type, Eina_Stringshare *file, void *ptr); --
[EGIT] [tools/edi] master 01/01: elm_code: update for latest elm init
ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=1b2ee9a3728ce1bf68976e7a7adfdbd8bc48cdbe commit 1b2ee9a3728ce1bf68976e7a7adfdbd8bc48cdbe Author: Andy Williams Date: Mon Jan 2 14:39:58 2017 + elm_code: update for latest elm init --- src/bin/edi_main.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/bin/edi_main.c b/src/bin/edi_main.c index d6f9503..23f2fd3 100644 --- a/src/bin/edi_main.c +++ b/src/bin/edi_main.c @@ -1193,7 +1193,6 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) edi_init(); if (!_edi_log_init()) goto end; - elm_code_init(); args = ecore_getopt_parse(&optdesc, values, argc, argv); if (args < 0) @@ -1235,7 +1234,6 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) end: _edi_log_shutdown(); - elm_code_shutdown(); elm_shutdown(); edi_shutdown(); --
[EGIT] [core/efl] master 01/01: eolian: disallow duplicate implements
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=45e6a3e86aa1fd7c89cecd975bcf8125cd69d87d commit 45e6a3e86aa1fd7c89cecd975bcf8125cd69d87d Author: Daniel Kolesa Date: Mon Jan 2 16:09:04 2017 +0100 eolian: disallow duplicate implements --- src/lib/elementary/efl_ui_text.eo | 6 ++ src/lib/elementary/efl_ui_win.eo | 3 +-- src/lib/elementary/elm_entry.eo | 6 ++ src/lib/eolian/database_fill.c| 16 ++-- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/lib/elementary/efl_ui_text.eo b/src/lib/elementary/efl_ui_text.eo index 06c8f29..4ab6700 100644 --- a/src/lib/elementary/efl_ui_text.eo +++ b/src/lib/elementary/efl_ui_text.eo @@ -416,11 +416,10 @@ class Efl.Ui.Text (Elm.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable, Elm.Widget.focus_next_manager_is; Elm.Layout.theme_enable; Elm.Layout.sizing_eval; - Elm.Layout.text { get; } + Elm.Layout.text { get; set; } Elm.Layout.signal_callback_add; Elm.Layout.signal_callback_del; Elm.Layout.signal_emit; - Elm.Layout.text { set; } Elm.Layout.content_aliases { get; } Elm.Interface_Scrollable.policy { set; } Elm.Interface_Scrollable.bounce_allow { set; } @@ -438,11 +437,10 @@ class Efl.Ui.Text (Elm.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable, Elm.Interface.Atspi.Text.offset_at_point { get; } Elm.Interface.Atspi.Text.bounded_ranges { get; } Elm.Interface.Atspi.Text.range_extents { get; } - Elm.Interface.Atspi.Text.selection { get; } + Elm.Interface.Atspi.Text.selection { get; set; } Elm.Interface.Atspi.Text.selections_count { get; } Elm.Interface.Atspi.Text.selection_add; Elm.Interface.Atspi.Text.selection_remove; - Elm.Interface.Atspi.Text.selection { set; } Elm.Interface.Atspi.Text.Editable.content { set; } Elm.Interface.Atspi.Text.Editable.insert; Elm.Interface.Atspi.Text.Editable.copy; diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo index b401441..007aeb5 100644 --- a/src/lib/elementary/efl_ui_win.eo +++ b/src/lib/elementary/efl_ui_win.eo @@ -963,8 +963,7 @@ class Efl.Ui.Win (Elm.Widget, Efl.Canvas, Elm.Interface.Atspi.Window, Efl.Canvas.object_top_at_xy_get; Efl.Canvas.objects_in_rectangle_get; Efl.Canvas.object_top_in_rectangle_get; - Efl.Container.content { set; } - Efl.Container.content { get; } + Efl.Container.content { get; set; } Efl.Container.content_unset; Efl.Part.part; } diff --git a/src/lib/elementary/elm_entry.eo b/src/lib/elementary/elm_entry.eo index 95f5bc7..77c3b16 100644 --- a/src/lib/elementary/elm_entry.eo +++ b/src/lib/elementary/elm_entry.eo @@ -957,11 +957,10 @@ class Elm.Entry (Elm.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable, Elm.Widget.focus_next_manager_is; Elm.Layout.theme_enable; Elm.Layout.sizing_eval; - Elm.Layout.text { get; } + Elm.Layout.text { get; set; } Elm.Layout.signal_callback_add; Elm.Layout.signal_callback_del; Elm.Layout.signal_emit; - Elm.Layout.text { set; } Elm.Layout.content_aliases { get; } Elm.Interface_Scrollable.policy { set; } Elm.Interface_Scrollable.bounce_allow { set; } @@ -979,11 +978,10 @@ class Elm.Entry (Elm.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable, Elm.Interface.Atspi.Text.offset_at_point { get; } Elm.Interface.Atspi.Text.bounded_ranges { get; } Elm.Interface.Atspi.Text.range_extents { get; } - Elm.Interface.Atspi.Text.selection { get; } + Elm.Interface.Atspi.Text.selection { get; set; } Elm.Interface.Atspi.Text.selections_count { get; } Elm.Interface.Atspi.Text.selection_add; Elm.Interface.Atspi.Text.selection_remove; - Elm.Interface.Atspi.Text.selection { set; } Elm.Interface.Atspi.Text.Editable.content { set; } Elm.Interface.Atspi.Text.Editable.insert; Elm.Interface.Atspi.Text.Editable.copy; diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c index d380cc7..6ffa93b 100644 --- a/src/lib/eolian/database_fill.c +++ b/src/lib/eolian/database_fill.c @@ -190,9 +190,21 @@ _db_fill_implements(Eolian_Class *cl) Eolian_Function *foo_id; Eina_List *l; + Eina_Hash *th = eina_hash_string_small_new(NULL); EINA_LIST_FOREACH(cl->implements, l, impl) - if (!_db_fill_implement(cl, impl)) - return EINA_FALSE; + { +if (eina_hash_find(th, impl->full_name)) + { + fprintf(stderr, "eolian:%s:%d:%d: duplicate implement '%s'\n", + impl->base.file, impl->base.line, impl->base.column, + impl->full_name); + return EINA_FALSE; + } +if (!_db_fill_implement(cl, impl)) + return EINA_FALSE; +eina_hash_add(th, impl->full_name, impl->full_name); + } +
[EGIT] [core/efl] master 01/01: eolian: correctly set the empty/auto flags in implements
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4fddc11e6433eb90fcb852d3b6cad9fc67febbba commit 4fddc11e6433eb90fcb852d3b6cad9fc67febbba Author: Daniel Kolesa Date: Mon Jan 2 16:25:26 2017 +0100 eolian: correctly set the empty/auto flags in implements --- src/lib/eolian/database_fill.c | 66 ++ 1 file changed, 41 insertions(+), 25 deletions(-) diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c index 6ffa93b..ee9539e 100644 --- a/src/lib/eolian/database_fill.c +++ b/src/lib/eolian/database_fill.c @@ -4,6 +4,14 @@ #include "eo_parser.h" +const Eolian_Class * +_get_impl_class(const Eolian_Class *cl, const char *cln) +{ + if (!strcmp(cl->full_name, cln)) + return cl; + return eolian_class_get_by_name(cln); +} + static Eina_Bool _func_error(Eolian_Class *cl, Eolian_Implement *impl) { @@ -14,7 +22,7 @@ _func_error(Eolian_Class *cl, Eolian_Implement *impl) } static Eina_Bool -_get_impl_func(Eolian_Class *cl EINA_UNUSED, Eolian_Implement *impl, +_get_impl_func(Eolian_Class *cl, Eolian_Implement *impl, Eolian_Function_Type ftype, Eolian_Function **foo_id) { size_t imlen = strlen(impl->full_name); @@ -29,7 +37,7 @@ _get_impl_func(Eolian_Class *cl EINA_UNUSED, Eolian_Implement *impl, const char *clname = clbuf; const char *fnname = ldot + 1; - const Eolian_Class *tcl = eolian_class_get_by_name(clname); + const Eolian_Class *tcl = _get_impl_class(cl, clname); if (!tcl) return EINA_FALSE; @@ -45,17 +53,6 @@ _get_impl_func(Eolian_Class *cl EINA_UNUSED, Eolian_Implement *impl, return EINA_TRUE; } -static void -_write_impl(Eolian_Function *fid, Eolian_Function_Type ftype, -Eolian_Implement *impl) -{ - if (ftype == EOLIAN_PROP_GET) - fid->get_impl = impl; - else if (ftype == EOLIAN_PROP_SET) - fid->set_impl = impl; - else - fid->get_impl = fid->set_impl = impl; -} static Eina_Bool _db_fill_implement(Eolian_Class *cl, Eolian_Implement *impl) @@ -74,17 +71,41 @@ _db_fill_implement(Eolian_Class *cl, Eolian_Implement *impl) { if (!_get_impl_func(cl, impl, ftype, &foo_id)) return _func_error(cl, impl); -foo_id->get_auto = impl->is_prop_get; -foo_id->set_auto = impl->is_prop_set; -_write_impl(foo_id, ftype, impl); +if (ftype == EOLIAN_PROP_GET) + { + foo_id->get_impl = impl; + foo_id->get_auto = EINA_TRUE; + } +else if (ftype == EOLIAN_PROP_SET) + { + foo_id->set_impl = impl; + foo_id->set_auto = EINA_TRUE; + } +else + { + foo_id->get_impl = foo_id->set_impl = impl; + foo_id->get_auto = foo_id->set_auto = EINA_TRUE; + } } else if (impl->is_empty) { if (!_get_impl_func(cl, impl, ftype, &foo_id)) return _func_error(cl, impl); -foo_id->get_empty = impl->is_prop_get; -foo_id->set_empty = impl->is_prop_set; -_write_impl(foo_id, ftype, impl); +if (ftype == EOLIAN_PROP_GET) + { + foo_id->get_impl = impl; + foo_id->get_empty = EINA_TRUE; + } +else if (ftype == EOLIAN_PROP_SET) + { + foo_id->set_impl = impl; + foo_id->set_empty = EINA_TRUE; + } +else + { + foo_id->get_impl = foo_id->set_impl = impl; + foo_id->get_empty = foo_id->set_empty = EINA_TRUE; + } } else if (!_get_impl_func(cl, impl, ftype, &foo_id)) return _func_error(cl, impl); @@ -229,12 +250,7 @@ _db_fill_ctors(Eolian_Class *cl) char *cnbuf = alloca(ldot - ctor->full_name + 1); memcpy(cnbuf, ctor->full_name, ldot - ctor->full_name); cnbuf[ldot - ctor->full_name] = '\0'; -const Eolian_Class *tcl = NULL; -/* referencing self */ -if (!strcmp(cnbuf, cl->full_name)) - tcl = cl; -else - tcl = eolian_class_get_by_name(cnbuf); +const Eolian_Class *tcl = _get_impl_class(cl, cnbuf); if (!tcl) { fprintf(stderr, "eolian:%s:%d:%d: class not found for ctor '%s'\n", --
Re: [E-devel] [EGIT] [core/efl] master 05/06: Evas GL:Bind texture to correct one.
Hi, I am not sure that "Tizen 3.0" is a valid test plan for our purposes. If a fix is submitted upstream, I think it makes sense to also submit a corresponding test to verify that the issue is solved and does not recur in the future. Thoughts? On Mon, Jan 2, 2017 at 2:44 AM Minkyoung Kim wrote: > jpeg pushed a commit to branch master. > > > http://git.enlightenment.org/core/efl.git/commit/?id=40e9da0101e2c9afb6f823c7b21c02a011cc5300 > > commit 40e9da0101e2c9afb6f823c7b21c02a011cc5300 > Author: Minkyoung Kim > Date: Mon Jan 2 15:29:48 2017 +0900 > > Evas GL:Bind texture to correct one. > > Summary: > If user bind textureA and want to use it continuously, do not call > glBindTexture(textureA) again. > But expect that textureA will be binding. > So EvasGL sould not change binded texture silently. > Restore texture to previous bound one after allocating new texture. > And when destroy texture, reset texture to 0 if it is current bound > texture. > > Test Plan: Tizen 3.0 > > Reviewers: wonsik, dkdk, cedric, jpeg > > Reviewed By: jpeg > > Differential Revision: https://phab.enlightenment.org/D4524 > --- > src/modules/evas/engines/gl_common/evas_gl_core.c | 9 - > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/src/modules/evas/engines/gl_common/evas_gl_core.c > b/src/modules/evas/engines/gl_common/evas_gl_core.c > index 14d17f6..8292b5c 100644 > --- a/src/modules/evas/engines/gl_common/evas_gl_core.c > +++ b/src/modules/evas/engines/gl_common/evas_gl_core.c > @@ -234,19 +234,26 @@ _texture_allocate_2d(GLuint tex, GLint ifmt, GLenum > fmt, GLenum type, int w, int > { > //if (!(*tex)) > // glGenTextures(1, tex); > + GLint curr_tex = 0; > + glGetIntegerv(GL_TEXTURE_BINDING_2D, &curr_tex); > + > glBindTexture(GL_TEXTURE_2D, tex); > glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); > glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); > glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); > glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); > glTexImage2D(GL_TEXTURE_2D, 0, ifmt, w, h, 0, fmt, type, NULL); > - glBindTexture(GL_TEXTURE_2D, 0); > + glBindTexture(GL_TEXTURE_2D, (GLuint)curr_tex); > } > > // Destroy Texture > static void > _texture_destroy(GLuint *tex) > { > + GLint curr_tex = 0; > + glGetIntegerv(GL_TEXTURE_BINDING_2D, &curr_tex); > + > + if ((GLuint)curr_tex == *tex) glBindTexture(GL_TEXTURE_2D, 0); > if (*tex) > { > glDeleteTextures(1, tex); > > -- > > > -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: elementary_config: make compare of web_backend more secure
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a56a957235ea897fb03cbccc747e7ae9c494678f commit a56a957235ea897fb03cbccc747e7ae9c494678f Author: Marcel Hollerbach Date: Mon Jan 2 17:18:31 2017 +0100 elementary_config: make compare of web_backend more secure web_backend can get NULL when there is a error with the entry. Make sure the pointers are different, or they are not NULL and the string contents are different. --- src/bin/elementary/config.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/elementary/config.c b/src/bin/elementary/config.c index 208057f..7fbad41 100644 --- a/src/bin/elementary/config.c +++ b/src/bin/elementary/config.c @@ -4346,7 +4346,8 @@ elm_main(intargc, web_backend = elm_object_text_get(web_backend_entry); fprintf(stderr, "[%s] vs [%s]\n", web_backend, web_backend_set); -if (strcmp(web_backend, web_backend_set)) +if (web_backend_set != web_backend || + (web_backend && web_backend_set && !!strcmp(web_backend, web_backend_set))) { elm_config_web_backend_set(web_backend); fprintf(stderr, "web backend set to : [%s]\n", elm_config_web_backend_get()); --
Re: [E-devel] Problem with new edje seatX signals
On Fri, Dec 30, 2016 at 10:20 AM, Carsten Haitzler wrote: > On Fri, 30 Dec 2016 09:09:26 -0200 Gustavo Sverzut Barbieri > said: > > > Hi all, > > > > Indeed, breaking backwards compat is a no go and we'll fix that. > > > > Is the proposed signal name okay with all? Or should we add an extra > > prefix, like "seat,Y,mouse,downX"? > > this seems good to me. :) > I agree -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Help me get Terminology 1.0 out!
Hi everyone! Happy new year! Let's start 2017 with a great new release of Terminology! I feel like the current code is quite stable but if there is one annoying bug you think I should fix before doing the release, now is the time to let me know! Also, please commit or send me any pending translations you have. My current plan is to prepare pre-release tarballs of Terminology 1.0 on Thursday or Friday, then test them over the weekend and make a release announcement early next week! If anything goes wrong, I'll delay the release accordingly. Best Regards -- Boris Faure Pointer Arithmetician signature.asc Description: Digital signature -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/edi] master 01/01: config: Store relative paths for open files
ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=14498afdaa0c4f4d7fa5b697357b39ce75f39fb6 commit 14498afdaa0c4f4d7fa5b697357b39ce75f39fb6 Author: Andy Williams Date: Mon Jan 2 21:19:55 2017 + config: Store relative paths for open files Avoid problems with moving project or having multiple copies of the same codebase! --- src/bin/edi_config.c | 11 ++- src/bin/edi_main.c| 11 +-- src/lib/edi_build_provider_make.c | 4 ++-- src/lib/edi_path.c| 2 +- src/lib/edi_path.h| 2 +- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/bin/edi_config.c b/src/bin/edi_config.c index b183f72..3ba0342 100644 --- a/src/bin/edi_config.c +++ b/src/bin/edi_config.c @@ -508,7 +508,13 @@ _edi_project_config_tab_add(const char *path, Eina_Bool windowed) } tab = malloc(sizeof(*tab)); - tab->path = eina_stringshare_add(path); + + // let's keep paths relative + if (!strncmp(path, edi_project_get(), strlen(edi_project_get( + tab->path = eina_stringshare_add(path + strlen(edi_project_get()) + 1); + else + tab->path = eina_stringshare_add(path); + tab->windowed = windowed; _edi_project_config->tabs = eina_list_append(_edi_project_config->tabs, tab); _edi_project_config_save_no_notify(); @@ -524,6 +530,9 @@ _edi_project_config_tab_remove(const char *path) { if (!strncmp(tab->path, path, strlen(tab->path))) break; +if (!strncmp(path, edi_project_get(), strlen(edi_project_get())) && +!strncmp(path + strlen(edi_project_get()) + 1, tab->path, strlen(tab->path))) + break; } _edi_project_config->tabs = eina_list_remove(_edi_project_config->tabs, tab); diff --git a/src/bin/edi_main.c b/src/bin/edi_main.c index 23f2fd3..ca44e8b 100644 --- a/src/bin/edi_main.c +++ b/src/bin/edi_main.c @@ -1004,15 +1004,22 @@ _edi_open_tabs() { Edi_Project_Config_Tab *tab; Eina_List *tabs, *list; + char *path; tabs = _edi_project_config->tabs; _edi_project_config->tabs = NULL; EINA_LIST_FOREACH(tabs, list, tab) { +if (!strncmp(tab->path, edi_project_get(), strlen(edi_project_get( + path = strdup(tab->path); +else + path = edi_path_append(edi_project_get(), tab->path); + if (tab->windowed) - edi_mainview_open_window_path(tab->path); + edi_mainview_open_window_path(eina_stringshare_add(path)); else - edi_mainview_open_path(tab->path); + edi_mainview_open_path(eina_stringshare_add(path)); +free(path); } EINA_LIST_FREE(tabs, tab) diff --git a/src/lib/edi_build_provider_make.c b/src/lib/edi_build_provider_make.c index 2c2e83a..9812bab 100644 --- a/src/lib/edi_build_provider_make.c +++ b/src/lib/edi_build_provider_make.c @@ -13,13 +13,13 @@ static Eina_Bool _relative_path_exists(const char *base, const char *relative) { - const char *path; + char *path; Eina_Bool ret; path = edi_path_append(base, relative); ret = ecore_file_exists(path); - free((void *)path); + free(path); return ret; } diff --git a/src/lib/edi_path.c b/src/lib/edi_path.c index 6e661f1..e0a3033 100644 --- a/src/lib/edi_path.c +++ b/src/lib/edi_path.c @@ -43,7 +43,7 @@ edi_path_options_create(const char *input) return ret; } -EAPI const char * +EAPI char * edi_path_append(const char *path, const char *file) { char *concat; diff --git a/src/lib/edi_path.h b/src/lib/edi_path.h index 21f1329..d82e416 100644 --- a/src/lib/edi_path.h +++ b/src/lib/edi_path.h @@ -49,7 +49,7 @@ EAPI Edi_Path_Options *edi_path_options_create(const char *input); * @return a newly allocated string that merges the items to a path using the * correct separator for the current platform. */ -EAPI const char *edi_path_append(const char *path, const char *file); +EAPI char *edi_path_append(const char *path, const char *file); /** * @} --
Re: [E-devel] Help me get Terminology 1.0 out!
Hi Boris, Le 02/01/2017 à 19:45, Boris Faure a écrit : > > Hi everyone! > > Happy new year! > > Let's start 2017 with a great new release of Terminology! > I feel like the current code is quite stable but if there is one > annoying bug you think I should fix before doing the release, now is the > time to let me know! > Also, please commit or send me any pending translations you have. > > My current plan is to prepare pre-release tarballs of Terminology 1.0 on > Thursday or Friday, then test them over the weekend and make a release > announcement early next week! If anything goes wrong, I'll delay the > release accordingly. I did a build and quick runtime test last week on the latest commit "change for v1.0.0". Seems ok with efl 1.18.4. Best regards, Romain > > Best Regards > > > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > > > > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [website/planet] master 01/01: MINOR: conf: Move morlenxus@ blog to https
beber pushed a commit to branch master. http://git.enlightenment.org/website/planet.git/commit/?id=9a23dafe30a5dd858372bd5f224a44db90c96f1c commit 9a23dafe30a5dd858372bd5f224a44db90c96f1c Author: Bertrand Jacquin Date: Mon Jan 2 23:11:45 2017 + MINOR: conf: Move morlenxus@ blog to https --- conf/config.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/config.ini b/conf/config.ini index d1bfefa..16943e2 100644 --- a/conf/config.ini +++ b/conf/config.ini @@ -84,7 +84,7 @@ face = yes user = mello name = ~Fábio Mello -[http://omicron.homeip.net/rss/blog.phtml] +[https://omicron.homeip.net/rss/blog.phtml] user = morlenxus name = ~Brian Miculcy face = yes --
Re: [E-devel] [EGIT] [core/efl] master 05/06: Evas GL:Bind texture to correct one.
On Mon, 02 Jan 2017 15:50:28 + Mike Blumenkrantz said: > Hi, > > I am not sure that "Tizen 3.0" is a valid test plan for our purposes. If a > fix is submitted upstream, I think it makes sense to also submit a > corresponding test to verify that the issue is solved and does not recur in > the future. i'm not so sure that "test plan" is worth paying attention to... BUT... "for every bug you fix with an @fix as it was an existing bug in a release, provide a test case to check for the bug so it doesn't come back" is what i think you are getting at. at this stage that'd raise the cost of doing bug fixes a LOT. i think we need to improve our testing harness first - e.g. a thread a few weeks back about this. we need a far simpler way to put tests together. we also need good "template" harnesses - e.g. a raw evas canvas test that sets up a canvas with some default state (a white, pink, blue, green rect background or transparent) then you can do things like: code1(); code2(); CHECK(); code3(); code4(); code5(); CHECK(); code6(); ... which would force manual renders of the state at the time when you CHECK(); and save an image and compare against a known good one (stored in tree) etc. etc. as well as just drop that test into a dir without having to modify makefiles and thus basically do a full rebuild (autogen etc.) just to begin to do testing. before we start making rules like this - we should get our testing harness into an optimal state. > Thoughts? > > On Mon, Jan 2, 2017 at 2:44 AM Minkyoung Kim wrote: > > > jpeg pushed a commit to branch master. > > > > > > http://git.enlightenment.org/core/efl.git/commit/?id=40e9da0101e2c9afb6f823c7b21c02a011cc5300 > > > > commit 40e9da0101e2c9afb6f823c7b21c02a011cc5300 > > Author: Minkyoung Kim > > Date: Mon Jan 2 15:29:48 2017 +0900 > > > > Evas GL:Bind texture to correct one. > > > > Summary: > > If user bind textureA and want to use it continuously, do not call > > glBindTexture(textureA) again. > > But expect that textureA will be binding. > > So EvasGL sould not change binded texture silently. > > Restore texture to previous bound one after allocating new texture. > > And when destroy texture, reset texture to 0 if it is current bound > > texture. > > > > Test Plan: Tizen 3.0 > > > > Reviewers: wonsik, dkdk, cedric, jpeg > > > > Reviewed By: jpeg > > > > Differential Revision: https://phab.enlightenment.org/D4524 > > --- > > src/modules/evas/engines/gl_common/evas_gl_core.c | 9 - > > 1 file changed, 8 insertions(+), 1 deletion(-) > > > > diff --git a/src/modules/evas/engines/gl_common/evas_gl_core.c > > b/src/modules/evas/engines/gl_common/evas_gl_core.c > > index 14d17f6..8292b5c 100644 > > --- a/src/modules/evas/engines/gl_common/evas_gl_core.c > > +++ b/src/modules/evas/engines/gl_common/evas_gl_core.c > > @@ -234,19 +234,26 @@ _texture_allocate_2d(GLuint tex, GLint ifmt, GLenum > > fmt, GLenum type, int w, int > > { > > //if (!(*tex)) > > // glGenTextures(1, tex); > > + GLint curr_tex = 0; > > + glGetIntegerv(GL_TEXTURE_BINDING_2D, &curr_tex); > > + > > glBindTexture(GL_TEXTURE_2D, tex); > > glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); > > glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); > > glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); > > glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); > > glTexImage2D(GL_TEXTURE_2D, 0, ifmt, w, h, 0, fmt, type, NULL); > > - glBindTexture(GL_TEXTURE_2D, 0); > > + glBindTexture(GL_TEXTURE_2D, (GLuint)curr_tex); > > } > > > > // Destroy Texture > > static void > > _texture_destroy(GLuint *tex) > > { > > + GLint curr_tex = 0; > > + glGetIntegerv(GL_TEXTURE_BINDING_2D, &curr_tex); > > + > > + if ((GLuint)curr_tex == *tex) glBindTexture(GL_TEXTURE_2D, 0); > > if (*tex) > > { > > glDeleteTextures(1, tex); > > > > -- > > > > > > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/eflete] master 01/02: fix build error.
jaehwan pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=88630ef6806f273c8a05635b56c0e86f4c4713a8 commit 88630ef6806f273c8a05635b56c0e86f4c4713a8 Author: Jaehwan Kim Date: Tue Jan 3 15:07:23 2017 +0900 fix build error. --- src/bin/project_manager/project_manager2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/project_manager/project_manager2.c b/src/bin/project_manager/project_manager2.c index 78a468f..3eaacac 100644 --- a/src/bin/project_manager/project_manager2.c +++ b/src/bin/project_manager/project_manager2.c @@ -424,7 +424,7 @@ _project_lock(Project *project) dir = ecore_file_dir_get(project->pro_path); snprintf(path, sizeof(path), "%s/"LOCK_FILE, dir); free(dir); - project->fd_lock = open(path, O_RDWR | O_CREAT); + project->fd_lock = open(path, O_RDWR | O_CREAT, S_IROTH | S_IWOTH); if (!project->fd_lock) { ERR("%s: %s\n", path, strerror(errno)); --
[EGIT] [tools/eflete] master 02/02: groupview: set the edje object scale to own base scale.
jaehwan pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=815cee6902c325ae9cc73cc1635b670863a1b0c7 commit 815cee6902c325ae9cc73cc1635b670863a1b0c7 Author: Jaehwan Kim Date: Tue Jan 3 15:09:04 2017 +0900 groupview: set the edje object scale to own base scale. If the scale is different with base scale, it changes the size of the highlight area. --- src/bin/ui/workspace/groupview.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/ui/workspace/groupview.c b/src/bin/ui/workspace/groupview.c index b01e181..2b917b9 100644 --- a/src/bin/ui/workspace/groupview.c +++ b/src/bin/ui/workspace/groupview.c @@ -276,6 +276,7 @@ groupview_add(Evas_Object *parent, Group2 *group) TODO("set the state for all parts to default 0.0") sd->group = group; evas_object_smart_member_add(sd->group->edit_object, obj); + edje_object_scale_set(sd->group->edit_object, edje_object_base_scale_get(sd->group->edit_object)); sd->box = elm_box_add(parent); elm_box_layout_set(sd->box, _parts_stack_layout, sd, NULL); --