Re: [E-devel] EDD 2017 location discussion - Vote opened

2017-01-02 Thread Stefan Schmidt
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

2017-01-02 Thread Stefan Schmidt
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

2017-01-02 Thread Carsten Haitzler
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

2017-01-02 Thread Carsten Haitzler
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

2017-01-02 Thread Carsten Haitzler
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

2017-01-02 Thread Carsten Haitzler
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

2017-01-02 Thread Carsten Haitzler
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

2017-01-02 Thread Carsten Haitzler
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

2017-01-02 Thread Carsten Haitzler
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

2017-01-02 Thread Carsten Haitzler
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.

2017-01-02 Thread Jaehyun Cho
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

2017-01-02 Thread Jaehyun Cho
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

2017-01-02 Thread Jonathan Aquilina
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

2017-01-02 Thread Stefan Schmidt
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

2017-01-02 Thread Carsten Haitzler
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

2017-01-02 Thread Bertrand Jacquin
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

2017-01-02 Thread Carsten Haitzler
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

2017-01-02 Thread Daniel Kolesa
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

2017-01-02 Thread Daniel Kolesa
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

2017-01-02 Thread Daniel Kolesa
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

2017-01-02 Thread Daniel Kolesa
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

2017-01-02 Thread Andy Williams
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

2017-01-02 Thread Daniel Kolesa
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

2017-01-02 Thread Daniel Kolesa
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.

2017-01-02 Thread Mike Blumenkrantz
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

2017-01-02 Thread Marcel Hollerbach
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

2017-01-02 Thread Guilherme Íscaro
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!

2017-01-02 Thread Boris Faure

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

2017-01-02 Thread Andy Williams
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!

2017-01-02 Thread Romain Naour
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

2017-01-02 Thread Bertrand Jacquin
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.

2017-01-02 Thread The Rasterman
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.

2017-01-02 Thread Jaehwan Kim
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.

2017-01-02 Thread Jaehwan Kim
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);

--