[EGIT] [core/enlightenment] master 01/01: ok - make pwople who \have not stared at c macros as long as i have happy

2016-08-17 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit cec35867df61caa1c489907b0664bf961cab11f8
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Aug 18 14:34:15 2016 +0900

ok - make pwople who \have not stared at c macros as long as i have happy

make it just {} instea dof do {} while (0) - as it seems that people
dont get confused by macros having this but do get confused when its
in code used as and indenter.
---
 src/bin/e_askpass_main.c | 46 +++---
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/src/bin/e_askpass_main.c b/src/bin/e_askpass_main.c
index 8cf169e..67b7856 100644
--- a/src/bin/e_askpass_main.c
+++ b/src/bin/e_askpass_main.c
@@ -33,7 +33,7 @@ cb_cancel(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info
 }
 
 EAPI int
-elm_main(int argc, char **argv)
+elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
 {
Evas_Object *win, *bx, *fr, *lab, *en, *sep, *bx2, *bt;
 
@@ -44,34 +44,34 @@ elm_main(int argc, char **argv)
elm_app_compile_data_dir_set(PACKAGE_DATA_DIR);
elm_app_info_set(elm_main, "enlightenment", "AUTHORS");
 
-   do {
+   {
   win = elm_win_util_standard_add("main", TITLE);
   elm_win_autodel_set(win, EINA_TRUE);
-  do {
+  {
  bx = elm_box_add(win);
  elm_box_horizontal_set(bx, EINA_FALSE);
  evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
  elm_win_resize_object_add(win, bx);
- do {
+ {
 fr = elm_frame_add(win);
 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, 
EVAS_HINT_FILL);
 elm_object_style_set(fr, PAD);
 elm_box_pack_end(bx, fr);
-do {
+{
lab = elm_label_add(win);
evas_object_size_hint_align_set(lab, EVAS_HINT_FILL, 0.5);
elm_object_text_set(lab, TEXT);
elm_object_content_set(fr, lab);
evas_object_show(lab);
-} while (0);
+}
 evas_object_show(fr);
- } while (0);
- do {
+ }
+ {
 fr = elm_frame_add(win);
 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, 
EVAS_HINT_FILL);
 elm_object_style_set(fr, PAD);
 elm_box_pack_end(bx, fr);
-do {
+{
en = elm_entry_add(win);
entry = en;
elm_entry_scrollable_set(en, EINA_TRUE);
@@ -86,53 +86,53 @@ elm_main(int argc, char **argv)
elm_object_content_set(fr, en);
evas_object_show(en);
elm_object_focus_set(en, EINA_TRUE);
-} while (0);
+}
 evas_object_show(fr);
- } while (0);
- do {
+ }
+ {
 sep = elm_separator_add(win);
 elm_separator_horizontal_set(sep, EINA_TRUE);
 evas_object_size_hint_weight_set(sep, EVAS_HINT_EXPAND, 0.0);
 evas_object_size_hint_align_set(sep, EVAS_HINT_FILL, 
EVAS_HINT_FILL);
 elm_box_pack_end(bx, sep);
 evas_object_show(sep);
- } while (0);
- do {
+ }
+ {
 fr = elm_frame_add(win);
 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, 
EVAS_HINT_FILL);
 elm_object_style_set(fr, PAD);
 elm_box_pack_end(bx, fr);
-do {
+{
bx2 = elm_box_add(win);
elm_box_horizontal_set(bx2, EINA_TRUE);
elm_box_homogeneous_set(bx2, EINA_TRUE);
evas_object_size_hint_align_set(bx2, 0.5, 0.5);
elm_object_content_set(fr, bx2);
-   do {
+   {
   bt = elm_button_add(win);
   elm_object_text_set(bt, OK);
   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 
EVAS_HINT_FILL);
   evas_object_smart_callback_add(bt, "clicked", cb_ok, NULL);
   elm_box_pack_end(bx2, bt);
   evas_object_show(bt);
-   } while (0);
-   do {
+   }
+   {
   bt = elm_button_add(win);
   elm_object_text_set(bt, CANCEL);
   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 
EVAS_HINT_FILL);
   evas_object_smart_callback_add(bt, "clicked", cb_cancel, 
NULL);
   elm_box_pack_end(bx2, bt);
   evas_object_show(bt);
-   } while (0);
+   }
evas_object_show(bx2);
-} while (0);
+}
 evas_object_show(fr);
- } while (0);
+ }
  evas_object_show(bx);
-  } while (0);
+  }
   elm_win_center(win, 

Re: [E-devel] efl-io interfaces WIP

2016-08-17 Thread Gustavo Sverzut Barbieri
Hi all,

Updated my branch with a properly working Efl.Io and an initial
Efl.Net covering TCP client and server.

https://git.enlightenment.org/core/efl.git/log/?h=devs/barbieri/efl-io-interfaces

The TCP is far from complete if you compare with existing ecore_con,
not to say the other missing protocols (UDP, Unix Local...), but the
idea is there and I'd like you to review at least the  .eo to check
out the usage, names and so on. There you can see I'm taking the
advice to avoid "flags" and "enums", using specific properties for
classes that can use them, like Efl.Net.Socket.Tcp is the only
providing "no_delay", "cork" and "keep_alive" properties. OTOH all
filedescriptors will do "close_exec".

"non_block" isn't there yet, likely I'll add these to Efl.Io.Reader.Fd
and Efl.Io.Writer.Fd, thus being accessible by Efl.Net.Socket.

I'm also thinking about "auto_close" for Efl.Io.Closer, so objects can
be told to automatically close if they were deleted.

With the current API a "netcat" is trivial, as is an "echo" server.
Still not so trivial is to do interactive chats where you send a
command, wait for an answer, then send something else. I'll cover
these later as in my plan/roadmap is to finish Efl.Network.Url, which
I plan to move to these new interfaces... fortunately HTTP is not a
chat-like protocol... at least at the high-level when using cURL :-)
but it's much more complex and well defined than a simple TCP socket,
so it may expose some some needs/failures which will be reviewed.

Once the Efl.Network.Url is okay, I'll be back to TCP/UDP/UNIX/SSL and
replace most of my code with pieces of ecore_con.c (it was too tied to
old design to be used as-is, so needs more effort). This will include
an asynchronous name resolution (similar to ecore_con_info) and
connect.

As a final note, these are using the Eina_Slice/Eina_Rw_Slice and
Eina_Error-returns as discussed in other threads, but I'm taking them
as temporary/under-review. So far they're working well, but shall the
consensus be to change, I'll do that before 1.19 release.






On Tue, Aug 16, 2016 at 1:14 AM, Gustavo Sverzut Barbieri
 wrote:
> And finally it works!
>
> https://git.enlightenment.org/core/efl.git/log/?h=devs/barbieri/efl-io-interfaces
>
> you can see the example is able to transparently copy from stdin to
> stdout/stderr, it can copy to/from files... without any special code
> in the example itself.
>
> That is, when I add Efl.Net, we can copy to/from some socket, be it
> TCP, UDP or even an URL created with libcurl as backend.
>
> Raster, take a look and see that the events you want, such as "data"
> (analogous to ECORE_CON_*_DATA events) or "line" are emitted there.
> This is particularly interesting for ease of use, debug and support of
> legacy APIs.
>
>
> On Mon, Aug 15, 2016 at 2:35 AM, Gustavo Sverzut Barbieri
>  wrote:
>> Hi all,
>>
>> Updated with more details, Efl.Io.Copier and Efl.Io.File are mostly
>> done (although untested -- will focus on these tomorrow). I should add
>> some simple subclasses from these Efl.Io to help testing, like Stdin,
>> Stdout, Stderr, Null (/dev/null-like) and Zero (/dev/zero-like).
>>
>> As you can see in Efl.Io.Copier, it's the one doing "data" events like
>> Ecore_Con and Ecore_Con_URL did, but in a general way so whatever
>> implements the Efl.Io.Reader interface could do those (my plan is to
>> use a discard output like Efl.Io.Null to get the same effect). It is
>> doing line-buffered output as well, with configurable multibyte binary
>> delimiter.
>>
>>
>>
>> On Sat, Aug 13, 2016 at 5:05 AM, Gustavo Sverzut Barbieri
>>  wrote:
>>> Hi all,
>>>
>>> Following the discussions from Eina_Slice and Efl.Io interfaces, I've
>>> started to code as you can see at:
>>>
>>>
>>> https://git.enlightenment.org/core/efl.git/log/?h=devs/barbieri/efl-io-interfaces
>>>
>>> I'll keep following with my preferences of Eina_Slice (instead of
>>> Eina_Binbuf) and fine-grained Efl.Io.* interfaces (instead of a single
>>> one that does all operations). It's a bit more work, but it's easier
>>> to sed & fix compiler errors if we decide to go in the other
>>> direction.
>>>
>>> The code compiles, but I did not test the new objects yet. With the
>>> existing code (if it works) it would fulfill memory<->file cases.
>>>
>>> Then it would be a matter of adding Efl.Net.Socket based on
>>> Efl.Io.*.Fd that makes sense (ie: reader, writer, closer). It would be
>>> about implementing finalize for Dialers (or an explicit connect() as
>>> requested by raster).
>>>
>>> For Efl.Net.Http.Client (ecore_con_url), it would also expose Efl.Io.*
>>> interfaces, but since cURL handles the actual fd, it would not be
>>> based on Efl.Io.*.Fd. But to the end user, the expected reader,
>>> writer, closer will all work like expected, being able to use
>>> Efl.Io.Copier on them to download/upload stuff to/from files or
>>> memory.
>>>
>>> BR,
>>>
>>> --
>>> Gustavo Sverzut Barbieri
>>> 

[EGIT] [core/efl] master 02/02: ejde - fix recalc single min n edje for h eval

2016-08-17 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 4be972c41ce956b08bd367a02dfc638766fc380f
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Aug 18 14:19:25 2016 +0900

ejde - fix recalc single min n edje for h eval

this fixes a seemingly small typo that would only turn up with fixed
point, but not floats as we have by default whwere we had
  x = 999;
instead of
  x = FROM_INT(999);

shouldn't be visibule unless you disable float support and use fixed
point in edje.
---
 src/lib/edje/edje_calc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index bb717c2..c5e07c1 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -1949,7 +1949,7 @@ _edje_part_recalc_single_min(Edje_Part_Description_Common 
*desc,
FLOAT_T h;
 
w = params->eval.w ? params->eval.w : FROM_INT(9);
-   h = params->eval.h ? params->eval.h : 9;
+   h = params->eval.h ? params->eval.h : FROM_INT(9);
 
switch (aspect)
  {

-- 




[EGIT] [core/efl] master 01/02: edje - solve crash issues brought on by optimization of edje mem usage

2016-08-17 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 6f9f361f3eae85b03d29af734d72bdb87df8ed88
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Aug 18 14:18:06 2016 +0900

edje - solve crash issues brought on by optimization of edje mem usage

this solves a crash brought on by 1d6a58cfc9f3bbe821eb04150e2b1e0ede7b32eb
that optimized mem usage but seems to have created issues in empc.

fixes T4382
---
 src/lib/edje/edje_calc.c | 83 +---
 1 file changed, 22 insertions(+), 61 deletions(-)

diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index 24a9c55..bb717c2 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -103,11 +103,13 @@ _edje_calc_params_clear(Edje_Calc_Params *p)
// handle cow stuff in one place
if (p->ext)
  {
+#ifdef EDJE_CALC_CACHE
 eina_cow_free(_edje_calc_params_map_cow, (const Eina_Cow_Data 
**)&(p->ext->map));
 p->ext->map = NULL;
-#ifdef HAVE_EPHYSICS
+# ifdef HAVE_EPHYSICS
 eina_cow_free(_edje_calc_params_physics_cow, (const Eina_Cow_Data 
**)&(p->ext->physics));
 p->ext->physics = NULL;
+# endif
 #endif
 free(p->ext);
 p->ext = NULL;
@@ -3891,8 +3893,23 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, 
Edje_Real_Part *cep, Ein
 static void
 _edje_part_calc_params_memcpy(Edje_Calc_Params *p, Edje_Calc_Params *s, 
Edje_Part_Type t)
 {
-   if (p->type.common) free(p->type.common);
+   _edje_calc_params_clear(p);
memcpy(p, s, sizeof(Edje_Calc_Params));
+   if (s->ext)
+ {
+p->ext = NULL;
+_edje_calc_params_need_ext(p);
+#ifdef EDJE_CALC_CACHE
+eina_cow_memcpy(_edje_calc_params_map_cow,
+(const Eina_Cow_Data **)&(p->ext->map),
+s->ext->map);
+# ifdef HAVE_EPHYSICS
+eina_cow_memcpy(_edje_calc_params_physics_cow,
+(const Eina_Cow_Data **)&(p->ext->physics),
+s->ext->physics);
+# endif
+#endif
+ }
switch (t)
  {
   case EDJE_PART_TYPE_IMAGE:
@@ -3966,7 +3983,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int 
flags, Edje_Calc_Params *sta
Edje_Real_Part *confine_to = NULL;
Edje_Real_Part *threshold = NULL;
FLOAT_T pos = ZERO, pos2;
-   Edje_Calc_Params lp3;
+   Edje_Calc_Params lp3 = { 0 };
Evas_Coord mmw = 0, mmh = 0;
Eina_Bool map_colors_free = EINA_FALSE;
 
@@ -4325,36 +4342,8 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int 
flags, Edje_Calc_Params *sta
 
 if (ep->current)
   {
- Eina_Bool needext = EINA_FALSE;
- const Edje_Calc_Params_Map *map;
-#ifdef HAVE_EPHYSICS
- const Edje_Calc_Params_Physics *physics;
-#endif
-
- if (p1->ext)
-   {
-  needext = EINA_TRUE;
-  map = p1->ext->map;
-#ifdef HAVE_EPHYSICS
-  physics = p1->ext->physics;
-#endif
-   }
-
+ _edje_calc_params_clear(p1);
  _edje_part_calc_params_memcpy(p1, ep->current, ep->part->type);
-
- if (needext)
-   {
-  p1->ext = NULL;
-  _edje_calc_params_need_ext(p1);
-  p1->ext->map = map;
-#ifdef HAVE_EPHYSICS
-  p1->ext->physics = physics;
-#endif
-  eina_cow_memcpy(_edje_calc_params_map_cow, (const 
Eina_Cow_Data **)>ext->map, ep->current->ext->map);
-#ifdef HAVE_EPHYSICS
-  eina_cow_memcpy(_edje_calc_params_physics_cow, (const 
Eina_Cow_Data **)>ext->physics, ep->current->ext->physics);
-#endif
-   }
   }
 
 p3 = 
@@ -4757,36 +4746,8 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int 
flags, Edje_Calc_Params *sta
 
if (state)
  {
-Eina_Bool needext = EINA_FALSE;
-const Edje_Calc_Params_Map *map;
-#ifdef HAVE_EPHYSICS
-const Edje_Calc_Params_Physics *physics;
-#endif
-
-if (state->ext)
-  {
- needext = EINA_TRUE;
- map = state->ext->map;
-#ifdef HAVE_EPHYSICS
- physics = state->ext->physics;
-#endif
-  }
-
+_edje_calc_params_clear(state);
 _edje_part_calc_params_memcpy(state, pf, ep->part->type);
-
-if (needext)
-  {
- state->ext = NULL;
- _edje_calc_params_need_ext(state);
- state->ext->map = map;
-#ifdef HAVE_EPHYSICS
- state->ext->physics = physics;
-#endif
- eina_cow_memcpy(_edje_calc_params_map_cow, (const Eina_Cow_Data 
**)>ext->map, pf->ext->map);
-#ifdef HAVE_EPHYSICS
- eina_cow_memcpy(_edje_calc_params_physics_cow, (const 
Eina_Cow_Data **)>ext->physics, pf->ext->physics);
-#endif
-  }
  }
 
ep->req = pf->req;

-- 




[EGIT] [core/efl] master 02/02: efl_loop_user: error if parent is not a loop provider.

2016-08-17 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit c88b027dc1ac0ffa17022ebebdad1f10687622a3
Author: Gustavo Sverzut Barbieri 
Date:   Thu Aug 18 01:01:25 2016 -0300

efl_loop_user: error if parent is not a loop provider.

it was silently ignoring the parent, which led me to hours trying to
investigate why my code wasn't working just to realize my parent
wasn't being assigned and refcounts were screwed.
---
 src/lib/ecore/efl_loop_user.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore/efl_loop_user.c b/src/lib/ecore/efl_loop_user.c
index 78ac3a8..530772f 100644
--- a/src/lib/ecore/efl_loop_user.c
+++ b/src/lib/ecore/efl_loop_user.c
@@ -21,7 +21,10 @@ static void
 _efl_loop_user_efl_object_parent_set(Eo *obj, Efl_Loop_User_Data *pd 
EINA_UNUSED, Efl_Object *parent)
 {
if (parent != NULL && efl_provider_find(parent, EFL_LOOP_CLASS) == NULL)
- return ;
+ {
+ERR("parent=%p is not a provider of EFL_LOOP_CLASS!", parent);
+return;
+ }
 
efl_parent_set(efl_super(obj, EFL_LOOP_USER_CLASS), parent);
 }

-- 




[EGIT] [core/efl] master 01/02: eolian: gracefully handle incorrect case of inherit.

2016-08-17 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit e3e0a6bd65e7168bf2ca53b305708c52d9951b1b
Author: Gustavo Sverzut Barbieri 
Date:   Tue Aug 16 21:41:26 2016 -0300

eolian: gracefully handle incorrect case of inherit.

If you use "EFl" instead of "Efl", it will find the proper file, but
won't find the type... crashing.

Handle that case and hint the user about it.
---
 src/lib/eolian/eo_parser.c | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index ead4183..d81b8d7 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -1924,7 +1924,14 @@ _inherit_dep(Eo_Lexer *ls, Eina_Strbuf *buf, Eina_Bool 
check_inherit,
  }
_parse_dep(ls, fname, iname);
const Eolian_Class *dep = eolian_class_get_by_name(iname);
-   assert(dep != NULL);
+   if (!dep)
+ {
+char ebuf[PATH_MAX];
+eo_lexer_context_restore(ls);
+snprintf(ebuf, sizeof(ebuf), "unknown inherit '%s'. Incorrect case?", 
iname);
+eo_lexer_syntax_error(ls, ebuf);
+return;
+ }
if (check_inherit) switch (type)
  {
   case EOLIAN_CLASS_REGULAR:

-- 




[EGIT] [core/efl] master 01/01: edje_entry: Make a result of retrieve_surrounding_cb secure

2016-08-17 Thread Jihoon Kim
jihoon pushed a commit to branch master.

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

commit 0e35f8454eb993da74bd4fb5d0c089e068b87cbf
Author: Jihoon Kim 
Date:   Thu Aug 18 10:40:24 2016 +0900

edje_entry: Make a result of retrieve_surrounding_cb secure

Summary:
Regardless of the password mode of Entry,
_edje_entry_imf_retrieve_surrounding_cb alwalys passes plain_text
to any callers who register that callback.

This commit replace plain text with '*'
because current behavior could be a security hole in some case.

Reviewers: woohyun, id213sin, jihoon

Reviewed By: jihoon

Subscribers: cedric, jsuya, z-wony, jpeg

Differential Revision: https://phab.enlightenment.org/D4238
---
 src/lib/edje/edje_entry.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index fca05a0..dae0192 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -4411,6 +4411,13 @@ _edje_entry_imf_retrieve_surrounding_cb(void *data, 
Ecore_IMF_Context *ctx EINA_
 
  if (plain_text)
{
+  if (ecore_imf_context_input_hint_get(ctx) & 
ECORE_IMF_INPUT_HINT_SENSITIVE_DATA)
+{
+   char *itr = NULL;
+   for (itr = plain_text; itr && *itr; ++itr)
+ *itr = '*';
+}
+
   *text = strdup(plain_text);
 
   free(plain_text);

-- 




[EGIT] [core/efl] master 01/01: eolian_cxx: Fix behavior with explicit void return

2016-08-17 Thread Lauro Moura
felipealmeida pushed a commit to branch master.

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

commit 16986ffc7aded1e8baf1eb36227d425cc30d8f03
Author: Lauro Moura 
Date:   Wed Aug 17 20:53:56 2016 -0300

eolian_cxx: Fix behavior with explicit void return

Only perform the single value/return type substitution on properties if the
void return type is implicit (i.e. NULL return from 
function_return_type_get),
following the eolian-C implementation as we use the generated headers.

Also update example after Eo-Efl changes.
---
 src/examples/eolian_cxx/colourable_cxx.cc | 4 ++--
 src/lib/eolian_cxx/grammar/klass_def.hpp  | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/examples/eolian_cxx/colourable_cxx.cc 
b/src/examples/eolian_cxx/colourable_cxx.cc
index 30f1bb3..66c0d89 100644
--- a/src/examples/eolian_cxx/colourable_cxx.cc
+++ b/src/examples/eolian_cxx/colourable_cxx.cc
@@ -24,14 +24,14 @@ _colourable_eo_base_constructor(Eo *obj, Colourable_Data 
*self)
 {
EINA_CXX_DOM_LOG_DBG(domain) << __func__ << std::endl;
self->r = self->g = self->b = 0;
-   return eo_constructor(eo_super(obj, MY_CLASS));
+   return efl_constructor(efl_super(obj, MY_CLASS));
 }
 
 void
 _colourable_eo_base_destructor(Eo *obj, Colourable_Data *self EINA_UNUSED)
 {
EINA_CXX_DOM_LOG_DBG(domain) << __func__ << std::endl;
-   eo_destructor(eo_super(obj, MY_CLASS));
+   efl_destructor(efl_super(obj, MY_CLASS));
 }
 
 void
diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp 
b/src/lib/eolian_cxx/grammar/klass_def.hpp
index 0c5d820..cafb56d 100644
--- a/src/lib/eolian_cxx/grammar/klass_def.hpp
+++ b/src/lib/eolian_cxx/grammar/klass_def.hpp
@@ -424,7 +424,7 @@ struct function_def
   values.push_back(&*param_iterator);
}
 
- if(type == EOLIAN_PROP_GET && values.size() == 1 && return_type == 
void_)
+ if(!r_type && type == EOLIAN_PROP_GET && values.size() == 1)
{
  return_type = values[0].type;
}

-- 




[EGIT] [core/efl] master 01/02: wayland_egl: Remove swap_mode from engine info

2016-08-17 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 6ce113791e9681e940c3c8aa1a57d4781dfd6c9e
Author: Derek Foreman 
Date:   Wed Aug 17 16:21:29 2016 -0500

wayland_egl: Remove swap_mode from engine info

This was never set anywhere and always defaulted to 0, or AUTO
---
 .../engines/wayland_egl/Evas_Engine_Wayland_Egl.h  |  1 -
 src/modules/evas/engines/wayland_egl/evas_engine.c | 37 +-
 2 files changed, 1 insertion(+), 37 deletions(-)

diff --git a/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h 
b/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
index 54dee26..204e286 100644
--- a/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
+++ b/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
@@ -43,7 +43,6 @@ struct _Evas_Engine_Info_Wayland_Egl
 
Eina_Bool vsync : 1;
Eina_Bool indirect : 1;
-   unsigned char swap_mode : 4;
 
Eina_Bool wobbling : 1;
Eina_Bool www_avail : 1;
diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c 
b/src/modules/evas/engines/wayland_egl/evas_engine.c
index c79bcf6..8ccc4e1 100644
--- a/src/modules/evas/engines/wayland_egl/evas_engine.c
+++ b/src/modules/evas/engines/wayland_egl/evas_engine.c
@@ -558,42 +558,7 @@ eng_setup(Evas *evas, void *info)
  (!strcasecmp(s, "4")))
   swap_mode = MODE_QUADRUPLE;
  }
-   else
- {
-// in most gl implementations - egl and glx here that we care about the TEND
-// to either swap or copy backbuffer and front buffer, but strictly that is
-// not true. technically backbuffer content is totally undefined after a swap
-// and thus you MUST re-render all of it, thus MODE_FULL
-swap_mode = MODE_FULL;
-// BUT... reality is that lmost every implementation copies or swaps so
-// triple buffer mode can be used as it is a superset of double buffer and
-// copy (though using those explicitly is more efficient). so let's play with
-// triple buffer mdoe as a default and see.
-//re->mode = MODE_TRIPLE;
-// XXX: note - the above seems to break on some older intel chipsets and
-// drivers. it seems we CANT depend on backbuffer staying around. bugger!
-switch (inf->swap_mode)
-  {
-   case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_FULL:
- swap_mode = MODE_FULL;
- break;
-   case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_COPY:
- swap_mode = MODE_COPY;
- break;
-   case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_DOUBLE:
- swap_mode = MODE_DOUBLE;
- break;
-   case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_TRIPLE:
- swap_mode = MODE_TRIPLE;
- break;
-   case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_QUADRUPLE:
- swap_mode = MODE_QUADRUPLE;
- break;
-   default:
- swap_mode = MODE_AUTO;
- break;
-  }
- }
+   else swap_mode = MODE_AUTO;
 
if (!(re = epd->engine.data.output))
  {

-- 




[EGIT] [core/efl] master 02/02: wayland_egl: Fix rendering on systems without buffer age

2016-08-17 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 7828d0e0720cee1fb3098bba50f718796de64989
Author: Derek Foreman 
Date:   Wed Aug 17 16:22:54 2016 -0500

wayland_egl: Fix rendering on systems without buffer age

If buffer age isn't present we really want to return MODE_FULL, but we were
previously returning MODE_AUTO.

On recent mali drivers this resulted in accidental partial updates leading
to incorrect rendering.
---
 src/modules/evas/engines/wayland_egl/evas_wl_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/modules/evas/engines/wayland_egl/evas_wl_main.c 
b/src/modules/evas/engines/wayland_egl/evas_wl_main.c
index a0ac4fa..710202f 100644
--- a/src/modules/evas/engines/wayland_egl/evas_wl_main.c
+++ b/src/modules/evas/engines/wayland_egl/evas_wl_main.c
@@ -388,6 +388,7 @@ eng_outbuf_swap_mode_get(Outbuf *ob)
 return swap_mode;
  }
 
+   if (ob->swap_mode == MODE_AUTO) return MODE_FULL;
return ob->swap_mode;
 }
 

-- 




Re: [E-devel] Can't build doc for EFL

2016-08-17 Thread Nikita Zlobin
Installing doxygen from git solved problem, for both git and
1.17.2.

В Wed, 17 Aug 2016 15:00:17 +0500
Nikita Zlobin  пишет:

> Yeah, i will try with doxygen live version, as well as manual building
> without options.
> 
> Some of them are defaults for ebuild (glib and physics flags, last -
> enabling dependence on bullet lib). I did not analyze flags, simply
> copied configure line with all options from emerge log. I think, they
> could eventually add some warnings into ebuild about extra
> functionality loss without some use flags.
> 
> В Wed, 17 Aug 2016 11:40:19 +0200
> Stefan Schmidt  пишет:
> 
> > Hello.
> > 
> > On 17/08/16 10:40, Stefan Schmidt wrote:  
> > > Hello.
> > >
> > > On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote:
> > >> On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobin
> > >>  said:   
> > >>> Hit, it is gentoo S). And this is not first case.
> > >>> But in turn, i remember case - when i took part in ladish
> > >>> development, i used ubuntu... and my code, being ok on my
> > >>> system, segfailed on gentoo system of project leader, revealing
> > >>> one hard to detect bug.
> > >>>
> > >>> doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...)
> > >>>
> > >>> As for configuration, i took them from ebuild log:
> > >>> $ ./configure --enable-cserve --enable-image-loader-generic
> > >>> --enable-image-loader-jpeg --disable-tizen --disable-gesture
> > >>> --disable-gstreamer --enable-xinput2 --disable-xinput22
> > >>> --disable-multisense --enable-libmount --with-opengl-full
> > >>> --disable-physics --with-glib=no --enable-image-loader-jp2k
> > >>> --enable-gnutls
> > >>> --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb
> > >>> --prefix=/usr
> > >>>
> > >>> As for bugs - you can see there one veeery lonnng option, so
> > >>> decided to consult. Can't beleive, that these options might
> > >>> cause doc making to fail.
> > >>
> > >> --enable-cserve <- you know this is enabled by default? why
> > >> enable? --enable-image-loader-generic <- enabled by default too
> > >> --enable---disable-image-loader-jpeg <- enabled by default too
> > >> --disable-tizen <- disabled by defaault...
> > >> --disable-gesture <- disabled by default...
> > >> --disable-gstreamer <- you know this is disabled by default...
> > >> --disable-multisense <- you do know this breaks theme
> > >> functionality right? --enable-libmount <- you know itss enabled
> > >> by default? --with-opengl-full <- you know this is a typo? it
> > >> should be: --with-opengl=full ... and this is the default
> > >> anyway... --disable-physics <- you know this can break theme
> > >> functionality right? --with-glib=no <- you know this can create
> > >> problems with things like the ibus imf modules which require it
> > >> (because libibus need glib mainloop stuff), though you don't
> > >> enable the ibus imf module here...? --enable-gnutls <- why
> > >> gnutls not openssl. you know we test openssl as it's the
> > >> default. gnutls gets little to no testing. also optimization -
> > >> little to none with it.
> > >>
> > >> almost all your options are redundant and several i would think
> > >> are dubious to alter... though none of these SHOULD affect
> > >> document generation - maybe unless there is more glib main loop
> > >> integration that is needed that we've missed (scim? something
> > >> else?) and since it's on by default ... we haven't seen the
> > >> brokenness with it off. there is a reason we make you put in that
> > >> insanely long option accepting your fate if you stray from tested
> > >> defaults that might have an effect.
> > >
> > > We can easily tell if it works with the default configure options
> > > on his system. Nikita, can you run a configure without these
> > > options (any options at all) followed by a make and a make doc?
> > >
> > > This is not going to install anything so it will not touch your
> > > system.
> > >
> > > If that still breaks the same way as before it is more likely a
> > > problem with your doxygen version. It works for me here with
> > > 1.8.9.1 and yours is 1.8.11. So if it still fails the next try
> > > might be to downgrade your doxygen version and see if that
> > > helps.
> > 
> > I did the inverted test and tried with doxygen 1.8.11 (which is the 
> > latest release, December 2015) and can verify that it breaks our
> > doc build the way you reported.
> > 
> > Latest doxygen from their git repo works though. So it is really a 
> > problem in 1.8.11 (maybe also 1.8.10) and is fixed already. We can
> > only hope for a new release or go back to an older version.
> > 
> > regards
> > Stefan Schmidt
> > 
> > --
> > ___
> > enlightenment-devel mailing list
> > 

Re: [E-devel] Can't build doc for EFL

2016-08-17 Thread Stefan Schmidt
Hello.

On 17/08/16 11:58, Carsten Haitzler (The Rasterman) wrote:
> On Wed, 17 Aug 2016 10:40:46 +0200 Stefan Schmidt  
> said:
>
>> Hello.
>>
>> On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote:
>>> On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobin 
>>> said:
>>>
 Hit, it is gentoo S). And this is not first case.
 But in turn, i remember case - when i took part in ladish development,
 i used ubuntu... and my code, being ok on my system, segfailed on
 gentoo system of project leader, revealing one hard to detect bug.

 doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...)

 As for configuration, i took them from ebuild log:
 $ ./configure --enable-cserve --enable-image-loader-generic
 --enable-image-loader-jpeg --disable-tizen --disable-gesture
 --disable-gstreamer --enable-xinput2 --disable-xinput22
 --disable-multisense --enable-libmount --with-opengl-full
 --disable-physics --with-glib=no --enable-image-loader-jp2k
 --enable-gnutls
 --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb
 --prefix=/usr

 As for bugs - you can see there one veeery lonnng option, so
 decided to consult. Can't beleive, that these options might cause doc
 making to fail.
>>>
>>> --enable-cserve <- you know this is enabled by default? why enable?
>>> --enable-image-loader-generic <- enabled by default too
>>> --enable---disable-image-loader-jpeg <- enabled by default too
>>> --disable-tizen <- disabled by defaault...
>>> --disable-gesture <- disabled by default...
>>> --disable-gstreamer <- you know this is disabled by default...
>>> --disable-multisense <- you do know this breaks theme functionality right?
>>> --enable-libmount <- you know itss enabled by default?
>>> --with-opengl-full <- you know this is a typo? it should be:
>>>   --with-opengl=full ... and this is the default anyway...
>>> --disable-physics <- you know this can break theme functionality right?
>>> --with-glib=no <- you know this can create problems with things like the
>>> ibus imf modules which require it (because libibus need glib mainloop
>>> stuff), though you don't enable the ibus imf module here...?
>>> --enable-gnutls <- why gnutls not openssl. you know we test openssl as it's
>>>   the default. gnutls gets little to no testing. also optimization - little
>>> to none with it.
>>>
>>> almost all your options are redundant and several i would think are dubious
>>> to alter... though none of these SHOULD affect document generation - maybe
>>> unless there is more glib main loop integration that is needed that we've
>>> missed (scim? something else?) and since it's on by default ... we haven't
>>> seen the brokenness with it off. there is a reason we make you put in that
>>> insanely long option accepting your fate if you stray from tested defaults
>>> that might have an effect.
>>
>> We can easily tell if it works with the default configure options on his
>> system. Nikita, can you run a configure without these options (any
>> options at all) followed by a make and a make doc?
>>
>> This is not going to install anything so it will not touch your system.
>>
>> If that still breaks the same way as before it is more likely a problem
>> with your doxygen version. It works for me here with 1.8.9.1 and yours
>> is 1.8.11. So if it still fails the next try might be to downgrade your
>> doxygen version and see if that helps.
>
> i think actually files are missing from the makefile'am's extra dist - try and
> make doc FROM the tarball not from git... :)

A different problem from the doxygen one but still valid. I fixed it in 
master and backported it to the efl-1.18 branch to make sure it is part 
of 1.18.1

regards
Stefan Schmidt

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [tools/eflete] master 01/01: Project manager: fix management file handler for *.pro files.

2016-08-17 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

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

commit d574cb96068cfa4c91f86ac5a62a4c7fba7e32b3
Author: Mykyta Biliavskyi 
Date:   Wed Aug 17 16:37:27 2016 +0300

Project manager: fix management file handler for *.pro files.
---
 src/bin/project_manager/project_manager.c  | 41 ++
 src/bin/project_manager/project_manager.h  |  6 
 .../project_manager/project_manager_import_edj.c   |  3 +-
 src/bin/project_manager/project_manager_open.c |  9 +++--
 src/bin/project_manager/project_manager_private.h  |  3 +-
 5 files changed, 51 insertions(+), 11 deletions(-)

diff --git a/src/bin/project_manager/project_manager.c 
b/src/bin/project_manager/project_manager.c
index a474d17..c50e069 100644
--- a/src/bin/project_manager/project_manager.c
+++ b/src/bin/project_manager/project_manager.c
@@ -45,10 +45,10 @@ _project_dev_file_create(Project *pro)
 }
 
 
+#ifndef _WIN32
 Eina_Bool
-_lock_try(const char *path, Eina_Bool check)
+_lock_try(const char *path, Eina_Bool check, int *pro_fd)
 {
-#ifndef _WIN32
struct flock lock, savelock;
 
int fd = open(path, O_RDWR);
@@ -64,13 +64,28 @@ _lock_try(const char *path, Eina_Bool check)
 ERR("Process %d has a write lock already!", lock.l_pid);
 return false;
  }
-   /* if flag check is false not need to lock the file */
-   if (check)
+
+   /* if flag check is false not need to lock the file, just close handler */
+   if (!check)
+ {
+close(fd);
+return true;
+ }
+
+   if (pro_fd)
  {
 savelock.l_pid = getpid();
 fcntl(fd, F_SETLK, );
+*pro_fd = fd;
+return true;
  }
+   close(fd);
+   return false;
+}
 #else
+Eina_Bool
+_lock_try(const char *path, Eina_Bool check, HFILE *pro_fd)
+{
LPOFSTRUCT lpReOpenBuff;
HFILE fd = OpenFile(path, lpReOpenBuff, OF_READWRITE);
if (fd == HFILE_ERROR)
@@ -78,13 +93,23 @@ _lock_try(const char *path, Eina_Bool check)
ERR("The file '%s' cannot be opened in mode read-write!", path);
return false;
  }
+
if (!check)
  {
CloseHandle(fd);
+   return false;
  }
-#endif
-   return true;
+
+   if (pro_fd)
+ {
+*pro_fd = fd;
+return true;
+ }
+
+   CloseHandle(fd);
+   return false;
 }
+#endif
 
 void
 _project_descriptor_init(Project_Thread *ptd)
@@ -628,6 +653,8 @@ pm_project_close(Project *project)
 #endif /* HAVE_ENVENTOR */
 
eet_close(project->ef);
+   if (project->pro_fd != -1)
+ close(project->pro_fd);
free(project);
evas_object_smart_callback_call(ap.win, SIGNAL_PROJECT_CLOSED, NULL);
 
@@ -1005,7 +1032,7 @@ pm_project_enventor_save(Project *project,
 Eina_Bool
 pm_lock_check(const char *path)
 {
-   return _lock_try(path, false);
+   return _lock_try(path, false, NULL);
 }
 
 Eina_Bool
diff --git a/src/bin/project_manager/project_manager.h 
b/src/bin/project_manager/project_manager.h
index 7dc9ba7..ceb07d1 100644
--- a/src/bin/project_manager/project_manager.h
+++ b/src/bin/project_manager/project_manager.h
@@ -56,6 +56,12 @@ struct _Project
 {
/* version of project file */
int version;
+   /** File descriptor of open "*.pro" file. Needed for keep that file locked*/
+#ifdef _WIN32
+   HFILE pro_fd;
+#else
+   int pro_fd;
+#endif
/** The project name */
Eina_Stringshare *name;
/** project path */
diff --git a/src/bin/project_manager/project_manager_import_edj.c 
b/src/bin/project_manager/project_manager_import_edj.c
index 4aa35e0..439a298 100644
--- a/src/bin/project_manager/project_manager_import_edj.c
+++ b/src/bin/project_manager/project_manager_import_edj.c
@@ -59,6 +59,7 @@ _project_files_create(Project_Thread *ptd)
 
pro_path = eina_stringshare_printf("%s/%s.pro", folder_path, ptd->name);
pro->ef = eet_open(pro_path, EET_FILE_MODE_READ_WRITE);
+   pro->pro_fd = -1;
ecore_file_mkdir(pro->develop_path);
MKDIR(images);
MKDIR(sounds);
@@ -164,7 +165,7 @@ _project_import_edj(void *data)
TODO("Add correct error handling here (if project == NULL). Probably we 
should add negative TC where directory already exist");
ptd->project->pro_path = eina_stringshare_printf("%s/%s/%s.pro", ptd->path, 
ptd->name, ptd->name);
 
-   if (!_lock_try(ptd->project->pro_path, true))
+   if (!_lock_try(ptd->project->pro_path, true, >project->pro_fd))
  {
 /* really this case is unlickly, but we need handle it */
 ptd->result = PM_PROJECT_LOCKED;
diff --git a/src/bin/project_manager/project_manager_open.c 
b/src/bin/project_manager/project_manager_open.c
index de45de9..7227761 100644
--- a/src/bin/project_manager/project_manager_open.c
+++ b/src/bin/project_manager/project_manager_open.c
@@ -68,12 +68,16 @@ _project_open_feedback_job(void *data, Ecore_Thread *th)
char *tmp;
int tmp_len;
Eina_Stringshare *message = NULL;
-
+#ifdef _WIN32
+

[EGIT] [tools/enventor] master 01/01: edj_viewer: don't update views if they were deactivated.

2016-08-17 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=b5b39617f22010ff024d05f86c8a8b4840655a34

commit b5b39617f22010ff024d05f86c8a8b4840655a34
Author: Hermet Park 
Date:   Thu Aug 18 00:27:56 2016 +0900

edj_viewer: don't update views if they were deactivated.

This fixes the wireframe issue that deactivated views' wireframes are 
appeared
when the file is updated.

This is only happened if edc collections is consisted with multiple edc 
files.
If edj file is updated, all generated views will be updated.
and wireframes will be also updated and appeared.

but we don't need to update the deactivated views even if the edj is
updated. we could this with an activated boolean and this will be much
optimized way for many generated views.
---
 src/lib/edj_mgr.c  |  3 +++
 src/lib/edj_viewer.c   | 42 ++
 src/lib/enventor_private.h |  1 +
 3 files changed, 42 insertions(+), 4 deletions(-)

diff --git a/src/lib/edj_mgr.c b/src/lib/edj_mgr.c
index 2831d22..18ce8b5 100644
--- a/src/lib/edj_mgr.c
+++ b/src/lib/edj_mgr.c
@@ -197,8 +197,11 @@ edj_mgr_view_switch_to(view_data *vd)
 ecore_timer_del(prev_edj->timer);
 prev_edj->timer = ecore_timer_add(VIEW_CACHING_TIME, view_del_timer_cb,
   prev_edj->vd);
+view_activated_set(prev_edj->vd, EINA_FALSE);
  }
em->edj = view_data_get(vd);
+
+   view_activated_set(vd, EINA_TRUE);
 }
 
 Evas_Object *
diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c
index 65caa47..dce1c27 100644
--- a/src/lib/edj_viewer.c
+++ b/src/lib/edj_viewer.c
@@ -52,6 +52,8 @@ struct viewer_s
 
Eina_Bool edj_reload_need : 1;
Eina_Bool file_set_finished : 1;
+   Eina_Bool activated: 1;
+   Eina_Bool view_update_call_request : 1;
 };
 
 const char *PART_NAME = "part_name";
@@ -374,7 +376,7 @@ view_obj_parts_callbacks_set(view_data *vd)
 }
 
 static void
-update_edj_file_internal(view_data *vd)
+update_view(view_data *vd)
 {
view_images_monitor_set(vd);
view_obj_min_update(vd);
@@ -382,6 +384,7 @@ update_edj_file_internal(view_data *vd)
dummy_obj_update(vd->layout);
wireframes_obj_update(vd->layout);
view_mirror_mode_update(vd);
+
if (vd->changed_part.part)
edje_edit_part_selected_state_set(vd->layout, vd->changed_part.part,
  vd->changed_part.desc,
@@ -389,10 +392,25 @@ update_edj_file_internal(view_data *vd)
 
view_obj_parts_callbacks_set(vd);
wireframes_obj_callbacks_set(vd->layout);
+
+   if (vd->view_update_call_request)
+ {
+evas_object_smart_callback_call(vd->enventor,
+SIG_LIVE_VIEW_UPDATED, vd->it);
+vd->view_update_call_request = EINA_FALSE;
+ }
+}
+
+static void
+update_edj_file_internal(view_data *vd)
+{
+   vd->view_update_call_request = EINA_TRUE;
vd->edj_reload_need = EINA_FALSE;
vd->file_set_finished = EINA_TRUE;
 
-   evas_object_smart_callback_call(vd->enventor, SIG_LIVE_VIEW_UPDATED, 
vd->it);
+   if (!vd->activated) return;
+
+   update_view(vd);
 }
 
 static Eina_Bool
@@ -431,8 +449,11 @@ exe_del_event_cb(void *data, int type EINA_UNUSED, void 
*event EINA_UNUSED)
//Failed to load edj? I have no idea. Try again.
if (!edje_object_file_set(vd->layout, build_edj_path_get(), vd->group_name))
  {
-dummy_obj_update(vd->layout);
-wireframes_obj_update(vd->layout);
+if (vd->activated)
+  {
+ dummy_obj_update(vd->layout);
+ wireframes_obj_update(vd->layout);
+  }
 ecore_timer_del(vd->update_edj_timer);
 vd->file_set_finished = EINA_FALSE;
 vd->update_edj_timer = ecore_timer_add(0.25, update_edj_file, vd);
@@ -949,3 +970,16 @@ view_item_get(view_data *vd)
if (!vd) return NULL;
return vd->it;
 }
+
+void
+view_activated_set(view_data *vd, Eina_Bool activated)
+{
+   if (!vd) return;
+   activated = !!activated;
+   if (activated == vd->activated) return;
+   vd->activated = activated;
+   if (!activated) return;
+
+   update_view(vd);
+}
+
diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h
index 59c81db..c0b8248 100644
--- a/src/lib/enventor_private.h
+++ b/src/lib/enventor_private.h
@@ -220,6 +220,7 @@ void view_part_state_set(view_data *vd, const char *part, 
const char *descriptio
 void view_obj_need_reload_set(view_data *vd);
 Edje_Part_Type view_part_type_get(view_data *vd, const char *part);
 Enventor_Item *view_item_get(view_data *vd);
+void view_activated_set(view_data *vd, Eina_Bool activated);
 
 /* template */
 Eina_Bool template_part_insert(edit_data *ed, Edje_Part_Type part_type, 
Enventor_Template_Insert_Type insert_type, Eina_Bool fixed_w, Eina_Bool 
fixed_h, char *rel1_x_to, char *rel1_y_to, char *rel2_x_to, char *rel2_y_to, 
float align_x, float align_y, int min_w, int 

[EGIT] [tools/enventor] master 01/01: edj_mgr: reduce the edj view caching time to 5 min.

2016-08-17 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=fa929055a2902ad205028a294a624e1fffbec58a

commit fa929055a2902ad205028a294a624e1fffbec58a
Author: Hermet Park 
Date:   Wed Aug 17 23:44:58 2016 +0900

edj_mgr: reduce the edj view caching time to 5 min.
---
 src/lib/edj_mgr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/edj_mgr.c b/src/lib/edj_mgr.c
index fd560cd..2831d22 100644
--- a/src/lib/edj_mgr.c
+++ b/src/lib/edj_mgr.c
@@ -5,7 +5,7 @@
 #include 
 #include "enventor_private.h"
 
-const double VIEW_CACHING_TIME = 60 * 30;
+const double VIEW_CACHING_TIME = 60 * 5;
 
 typedef struct edj_data_s
 {

-- 




[EGIT] [core/efl] efl-1.18 02/02: examples: evas: ensure filter example lua files land in tarball

2016-08-17 Thread Stefan Schmidt
stefan pushed a commit to branch efl-1.18.

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

commit 641e3a25fc1e00487863e7c611508c4359110748
Author: Stefan Schmidt 
Date:   Wed Aug 17 14:37:56 2016 +0200

examples: evas: ensure filter example lua files land in tarball

These are needed for a make doc run and have been missing the tarball 
before.

@fix
---
 src/examples/evas/Makefile.am | 9 +
 1 file changed, 9 insertions(+)

diff --git a/src/examples/evas/Makefile.am b/src/examples/evas/Makefile.am
index 05ef128..7f660f7 100644
--- a/src/examples/evas/Makefile.am
+++ b/src/examples/evas/Makefile.am
@@ -450,6 +450,15 @@ shooter/assets/models/snake.md2 \
 shooter/assets/models/soldier_jump.md2 \
 shooter/assets/models/soldier.md2 \
 shooter/assets/models/tommy.ply \
+filters/filter_blend.lua \
+filters/filter_blur.lua \
+filters/filter_bump.lua \
+filters/filter_curve.lua \
+filters/filter_example_1.lua \
+filters/filter_grow.lua \
+filters/filter_mask.lua \
+filters/filter_padding.lua \
+filters/filter_transform.lua \
 Makefile.examples \
 evas-common.h
 

-- 




[EGIT] [core/efl] master 01/02: doc: put shot.sh into dist to allow make doc run from tarball

2016-08-17 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit dbf9d1d4a9e5d336c52fae93c6b4a3e0a4de8ce8
Author: Stefan Schmidt 
Date:   Wed Aug 17 14:35:15 2016 +0200

doc: put shot.sh into dist to allow make doc run from tarball

This was missing in the release tarballs before breaking a make doc run from
them.

@fix
---
 doc/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/doc/Makefile.am b/doc/Makefile.am
index 26b7df9..17adf52 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -245,7 +245,8 @@ eo_tutorial.dox \
 ephysics_examples.dox \
 evas_examples.dox \
 main.dox \
-pkgconfig.dox
+pkgconfig.dox \
+shot.sh
 
 include images.mk
 

-- 




[EGIT] [core/efl] efl-1.18 01/02: doc: put shot.sh into dist to allow make doc run from tarball

2016-08-17 Thread Stefan Schmidt
stefan pushed a commit to branch efl-1.18.

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

commit 86f1cb9b4e43658c0244291c46db4adba670527e
Author: Stefan Schmidt 
Date:   Wed Aug 17 14:35:15 2016 +0200

doc: put shot.sh into dist to allow make doc run from tarball

This was missing in the release tarballs before breaking a make doc run from
them.

@fix
---
 doc/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/doc/Makefile.am b/doc/Makefile.am
index 26b7df9..17adf52 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -245,7 +245,8 @@ eo_tutorial.dox \
 ephysics_examples.dox \
 evas_examples.dox \
 main.dox \
-pkgconfig.dox
+pkgconfig.dox \
+shot.sh
 
 include images.mk
 

-- 




[EGIT] [core/efl] master 02/02: examples: evas: ensure filter example lua files land in tarball

2016-08-17 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 53b6ac1d3ab97a0ec93dafe65c1e557573d3d932
Author: Stefan Schmidt 
Date:   Wed Aug 17 14:37:56 2016 +0200

examples: evas: ensure filter example lua files land in tarball

These are needed for a make doc run and have been missing the tarball 
before.

@fix
---
 src/examples/evas/Makefile.am | 9 +
 1 file changed, 9 insertions(+)

diff --git a/src/examples/evas/Makefile.am b/src/examples/evas/Makefile.am
index 05ef128..7f660f7 100644
--- a/src/examples/evas/Makefile.am
+++ b/src/examples/evas/Makefile.am
@@ -450,6 +450,15 @@ shooter/assets/models/snake.md2 \
 shooter/assets/models/soldier_jump.md2 \
 shooter/assets/models/soldier.md2 \
 shooter/assets/models/tommy.ply \
+filters/filter_blend.lua \
+filters/filter_blur.lua \
+filters/filter_bump.lua \
+filters/filter_curve.lua \
+filters/filter_example_1.lua \
+filters/filter_grow.lua \
+filters/filter_mask.lua \
+filters/filter_padding.lua \
+filters/filter_transform.lua \
 Makefile.examples \
 evas-common.h
 

-- 




[EGIT] [tools/enventor] master 01/01: theme: just modify the file permission.

2016-08-17 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=3d610f189895e5f6515b1fa9378bd1c493f2526e

commit 3d610f189895e5f6515b1fa9378bd1c493f2526e
Author: Hermet Park 
Date:   Wed Aug 17 23:30:17 2016 +0900

theme: just modify the file permission.

keep the file permission consistency.
---
 data/themes/default/images/help_bg.png | Bin
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/data/themes/default/images/help_bg.png 
b/data/themes/default/images/help_bg.png
old mode 100755
new mode 100644

-- 




[EGIT] [core/enlightenment] master 01/01: e_comp_wl: break from meaningless loop

2016-08-17 Thread JengHyun Kang
discomfitor pushed a commit to branch master.

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

commit dca5cc2fa05d713621c673e0f7f6766b2c5de7a0
Author: JengHyun Kang 
Date:   Wed Aug 17 10:22:37 2016 -0400

e_comp_wl: break from meaningless loop

Summary:
kbd.keys are only added from e_comp_wl_key_down().
 And in that function, duplicated keys are not add in the list.
 So only one key is going to be in the list.

Test Plan: Watch kbd.keys list during key press / release.

Reviewers: raster, devilhorns, zmike!, ManMower

Reviewed By: ManMower

Subscribers: duna.oh, input.hacker, cedric

Differential Revision: https://phab.enlightenment.org/D4230
---
 src/bin/e_comp_wl.c | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 4507759..79689d2 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -3235,7 +3235,13 @@ e_comp_wl_key_up(Ecore_Event_Key *ev)
 
end = (uint32_t *)e_comp_wl->kbd.keys.data + (e_comp_wl->kbd.keys.size / 
sizeof(*k));
for (k = e_comp_wl->kbd.keys.data; k < end; k++)
- if (*k == keycode) *k = *--end;
+ {
+if (*k == keycode)
+  {
+ *k = *--end;
+ break;
+  }
+ }
 
e_comp_wl->kbd.keys.size =
  (const char *)end - (const char *)e_comp_wl->kbd.keys.data;

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 01/01: e_comp_wl: break from meaningless loop

2016-08-17 Thread JengHyun Kang
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit dce955a1235bae1c63e91e74f2f56a41bca33db5
Author: JengHyun Kang 
Date:   Wed Aug 17 10:22:37 2016 -0400

e_comp_wl: break from meaningless loop

Summary:
kbd.keys are only added from e_comp_wl_key_down().
 And in that function, duplicated keys are not add in the list.
 So only one key is going to be in the list.

Test Plan: Watch kbd.keys list during key press / release.

Reviewers: raster, devilhorns, zmike!, ManMower

Reviewed By: ManMower

Subscribers: duna.oh, input.hacker, cedric

Differential Revision: https://phab.enlightenment.org/D4230
---
 src/bin/e_comp_wl.c | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 718c4a8..ffe0314 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -3235,7 +3235,13 @@ e_comp_wl_key_up(Ecore_Event_Key *ev)
 
end = (uint32_t *)e_comp_wl->kbd.keys.data + (e_comp_wl->kbd.keys.size / 
sizeof(*k));
for (k = e_comp_wl->kbd.keys.data; k < end; k++)
- if (*k == keycode) *k = *--end;
+ {
+if (*k == keycode)
+  {
+ *k = *--end;
+ break;
+  }
+ }
 
e_comp_wl->kbd.keys.size =
  (const char *)end - (const char *)e_comp_wl->kbd.keys.data;

-- 




[EGIT] [tools/enventor] master 01/01: enable file browser, file tab in default. set initalize base window size.

2016-08-17 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=026728b042b65b8b654581689f7de9dac1ccf774

commit 026728b042b65b8b654581689f7de9dac1ccf774
Author: Hermet Park 
Date:   Wed Aug 17 22:53:14 2016 +0900

enable file browser, file tab in default.
set initalize base window size.
---
 data/themes/default/layout_common.edc | 2 +-
 src/bin/base_gui.c| 1 +
 src/bin/config_data.c | 4 ++--
 src/include/common.h  | 4 +++-
 4 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/data/themes/default/layout_common.edc 
b/data/themes/default/layout_common.edc
index b1d103e..8b03739 100644
--- a/data/themes/default/layout_common.edc
+++ b/data/themes/default/layout_common.edc
@@ -35,7 +35,7 @@ group { "fileselector_layout";
  clip_to: "clipper";
  desc {
 min: 650 435;
-max: 600 435;
+max: 650 435;
 fixed: 1 1;
 image.normal: "frame_bg.png";
 image.border: 10 10 10 10;
diff --git a/src/bin/base_gui.c b/src/bin/base_gui.c
index 9c49e08..4f69433 100644
--- a/src/bin/base_gui.c
+++ b/src/bin/base_gui.c
@@ -382,6 +382,7 @@ base_gui_show(void)
base_data *bd = g_bd;
EINA_SAFETY_ON_NULL_RETURN(bd);
 
+   evas_object_resize(bd->win, INIT_WIN_W, INIT_WIN_H);
evas_object_show(bd->win);
 }
 
diff --git a/src/bin/config_data.c b/src/bin/config_data.c
index 4ac403c..658ef28 100644
--- a/src/bin/config_data.c
+++ b/src/bin/config_data.c
@@ -196,10 +196,10 @@ config_load(void)
 cd->auto_complete = EINA_TRUE;
 cd->version = ENVENTOR_CONFIG_VERSION;
 cd->smart_undo_redo = EINA_FALSE;
-cd->file_browser = EINA_FALSE;
+cd->file_browser = EINA_TRUE;
 cd->edc_navigator = EINA_TRUE;
 cd->red_alert = EINA_TRUE;
-cd->file_tab = EINA_FALSE;
+cd->file_tab = EINA_TRUE;
  }
 
g_cd = cd;
diff --git a/src/include/common.h b/src/include/common.h
index 50e16f9..613f8f3 100644
--- a/src/include/common.h
+++ b/src/include/common.h
@@ -54,10 +54,12 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
 #define REL1_Y 0.25f
 #define REL2_X 0.75f
 #define REL2_Y 0.75f
+#define INIT_WIN_W 1100
+#define INIT_WIN_H 600
 
 #define ROUNDING(x, dig) (floor((x) * pow(10, dig) + 0.5) / pow(10, dig))
 
-#define ENVENTOR_CONFIG_VERSION 12
+#define ENVENTOR_CONFIG_VERSION 13
 
 #define EVENT_KEY_MODIFIER_CHECK(NAME, MASK) \
   ((MASK & ECORE_EVENT_MODIFIER_##NAME) && \

-- 




[EGIT] [tools/enventor] master 01/01: statusbar: disable focus for resize slider bar

2016-08-17 Thread Taehyub Kim
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=6dbe2bc4e65cecb8e89df6b6db4b387878939ec2

commit 6dbe2bc4e65cecb8e89df6b6db4b387878939ec2
Author: Taehyub Kim 
Date:   Wed Aug 17 22:30:39 2016 +0900

statusbar: disable focus for resize slider bar

Summary: disable focus for resize slider bar

Test Plan:
1. launch enventor
2. show resize ctxpopup using status bar
3. check the focus is disable

Reviewers: Hermet, Jaehyun_Cho, NikaWhite, bowonryu

Differential Revision: https://phab.enlightenment.org/D4232
---
 src/bin/statusbar.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/statusbar.c b/src/bin/statusbar.c
index 08fb1f2..913b6e9 100644
--- a/src/bin/statusbar.c
+++ b/src/bin/statusbar.c
@@ -144,6 +144,7 @@ view_resize_slider_layout_create(Evas_Object *parent, const 
char *type,
 
//Slider
Evas_Object *slider = elm_slider_add(layout);
+   elm_object_focus_allow_set(slider, EINA_FALSE);
elm_slider_span_size_set(slider, 120);
elm_slider_indicator_show_set(slider, EINA_FALSE);
double step = 1 / (double) (3840 - 1);

-- 




[EGIT] [tools/enventor] master 01/01: edc_editor: add NULL checking in edit_cursor_double_clicked_cb

2016-08-17 Thread Taehyub Kim
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=7e1a4c00a7b5a846f17c02b44267a71f241a26c9

commit 7e1a4c00a7b5a846f17c02b44267a71f241a26c9
Author: Taehyub Kim 
Date:   Wed Aug 17 22:29:31 2016 +0900

edc_editor: add NULL checking in edit_cursor_double_clicked_cb

Summary:
add NULL checking in edit_cursor_double_clicked_cb
@fix

Reviewers: Jaehyun_Cho, NikaWhite, bowonryu, Hermet

Reviewed By: Hermet

Differential Revision: https://phab.enlightenment.org/D4234
---
 src/lib/edc_editor.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 5925bf8..ecb63ad 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -729,6 +729,8 @@ edit_cursor_double_clicked_cb(void *data, Evas_Object *obj,
if (!selected) return;
 
selected = elm_entry_markup_to_utf8(selected);
+   if (!selected) return;
+
if (selected[0] == '\"')
  {
 free(selected);

-- 




[EGIT] [tools/enventor] master 01/01: auto_comp: apply strncpy in context_lexem_thread_cb

2016-08-17 Thread Taehyub Kim
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=950734d000d68066d6717db8bafb0b2ace5fc398

commit 950734d000d68066d6717db8bafb0b2ace5fc398
Author: Taehyub Kim 
Date:   Wed Aug 17 22:28:16 2016 +0900

auto_comp: apply strncpy in context_lexem_thread_cb

Summary:
apply strncpy in context_lexem_thread_cb
@fix

Reviewers: Jaehyun_Cho, NikaWhite, bowonryu, Hermet

Reviewed By: Hermet

Differential Revision: https://phab.enlightenment.org/D4236
---
 src/lib/auto_comp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index c7a030c..f99277b 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -166,7 +166,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread)
 
if (!edit_is_main_file(td->ed))
  {
-strcpy(stack[depth], "collections");
+strncpy(stack[depth], "collections", MAX_KEYWORD_LENGTH);
 depth++;
  }
 

-- 




[EGIT] [tools/enventor] master 01/01: syntax_color: add NULL checking in macro_key_push function

2016-08-17 Thread Taehyub Kim
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=a47b12bd53606cbd155e79c447a363b6820b5433

commit a47b12bd53606cbd155e79c447a363b6820b5433
Author: Taehyub Kim 
Date:   Wed Aug 17 22:22:53 2016 +0900

syntax_color: add NULL checking in macro_key_push function

Summary: add NULL checking in macro_key_push function

Reviewers: Jaehyun_Cho, bowonryu, NikaWhite, Hermet

Reviewed By: NikaWhite, Hermet

Differential Revision: https://phab.enlightenment.org/D4235
---
 src/lib/syntax_color.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/lib/syntax_color.c b/src/lib/syntax_color.c
index d56bacd..7d02787 100644
--- a/src/lib/syntax_color.c
+++ b/src/lib/syntax_color.c
@@ -191,7 +191,11 @@ macro_key_push(color_data *cd, char *str)
 
//cutoff "()" from the macro name
char *cut = strchr(key, '(');
-   if (cut) key = strndup(str, cut - str);
+   if (cut)
+ {
+key = strndup(str, cut - str);
+if (!key) return;
+ }
 
char tmp[2];
tmp[0] = key[0];

-- 




[EGIT] [tools/enventor] master 01/01: enventor_smart: add NULL checking

2016-08-17 Thread Taehyub Kim
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=1665ac9ba6e8b534c13f9a179c19e2eeb61abdc2

commit 1665ac9ba6e8b534c13f9a179c19e2eeb61abdc2
Author: Taehyub Kim 
Date:   Wed Aug 17 22:21:16 2016 +0900

enventor_smart: add NULL checking

Summary:
add NULL checking in syntax_color_set and syntax_color_get API
@fix

Reviewers: Jaehyun_Cho, NikaWhite, bowonryu, Hermet

Reviewed By: Hermet

Differential Revision: https://phab.enlightenment.org/D4233
---
 src/lib/enventor_smart.c | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index 9981a60..38366bf 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -743,7 +743,10 @@ _enventor_object_syntax_color_set(Eo *obj EINA_UNUSED,
 
if ((color_type < ENVENTOR_SYNTAX_COLOR_STRING) ||
(color_type >= ENVENTOR_SYNTAX_COLOR_LAST))
- EINA_LOG_ERR("Invalid color_type(%d)", color_type);
+ {
+EINA_LOG_ERR("Invalid color_type(%d)", color_type);
+return;
+ }
 
eina_stringshare_del(pd->text_color_val[color_type]);
pd->text_color_val[color_type] = eina_stringshare_add(val);
@@ -766,7 +769,10 @@ _enventor_object_syntax_color_get(Eo *obj EINA_UNUSED,
 {
if ((color_type < ENVENTOR_SYNTAX_COLOR_STRING) ||
(color_type >= ENVENTOR_SYNTAX_COLOR_LAST))
- EINA_LOG_ERR("Invalid color_type(%d)", color_type);
+ {
+EINA_LOG_ERR("Invalid color_type(%d)", color_type);
+return NULL;
+ }
 
//Return overriden color values or defaults.
if (pd->text_color_val[color_type])

-- 




Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support

2016-08-17 Thread Davide Andreoli
2016-08-17 1:42 GMT+02:00 Carsten Haitzler :

> On Tue, 16 Aug 2016 20:16:04 -0300 Iván Briano 
> said:
>
> > On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote:
> > > On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz
> > >  said:
> > >
> > > no worries. it's the same for SSH_ASKPASS too - you still get the
> normal tty
> > > password req is there is a tty. if there is not both sudo and ssh can
> fail
> > > (unless you have a no-password ssh key or sudo is configured for
> nopasswd
> > > for your user). so these work as normal in the no password cases. in
> the
> > > cases you do need a password both will fail completely. this adds this
> > > little utility so these don't hail anymore if they are in .desktop
> file or
> > > other command/app/script you launch from within e... :) overall this
> makes
> > > e more functional... thus i don't see a problem in ALWAYS setting the
> env
> > > var. if someone dislikes this they can override the env vars or unset
> them
> > > in scripts. and even in e's environment var settings since e_env_init
> is
> > > called after these env vars are set... :) but for the vast majority of
> > > people .. they don't need this or likely want it.. and things went
> from not
> > > working to working out of the box with no effort on their part. :)
> > >
> > > some small things to improve in e here. i'll poke around some other
> small
> > > things here and there as i get the time. :)
> >
> > Now explain the do { } while(0). If all you wanted to do was indent the
> > blocks hierarchically, why not just { }? I had to pay to download all
> > those extra characters.
>
> technically  {} is not legal. it works. thats why so many macros in our
> public
> headers have do { } while (0); because a { } may not work.
>
> http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for
>
> it's a habit i've grown from making sure macros work. yes - using it to
> indent
> the code so you can clearly see child/parent relationships in widgets. i'm
> trying this out as a way to make things look more readable when going over
> gui

layout code.
>

I really found that code not readable at all.
While reading the code, at each "do" I need to search the matching
"while" to see if you really want to repeat that code block or not :/



>
> > >
> > > > Oh okay, thanks for clearing that up!
> > > >
> > > > On Mon, Aug 15, 2016 at 7:16 PM Carsten Haitzler <
> ras...@rasterman.com>
> > > > wrote:
> > > >
> > > > > On Mon, 15 Aug 2016 15:08:53 + Mike Blumenkrantz
> > > > >  said:
> > > > >
> > > > > > On Sat, Aug 13, 2016 at 4:39 AM Carsten Haitzler
> > > > > >  wrote:
> > > > > >
> > > > > > > raster pushed a commit to branch master.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > http://git.enlightenment.org/core/enlightenment.git/commit/?id=
> 8d780c7fb5ccb04c49c98370c9e4ec7a2440bbb1
> > > > > > >
> > > > > > > commit 8d780c7fb5ccb04c49c98370c9e4ec7a2440bbb1
> > > > > > > Author: Carsten Haitzler (Rasterman) 
> > > > > > > Date:   Sat Aug 13 17:39:17 2016 +0900
> > > > > > >
> > > > > > > e sudo gui support - add askpass util for sudo askpass
> support
> > > > > > >
> > > > > > > this gives e by default sudo gui support with an askpass
> util
> > > > > > > that sudo can use as well as setting the env var correctly so
> it
> > > > > > > will be used by sudo.
> > > > > > >
> > > > > > > @feature
> > > > > > > ---
> > > > > > >  configure.ac   |   4 +
> > > > > > >  data/desktop/Makefile.mk   |   3 +-
> > > > > > >  data/desktop/enlightenment_askpass.desktop |  12 +++
> > > > > > >  data/icons/Makefile.mk |   6 ++
> > > > > > >  data/icons/enlightenment-askpass.png   | Bin 0 -> 696
> bytes
> > > > > > >  src/bin/.gitignore |   1 +
> > > > > > >  src/bin/Makefile.mk|   9 +-
> > > > > > >  src/bin/e_askpass_main.c   | 142
> > > > > > > +
> > > > > > >  src/bin/e_main.c   |   2 +
> > > > > > >  9 files changed, 177 insertions(+), 2 deletions(-)
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > > > diff --git a/src/bin/e_main.c b/src/bin/e_main.c
> > > > > > > index 28ed4bc..4c705fc 100644
> > > > > > > --- a/src/bin/e_main.c
> > > > > > > +++ b/src/bin/e_main.c
> > > > > > > @@ -325,6 +325,8 @@ main(int argc, char **argv)
> > > > > > > e_util_env_set("E_RESTART_OK", NULL);
> > > > > > > e_util_env_set("PANTS", "ON");
> > > > > > > e_util_env_set("DESKTOP", "Enlightenment");
> > > > > > > +   snprintf(buff, sizeof(buff), "%s/enlightenment_askpass",
> > > > > > > e_prefix_bin_get());
> > > > > > > +   e_util_env_set("SUDO_ASKPASS", buff);
> > > > > > > TS("Environment Variables Done");
> > > > > > >
> > > > > > > /* 

[EGIT] [core/efl] master 01/01: docs: move all of serializers to doctree

2016-08-17 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 2bee9169d9e143a2e13b19488534b52bc0e8c3b9
Author: Daniel Kolesa 
Date:   Wed Aug 17 13:50:01 2016 +0100

docs: move all of serializers to doctree
---
 src/Makefile_Elua.am |   1 -
 src/scripts/elua/apps/docgen/doctree.lua | 151 ++
 src/scripts/elua/apps/docgen/keyref.lua  |   4 +-
 src/scripts/elua/apps/docgen/serializers.lua | 153 ---
 src/scripts/elua/apps/gendoc.lua |   5 +-
 5 files changed, 154 insertions(+), 160 deletions(-)

diff --git a/src/Makefile_Elua.am b/src/Makefile_Elua.am
index ace5d6f..d743e6c 100644
--- a/src/Makefile_Elua.am
+++ b/src/Makefile_Elua.am
@@ -68,7 +68,6 @@ eluadocgendir = $(datadir)/elua/apps/docgen
 eluadocgen_DATA = \
scripts/elua/apps/docgen/doctree.lua \
scripts/elua/apps/docgen/keyref.lua \
-   scripts/elua/apps/docgen/serializers.lua \
scripts/elua/apps/docgen/stats.lua \
scripts/elua/apps/docgen/util.lua \
scripts/elua/apps/docgen/writer.lua
diff --git a/src/scripts/elua/apps/docgen/doctree.lua 
b/src/scripts/elua/apps/docgen/doctree.lua
index 1531d98..f10a819 100644
--- a/src/scripts/elua/apps/docgen/doctree.lua
+++ b/src/scripts/elua/apps/docgen/doctree.lua
@@ -2,6 +2,7 @@ local util = require("util")
 
 local eolian = require("eolian")
 
+local keyref = require("docgen.keyref")
 local dutil = require("docgen.util")
 
 -- writer has to be loaded late to prevent cycles
@@ -739,6 +740,18 @@ M.type_cstr_get = function(tp, suffix)
 end
 end
 
+local add_typedecl_attrs = function(tp, buf)
+if tp:is_extern() then
+buf[#buf + 1] = "@extern "
+end
+local ffunc = tp:free_func_get()
+if ffunc then
+buf[#buf + 1] = "@free("
+buf[#buf + 1] = ffunc
+buf[#buf + 1] = ") "
+end
+end
+
 M.Typedecl = Node:clone {
 UNKNOWN = eolian.typedecl_type.UNKNOWN,
 STRUCT = eolian.typedecl_type.STRUCT,
@@ -925,6 +938,144 @@ M.Typedecl = Node:clone {
 return nil
 end
 return M.Typedecl(v)
+end,
+
+-- utils
+
+serialize = function(self)
+local tpt = self:type_get()
+if tpt == self.UNKNOWN then
+error("unknown typedecl: " .. self:full_name_get())
+elseif tpt == self.STRUCT or
+   tpt == self.STRUCT_OPAQUE then
+local buf = { "struct " }
+add_typedecl_attrs(self, buf)
+buf[#buf + 1] = self:full_name_get()
+if tpt == self.STRUCT_OPAQUE then
+buf[#buf + 1] = ";"
+return table.concat(buf)
+end
+local fields = self:struct_fields_get()
+if #fields == 0 then
+buf[#buf + 1] = " {}"
+return table.concat(buf)
+end
+buf[#buf + 1] = " {\n"
+for i, fld in ipairs(fields) do
+buf[#buf + 1] = ""
+buf[#buf + 1] = fld:name_get()
+buf[#buf + 1] = ": "
+buf[#buf + 1] = fld:type_get():serialize()
+buf[#buf + 1] = ";\n"
+end
+buf[#buf + 1] = "}"
+return table.concat(buf)
+elseif tpt == self.ENUM then
+local buf = { "enum " }
+add_typedecl_attrs(self, buf)
+buf[#buf + 1] = self:full_name_get()
+local fields = self:enum_fields_get()
+if #fields == 0 then
+buf[#buf + 1] = " {}"
+return table.concat(buf)
+end
+buf[#buf + 1] = " {\n"
+for i, fld in ipairs(fields) do
+buf[#buf + 1] = ""
+buf[#buf + 1] = fld:name_get()
+local val = fld:value_get()
+if val then
+buf[#buf + 1] = ": "
+buf[#buf + 1] = val:serialize()
+end
+if i == #fields then
+buf[#buf + 1] = "\n"
+else
+buf[#buf + 1] = ",\n"
+end
+end
+buf[#buf + 1] = "}"
+return table.concat(buf)
+elseif tpt == self.ALIAS then
+local buf = { "type " }
+add_typedecl_attrs(self, buf)
+buf[#buf + 1] = self:full_name_get()
+buf[#buf + 1] = ": "
+buf[#buf + 1] = self:base_type_get():serialize()
+buf[#buf + 1] = ";"
+return table.concat(buf)
+end
+error("unhandled typedecl type: " .. tpt)
+end,
+
+serialize_c = function(self)
+local tpt = self:type_get()
+if tpt == self.UNKNOWN then
+error("unknown typedecl: " .. self:full_name_get())
+elseif tpt == self.STRUCT or
+   tpt == self.STRUCT_OPAQUE 

[EGIT] [core/efl] master 01/01: docs: move type serializer into doctree

2016-08-17 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit d11cc5ddb578f763e73e3a04f7f3610d213d4a5c
Author: Daniel Kolesa 
Date:   Wed Aug 17 13:42:29 2016 +0100

docs: move type serializer into doctree
---
 src/scripts/elua/apps/docgen/doctree.lua | 56 +++
 src/scripts/elua/apps/docgen/serializers.lua | 58 +---
 src/scripts/elua/apps/gendoc.lua |  6 +--
 3 files changed, 61 insertions(+), 59 deletions(-)

diff --git a/src/scripts/elua/apps/docgen/doctree.lua 
b/src/scripts/elua/apps/docgen/doctree.lua
index ef412fa..1531d98 100644
--- a/src/scripts/elua/apps/docgen/doctree.lua
+++ b/src/scripts/elua/apps/docgen/doctree.lua
@@ -573,6 +573,23 @@ M.EnumField = Node:clone {
 end
 }
 
+local wrap_type_attrs = function(tp, str)
+if tp:is_const() then
+str = "const(" .. str .. ")"
+end
+if tp:is_own() then
+str = "own(" .. str .. ")"
+end
+local ffunc = tp:free_func_get()
+if ffunc then
+str = "free(" .. str .. ", " .. ffunc .. ")"
+end
+if tp:is_ref() then
+str = "ref(" .. str .. ")"
+end
+return str
+end
+
 M.Type = Node:clone {
 UNKNOWN = eolian.type_type.UNKNOWN,
 VOID = eolian.type_type.VOID,
@@ -667,6 +684,45 @@ M.Type = Node:clone {
 
 free_func_get = function(self)
 return self.type:free_func_get()
+end,
+
+-- utils
+
+serialize = function(self)
+local tpt = self:type_get()
+if tpt == self.UNKNOWN then
+error("unknown type: " .. self:full_name_get())
+elseif tpt == self.VOID then
+return wrap_type_attrs(self, "void")
+elseif tpt == self.UNDEFINED then
+return wrap_type_attrs(self, "__undefined_type")
+elseif tpt == self.REGULAR or tpt == self.CLASS then
+return wrap_type_attrs(self, self:full_name_get())
+elseif tpt == self.COMPLEX then
+local stypes = {}
+local stp = self:base_type_get()
+while stp do
+stypes[#stypes + 1] = stp:serialize()
+stp = stp:next_type_get()
+end
+return wrap_type_attrs(self, self:full_name_get() .. "<"
+.. table.concat(stypes, ", ") .. ">")
+elseif tpt == self.POINTER then
+local btp = self:base_type_get()
+local suffix = " *"
+if btp:type_get() == self.POINTER then
+suffix = "*"
+end
+return wrap_type_attrs(self, btp:serialize() .. suffix)
+elseif tpt == self.STATIC_ARRAY then
+return wrap_type_attrs(self, "static_array<"
+.. self:base_type_get():serialize() .. ", "
+.. self:array_size_get() .. ">")
+elseif tpt == self.TERMINATED_ARRAY then
+return wrap_type_attrs(self, "terminated_array<"
+.. self:base_type_get():serialize() .. ">")
+end
+error("unhandled type type: " .. tpt)
 end
 }
 
diff --git a/src/scripts/elua/apps/docgen/serializers.lua 
b/src/scripts/elua/apps/docgen/serializers.lua
index c82de93..bc2b78c 100644
--- a/src/scripts/elua/apps/docgen/serializers.lua
+++ b/src/scripts/elua/apps/docgen/serializers.lua
@@ -3,60 +3,6 @@ local dtree = require("docgen.doctree")
 
 local M = {}
 
-local wrap_type_attrs = function(tp, str)
-if tp:is_const() then
-str = "const(" .. str .. ")"
-end
-if tp:is_own() then
-str = "own(" .. str .. ")"
-end
-local ffunc = tp:free_func_get()
-if ffunc then
-str = "free(" .. str .. ", " .. ffunc .. ")"
-end
-if tp:is_ref() then
-str = "ref(" .. str .. ")"
-end
-return str
-end
-
-M.get_type_str = function(tp)
-local tpt = tp:type_get()
-if tpt == tp.UNKNOWN then
-error("unknown type: " .. tp:full_name_get())
-elseif tpt == tp.VOID then
-return wrap_type_attrs(tp, "void")
-elseif tpt == tp.UNDEFINED then
-return wrap_type_attrs(tp, "__undefined_type")
-elseif tpt == tp.REGULAR or tpt == tp.CLASS then
-return wrap_type_attrs(tp, tp:full_name_get())
-elseif tpt == tp.COMPLEX then
-local stypes = {}
-local stp = tp:base_type_get()
-while stp do
-stypes[#stypes + 1] = M.get_type_str(stp)
-stp = stp:next_type_get()
-end
-return wrap_type_attrs(tp, tp:full_name_get() .. "<"
-.. table.concat(stypes, ", ") .. ">")
-elseif tpt == tp.POINTER then
-local btp = tp:base_type_get()
-local suffix = " *"
-if btp:type_get() == tp.POINTER then
-suffix = "*"
-end
-return wrap_type_attrs(tp, M.get_type_str(btp) .. suffix)
-elseif tpt == tp.STATIC_ARRAY then
-return wrap_type_attrs(tp, "static_array<"
-.. 

[EGIT] [core/efl] master 01/01: docs: move type cstr retrieval to doctree

2016-08-17 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 066a2f9fd7e886ce25f36857217c8bccb1f93aff
Author: Daniel Kolesa 
Date:   Wed Aug 17 13:34:20 2016 +0100

docs: move type cstr retrieval to doctree
---
 src/scripts/elua/apps/docgen/doctree.lua | 13 +
 src/scripts/elua/apps/docgen/serializers.lua | 17 ++---
 src/scripts/elua/apps/gendoc.lua |  8 
 3 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/src/scripts/elua/apps/docgen/doctree.lua 
b/src/scripts/elua/apps/docgen/doctree.lua
index 5a7077a..ef412fa 100644
--- a/src/scripts/elua/apps/docgen/doctree.lua
+++ b/src/scripts/elua/apps/docgen/doctree.lua
@@ -670,6 +670,19 @@ M.Type = Node:clone {
 end
 }
 
+M.type_cstr_get = function(tp, suffix)
+tp = tp or "void"
+local ct = (type(tp) == "string") and tp or tp:c_type_get()
+if not suffix then
+return ct
+end
+if ct:sub(#ct) == "*" then
+return ct .. suffix
+else
+return ct .. " " .. suffix
+end
+end
+
 M.Typedecl = Node:clone {
 UNKNOWN = eolian.typedecl_type.UNKNOWN,
 STRUCT = eolian.typedecl_type.STRUCT,
diff --git a/src/scripts/elua/apps/docgen/serializers.lua 
b/src/scripts/elua/apps/docgen/serializers.lua
index b480a50..c82de93 100644
--- a/src/scripts/elua/apps/docgen/serializers.lua
+++ b/src/scripts/elua/apps/docgen/serializers.lua
@@ -3,19 +3,6 @@ local dtree = require("docgen.doctree")
 
 local M = {}
 
-M.get_ctype_str = function(tp, suffix)
-tp = tp or "void"
-local ct = (type(tp) == "string") and tp or tp:c_type_get()
-if not suffix then
-return ct
-end
-if ct:sub(#ct) == "*" then
-return ct .. suffix
-else
-return ct .. " " .. suffix
-end
-end
-
 local wrap_type_attrs = function(tp, str)
 if tp:is_const() then
 str = "const(" .. str .. ")"
@@ -170,7 +157,7 @@ M.get_typedecl_cstr = function(tp)
 buf[#buf + 1] = " {\n"
 for i, fld in ipairs(fields) do
 buf[#buf + 1] = ""
-buf[#buf + 1] = M.get_ctype_str(fld:type_get(), fld:name_get())
+buf[#buf + 1] = dtree.type_cstr_get(fld:type_get(), fld:name_get())
 buf[#buf + 1] = ";\n"
 end
 buf[#buf + 1] = "} " .. fulln .. ";"
@@ -212,7 +199,7 @@ M.get_typedecl_cstr = function(tp)
 elseif tpt == dtree.Typedecl.ALIAS then
 local fulln = tp:full_name_get():gsub("%.", "_");
 keyref.add(fulln, "c")
-return "typedef " .. M.get_ctype_str(tp:base_type_get(), fulln) .. ";"
+return "typedef " .. dtree.type_cstr_get(tp:base_type_get(), fulln) .. 
";"
 end
 error("unhandled typedecl type: " .. tpt)
 end
diff --git a/src/scripts/elua/apps/gendoc.lua b/src/scripts/elua/apps/gendoc.lua
index 9b619e4..9755e71 100644
--- a/src/scripts/elua/apps/gendoc.lua
+++ b/src/scripts/elua/apps/gendoc.lua
@@ -20,16 +20,16 @@ local gen_cparam = function(par, out)
 out = out or (par:direction_get() == par.OUT)
 local tstr = part:c_type_get()
 if out then
-tstr = ser.get_ctype_str(tstr, "*")
+tstr = dtree.type_cstr_get(tstr, "*")
 end
-return ser.get_ctype_str(tstr, par:name_get())
+return dtree.type_cstr_get(tstr, par:name_get())
 end
 
 local get_func_csig_part = function(cn, tp)
 if not tp then
 return "void " .. cn
 end
-return ser.get_ctype_str(tp, cn)
+return dtree.type_cstr_get(tp, cn)
 end
 
 local gen_func_csig = function(f, ftype)
@@ -1035,7 +1035,7 @@ build_event = function(ev, cl)
 f:write_h("C signature", 3)
 local cn = ev:c_name_get()
 keyref.add(cn, "c")
-f:write_code(ser.get_ctype_str(etp, cn) .. ";", "c")
+f:write_code(dtree.type_cstr_get(etp, cn) .. ";", "c")
 f:write_nl()
 
 f:write_h("Description", 3)

-- 




[EGIT] [tools/eflete] master 01/01: Add ___eflete_dummy_sample___ use in programs.

2016-08-17 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=22cd5868ca462485c5317a3fc7c8f58ab37d9281

commit 22cd5868ca462485c5317a3fc7c8f58ab37d9281
Author: Mykyta Biliavskyi 
Date:   Wed Aug 17 14:38:59 2016 +0300

Add ___eflete_dummy_sample___  use in programs.

Implemented the same behaviour as for dummy image.
This will avoid segmentation fault on generation edc.
And avoid situations when exported edc file is failed to build.

@fix T4331
---
 data/Makefile.am   |   6 -
 data/sounds/___eflete_dummy_sample___.wav  | Bin 0 -> 8126 bytes
 src/bin/editor/default.c   |   6 -
 src/bin/editor/editor_program.c|   5 
 src/bin/eflete.c   |   1 +
 src/bin/eflete.h   |   2 ++
 src/bin/project_manager/project_manager.c  |  28 +
 src/bin/project_manager/project_manager.h  |   2 +-
 .../project_manager/project_manager_import_edj.c   |   2 ++
 src/bin/project_manager/project_manager_open.c |  10 +++-
 src/bin/project_manager/project_manager_private.h  |   6 +
 src/bin/ui/property/property_group.c   |  27 
 src/bin/ui/sound_manager.c |   1 +
 src/bin/ui/tab_home_info.c |   2 +-
 14 files changed, 88 insertions(+), 10 deletions(-)

diff --git a/data/Makefile.am b/data/Makefile.am
index 2bf6bc6..2145a70 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -50,6 +50,10 @@ aimages_DATA = \
${srcdir}/images/eflete.svg \
${srcdir}/images/toolbar_icons/*.png
 endif
+
+asounds_DATA = ${srcdir}/sounds/*.wav
+asoundsdir = ${datadir}/eflete/sounds
+
 aresourcesdir = $(datadir)/eflete/
 
 shortcutdir = $(datadir)/applications
@@ -137,5 +141,5 @@ color.eet: Makefile $(color_eet_deps)
 clean-local:
rm -f *.edj *.eet
 
-EXTRA_DIST = $(aimages_DATA) $(ewe_deps) $(eflete_deps) $(eflete_elm_deps) \
+EXTRA_DIST = $(aimages_DATA) $(asounds_DATA) $(ewe_deps) $(eflete_deps) 
$(eflete_elm_deps) \
$(color_eet_deps) $(template_edj_DATA) $(template_edc_DATA) 
$(template_img_DATA) $(template_snd_DATA)
diff --git a/data/sounds/___eflete_dummy_sample___.wav 
b/data/sounds/___eflete_dummy_sample___.wav
new file mode 100644
index 000..7fbf38e
Binary files /dev/null and b/data/sounds/___eflete_dummy_sample___.wav differ
diff --git a/src/bin/editor/default.c b/src/bin/editor/default.c
index cb16550..6d31d31 100644
--- a/src/bin/editor/default.c
+++ b/src/bin/editor/default.c
@@ -446,10 +446,14 @@ EDITOR_PROGRAM_NULL_STRING_RESET(filter_part, "")
 EDITOR_PROGRAM_NULL_STRING_RESET(filter_state, "")
 EDITOR_PROGRAM_NULL_STRING_RESET(api_name, NULL)
 EDITOR_PROGRAM_NULL_STRING_RESET(api_description, NULL)
-EDITOR_PROGRAM_NULL_STRING_RESET(sample_name, "")
 EDITOR_PROGRAM_NULL_STRING_RESET(tone_name, "")
 EDITOR_PROGRAM_NULL_STRING_RESET(signal, "")
 EDITOR_PROGRAM_NULL_STRING_RESET(source, "")
 EDITOR_PROGRAM_NULL_STRING_RESET(state, "")
 EDITOR_PROGRAM_NULL_STRING_RESET(emit_signal, "")
 EDITOR_PROGRAM_NULL_STRING_RESET(emit_source, "")
+
+#define EDITOR_PROGRAM_NOT_NULL_STRING_RESET(FUNC, RESET_VAL) \
+EDITOR_NOT_NULL_STRING_DEFAULT_CHECK(program_##FUNC, 
EDITOR_PROGRAM_ARGS_PROTO, EDITOR_PROGRAM_ARGS, RESET_VAL) \
+EDITOR_RESET(program_##FUNC, EDITOR_PROGRAM_ARGS_PROTO, EDITOR_PROGRAM_ARGS, 
RESET_VAL)
+EDITOR_PROGRAM_NOT_NULL_STRING_RESET(sample_name, EFLETE_DUMMY_SAMPLE_NAME)
diff --git a/src/bin/editor/editor_program.c b/src/bin/editor/editor_program.c
index 2431781..d69a566 100644
--- a/src/bin/editor/editor_program.c
+++ b/src/bin/editor/editor_program.c
@@ -850,6 +850,11 @@ editor_program_add(Evas_Object *edit_object, Change 
*change, Eina_Bool merge __U
 CRIT_ON_FAIL(edje_edit_program_add(edit_object, program_name));
 CRIT_ON_FAIL(edje_edit_program_action_set(edit_object, program_name, 
type));
 
+if (type == EDJE_ACTION_TYPE_SOUND_SAMPLE)
+  {
+ edje_edit_program_sample_name_set(edit_object, program_name, 
EFLETE_DUMMY_SAMPLE_NAME);
+  }
+
 CRIT_ON_FAIL(editor_save(edit_object));
 _editor_project_changed();
 
diff --git a/src/bin/eflete.c b/src/bin/eflete.c
index f498195..fab8db6 100644
--- a/src/bin/eflete.c
+++ b/src/bin/eflete.c
@@ -99,6 +99,7 @@ app_init()
ap.path.layout_edj = eina_stringshare_printf("%s/layouts/eflete.edj", 
elm_app_data_dir_get());
ap.path.edj_path = eina_stringshare_printf("%s/themes/default/", 
elm_app_data_dir_get());
ap.path.image_path = eina_stringshare_printf("%s/images/", 
elm_app_data_dir_get());
+   ap.path.sound_path = eina_stringshare_printf("%s/sounds/", 
elm_app_data_dir_get());
 
ap.theme = elm_theme_new();
 
diff --git a/src/bin/eflete.h b/src/bin/eflete.h
index 82012be..dcaea44 100644
--- a/src/bin/eflete.h
+++ 

Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support

2016-08-17 Thread Iván Briano
On Wed, 17 Aug 2016 08:42:17 +0900, Carsten Haitzler wrote:
> On Tue, 16 Aug 2016 20:16:04 -0300 Iván Briano  said:
> 
> > On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote:
> > > On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz
> > >  said:
> > > 
> > > no worries. it's the same for SSH_ASKPASS too - you still get the normal 
> > > tty
> > > password req is there is a tty. if there is not both sudo and ssh can fail
> > > (unless you have a no-password ssh key or sudo is configured for nopasswd
> > > for your user). so these work as normal in the no password cases. in the
> > > cases you do need a password both will fail completely. this adds this
> > > little utility so these don't hail anymore if they are in .desktop file or
> > > other command/app/script you launch from within e... :) overall this makes
> > > e more functional... thus i don't see a problem in ALWAYS setting the env
> > > var. if someone dislikes this they can override the env vars or unset them
> > > in scripts. and even in e's environment var settings since e_env_init is
> > > called after these env vars are set... :) but for the vast majority of
> > > people .. they don't need this or likely want it.. and things went from 
> > > not
> > > working to working out of the box with no effort on their part. :)
> > > 
> > > some small things to improve in e here. i'll poke around some other small
> > > things here and there as i get the time. :)
> > 
> > Now explain the do { } while(0). If all you wanted to do was indent the
> > blocks hierarchically, why not just { }? I had to pay to download all
> > those extra characters.
> 
> technically  {} is not legal. it works. thats why so many macros in our public
> headers have do { } while (0); because a { } may not work.

There's nothing wrong with using {} to create sub blocks in the code.
The do {} while(0) in macros is so you can use ; at the end of the
statement without changing the meaning of the code where the macro is
used.

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/enlightenment] enlightenment-0.21 24/28: move new version of e_comp_top_window_at_xy_get() to dnd, restore old version

2016-08-17 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 95d193b515c5d56288e6d2aa46672901c97b36da
Author: Mike Blumenkrantz 
Date:   Mon Aug 8 11:31:28 2016 -0400

move new version of e_comp_top_window_at_xy_get() to dnd, restore old 
version

this resolves pointer-based focus issues introduced while attempting to
fix dnd-related bugs

ref a4a2f6b09e88d555826a3f3b57bd8621c4b1752e
ref 1a982fd72afc0aebaea5fd10f9acd08841291d60
---
 src/bin/e_comp.c | 17 -
 src/bin/e_dnd.c  | 26 --
 2 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 82a2c2a..7fc6a2b 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -1477,22 +1477,13 @@ E_API Ecore_Window
 e_comp_top_window_at_xy_get(Evas_Coord x, Evas_Coord y)
 {
E_Client *ec;
-   Eina_List *objs, *l;
Evas_Object *o;
 
EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp, 0);
-   objs = evas_objects_at_xy_get(e_comp->evas, x, y, 0, 0);
-   if (!objs) return e_comp->ee_win;
-   EINA_LIST_FOREACH(objs, l, o)
- {
-ec = evas_object_data_get(o, "E_Client");
-if (ec)
-  {
- eina_list_free(objs);
- return e_client_util_pwin_get(ec);
-  }
- }
-   eina_list_free(objs);
+   o = evas_object_top_at_xy_get(e_comp->evas, x, y, 0, 0);
+   if (!o) return e_comp->ee_win;
+   ec = evas_object_data_get(o, "E_Client");
+   if (ec) return e_client_util_pwin_get(ec);
return e_comp->ee_win;
 }
 
diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c
index b6ad29d..91a9735 100644
--- a/src/bin/e_dnd.c
+++ b/src/bin/e_dnd.c
@@ -829,6 +829,28 @@ _e_dnd_object_layer_get(E_Drop_Handler *h)
return adjust;
 }
 
+static Ecore_Window
+_dnd_top_window_at_xy_get(Evas_Coord x, Evas_Coord y)
+{
+   E_Client *ec;
+   Eina_List *objs, *l;
+   Evas_Object *o;
+
+   objs = evas_objects_at_xy_get(e_comp->evas, x, y, 0, 0);
+   if (!objs) return e_comp->ee_win;
+   EINA_LIST_FOREACH(objs, l, o)
+ {
+ec = evas_object_data_get(o, "E_Client");
+if (ec)
+  {
+ eina_list_free(objs);
+ return e_client_util_pwin_get(ec);
+  }
+ }
+   eina_list_free(objs);
+   return e_comp->ee_win;
+}
+
 static int
 _e_drag_update(Ecore_Window root, int x, int y, unsigned int action)
 {
@@ -845,7 +867,7 @@ _e_drag_update(Ecore_Window root, int x, int y, unsigned 
int action)
 
 //   double t1 = ecore_time_get(); 
if (_drag_current && !_xdnd)
- win = e_comp_top_window_at_xy_get(x, y);
+ win = _dnd_top_window_at_xy_get(x, y);
else
  win = root;
 
@@ -969,7 +991,7 @@ _e_drag_end(int x, int y)
int dropped = 0;
 
if (!_drag_current) return;
-   win = e_comp_top_window_at_xy_get(x, y);
+   win = _dnd_top_window_at_xy_get(x, y);
zone = e_comp_zone_xy_get(x, y);
/* Pass -1, -1, so that it is possible to drop at the edge. */
if (zone) e_zone_flip_coords_handle(zone, -1, -1);

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 22/28: xwayland: show the dialog after ecore_wl2 is in sync

2016-08-17 Thread Marcel Hollerbach
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit bd5c107e463147025fbdc750c4fd9cfeb9c845fc
Author: Marcel Hollerbach 
Date:   Wed Aug 3 19:03:44 2016 +0200

xwayland: show the dialog after ecore_wl2 is in sync

otherwise ecore_wl2 could produce crashes.
---
 src/modules/xwayland/e_mod_main.c | 9 +++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/modules/xwayland/e_mod_main.c 
b/src/modules/xwayland/e_mod_main.c
index 3e5c895..b113e27 100644
--- a/src/modules/xwayland/e_mod_main.c
+++ b/src/modules/xwayland/e_mod_main.c
@@ -9,6 +9,7 @@
 EINTERN void dnd_init(void);
 EINTERN void dnd_shutdown(void);
 
+static Ecore_Event_Handler *sync_handler;
 static E_Module *xwl_init(E_Module *m);
 static void xwl_shutdown(void);
 
@@ -337,9 +338,13 @@ setup_lock(void)
 }
 
 static Eina_Bool
-error_dialog()
+_cb_sync_done(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
 {
e_util_dialog_internal(_("Error"), _("Cannot launch XWayland from X11 
display."));
+
+   ecore_event_handler_del(sync_handler);
+   sync_handler = NULL;
+
return EINA_FALSE;
 }
 
@@ -353,7 +358,7 @@ xwl_init(E_Module *m)
 
if (getenv("DISPLAY"))
  {
-ecore_timer_add(1.0, error_dialog, NULL);
+sync_handler = ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, 
_cb_sync_done, NULL);
 return NULL;
  }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 13/28: add key_up and key_down methods to sreen interface

2016-08-17 Thread Christopher Michael
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit db2f82185d8d86ee2ba94fdcbac82045c4d6befd
Author: Chris Michael 
Date:   Wed Jul 27 13:31:13 2016 -0400

add key_up and key_down methods to sreen interface

This patch adds new methods to the screen interface that we can use
inside wl_drm to determine if a key event is eaten or not. This fixes
an issue where VT-Switching would not work if an application was on
the screen (E-Wayland).

Signed-off-by: Chris Michael 
---
 src/bin/e_comp.h|  4 
 src/bin/e_comp_canvas.c | 16 ++--
 src/modules/wl_drm/e_mod_main.c | 37 +
 3 files changed, 51 insertions(+), 6 deletions(-)

diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h
index c391993..571e1b2 100644
--- a/src/bin/e_comp.h
+++ b/src/bin/e_comp.h
@@ -70,6 +70,10 @@ typedef struct E_Comp_Screen_Iface
void (*apply)(void);
/* set dpms (on, standby, suspend, off) */
void (*dpms)(int);
+   /* is key event eaten */
+   Eina_Bool (*key_down)(Ecore_Event_Key *ev);
+   /* is key event eaten */
+   Eina_Bool (*key_up)(Ecore_Event_Key *ev);
 } E_Comp_Screen_Iface;
 
 struct _E_Comp
diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c
index 7d077ab..0289b42 100644
--- a/src/bin/e_comp_canvas.c
+++ b/src/bin/e_comp_canvas.c
@@ -118,11 +118,13 @@ _key_down(int ctx, Ecore_Event_Key *ev)
  */
 if ((!ec) || (ev->event_window != e_comp->ee_win)) return 
ECORE_CALLBACK_RENEW;
  }
-   return !e_bindings_key_down_event_handle(ctx, E_OBJECT(e_comp), ev)
+   return ((!e_comp->screen) ||
+   (!e_comp->screen->key_down) || (!e_comp->screen->key_down(ev))) &&
+ !e_bindings_key_down_event_handle(ctx, E_OBJECT(e_comp), ev)
 #ifdef HAVE_WAYLAND
-  && !e_comp_wl_key_down(ev)
+   && !e_comp_wl_key_down(ev)
 #endif
-  ;
+ ;
 }
 
 static Eina_Bool
@@ -142,11 +144,13 @@ _key_up(int ctx, Ecore_Event_Key *ev)
 {
e_screensaver_notidle();
if ((e_comp->comp_type == E_PIXMAP_TYPE_X) && (ev->event_window != 
e_comp->root)) return ECORE_CALLBACK_PASS_ON;
-   return !e_bindings_key_up_event_handle(ctx, E_OBJECT(e_comp), ev)
+   return ((!e_comp->screen) ||
+   (!e_comp->screen->key_up) || (!e_comp->screen->key_up(ev))) &&
+ !e_bindings_key_up_event_handle(ctx, E_OBJECT(e_comp), ev)
 #ifdef HAVE_WAYLAND
-  && !e_comp_wl_key_up(ev)
+   && !e_comp_wl_key_up(ev)
 #endif
-  ;
+ ;
 }
 
 static Eina_Bool
diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c
index 98f31a8..5f50f2d 100644
--- a/src/modules/wl_drm/e_mod_main.c
+++ b/src/modules/wl_drm/e_mod_main.c
@@ -736,6 +736,41 @@ _drm2_dpms(int set)
  }
 }
 
+static Eina_Bool
+_drm2_key_down(Ecore_Event_Key *ev)
+{
+   int code;
+
+   code = (ev->keycode - 8);
+
+   if ((ev->modifiers & ECORE_EVENT_MODIFIER_CTRL) &&
+   ((ev->modifiers & ECORE_EVENT_MODIFIER_ALT) ||
+   (ev->modifiers & ECORE_EVENT_MODIFIER_ALTGR)) &&
+   (code >= KEY_F1) && (code <= KEY_F8))
+ {
+Ecore_Drm2_Device *dev;
+int vt;
+
+vt = (code - KEY_F1 + 1);
+
+dev = ecore_evas_data_get(e_comp->ee, "device");
+if (dev)
+  {
+ ecore_drm2_device_vt_set(dev, vt);
+ return EINA_TRUE;
+  }
+ }
+
+   return EINA_FALSE;
+}
+
+static Eina_Bool
+_drm2_key_up(Ecore_Event_Key *ev)
+{
+   (void)ev;
+   return EINA_FALSE;
+}
+
 static void
 _drm2_read_pixels(E_Comp_Wl_Output *output, void *pixels)
 {
@@ -1143,6 +1178,8 @@ static E_Comp_Screen_Iface drmiface =
.create = _drm2_randr_create,
.apply = _drm2_randr_apply,
.dpms = _drm2_dpms,
+   .key_down = _drm2_key_down,
+   .key_up = _drm2_key_up,
 #else
.create = _drm_randr_create,
.apply = _drm_randr_apply,

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 08/28: e ibar - fix devilhorns fix to use the right widght and hight for separator

2016-08-17 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit dc608ede51e772b3b183b34505c9842e5caa9fc9
Author: Carsten Haitzler (Rasterman) 
Date:   Mon Jul 25 22:21:47 2016 +0900

e ibar - fix devilhorns fix to use the right widght and hight for separator
---
 src/modules/ibar/e_mod_main.c | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index 4ba77b0..e5b5ba9 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -653,12 +653,10 @@ _ibar_resize_handle(IBar *b)
  }
if (b->o_sep)
  {
-if (_is_vertical(b->inst))
-  h = 16 * e_scale;
-else
-  w = 16 * e_scale;
+if (_is_vertical(b->inst)) hh = 16 * e_scale;
+else ww = 16 * e_scale;
 evas_object_size_hint_min_set(b->o_sep, 8, 8);
-evas_object_size_hint_max_set(b->o_sep, w, h);
+evas_object_size_hint_max_set(b->o_sep, ww, wh);
  }
elm_box_recalculate(b->o_box);
elm_box_recalculate(b->o_outerbox);

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 11/28: wl_fb: Check that e_comp_wl_init does not fail.

2016-08-17 Thread Christopher Michael
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 1087516f3931acd9579d214daf6ee8c624626fa1
Author: Chris Michael 
Date:   Tue Jul 26 13:00:33 2016 -0400

wl_fb: Check that e_comp_wl_init does not fail.

Signed-off-by: Chris Michael 
---
 src/modules/wl_fb/e_mod_main.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/modules/wl_fb/e_mod_main.c b/src/modules/wl_fb/e_mod_main.c
index cfbdef2..6bb7206 100644
--- a/src/modules/wl_fb/e_mod_main.c
+++ b/src/modules/wl_fb/e_mod_main.c
@@ -35,7 +35,9 @@ e_modapi_init(E_Module *m)
 screen->h = h;
 e_xinerama_screens_set(eina_list_append(NULL, screen));
  }
-   e_comp_wl_init();
+
+   if (!e_comp_wl_init()) return NULL;
+
e_comp_canvas_init(w, h);
e_comp->pointer = e_pointer_canvas_new(e_comp->ee, EINA_TRUE);
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 14/28: bg: Fix bg with single jpeg images (no edj)

2016-08-17 Thread Jean-Philippe ANDRÉ
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 00886ff0e4aa18aed4d37aa137d9fb5e53de83a2
Author: Jean-Philippe Andre 
Date:   Thu Jul 28 20:47:44 2016 +0900

bg: Fix bg with single jpeg images (no edj)

When selecting a jpeg file directly as wallpaper, it will look
very blurry, clearly loaded as a low-resolution image and then
scaled up. Solution: don't load at size 64x64!

For @OnlyHuman, thanks for the report.

@fix
---
 src/bin/e_bg.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/e_bg.c b/src/bin/e_bg.c
index d31338d..9a1ffc9 100644
--- a/src/bin/e_bg.c
+++ b/src/bin/e_bg.c
@@ -265,6 +265,7 @@ e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition)
  {
 o = e_icon_add(e_comp->evas);
 e_icon_file_key_set(o, bgfile, NULL);
+e_icon_scale_size_set(o, 0);
 e_icon_fill_inside_set(o, 0);
  }
else

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 05/28: e fm: Don’t check every other line whether the location is writable when creating menu.

2016-08-17 Thread Chidambar Zinnoury
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit e66f0e563497a18fc823aa6471656b37e0b78939
Author: Chidambar Zinnoury 
Date:   Sat Jul 23 12:51:03 2016 +0200

 e fm: Don’t check every other line whether the location is writable when 
creating menu.
---
 src/bin/e_fm.c | 11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c
index 88f2287..f190157 100644
--- a/src/bin/e_fm.c
+++ b/src/bin/e_fm.c
@@ -9065,6 +9065,7 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, 
unsigned int timestamp)
Eina_List *l = NULL;
int x, y, can_w, can_w2, protect;
char buf[PATH_MAX], *ext;
+   Eina_Bool writable;
 
sd = ic->sd;
if (ic->menu) return;
@@ -9077,6 +9078,8 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, 
unsigned int timestamp)
  sd->icon_menu.replace.func(sd->icon_menu.replace.data, sd->obj, mn, 
>info);
else
  {
+writable = ecore_file_can_write(sd->realpath);
+
 if (sd->icon_menu.start.func)
   sd->icon_menu.start.func(sd->icon_menu.start.data, sd->obj, mn, 
>info);
 if (!(sd->icon_menu.flags & E_FM2_MENU_NO_VIEW_MENU))
@@ -9115,7 +9118,7 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, 
unsigned int timestamp)
   }
 
 /* FIXME: stat the dir itself - move to e_fm_main */
-if (ecore_file_can_write(sd->realpath) && !(sd->icon_menu.flags & 
E_FM2_MENU_NO_NEW))
+if (writable && !(sd->icon_menu.flags & E_FM2_MENU_NO_NEW))
   {
  mi = e_menu_item_new(mn);
  e_menu_item_separator_set(mi, 1);
@@ -9194,7 +9197,7 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, 
unsigned int timestamp)
   {
  if (!(sd->icon_menu.flags & E_FM2_MENU_NO_CUT))
{
-  if (ecore_file_can_write(sd->realpath))
+  if (writable)
 {
mi = e_menu_item_new(mn);
e_menu_item_separator_set(mi, 1);
@@ -9207,7 +9210,7 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, 
unsigned int timestamp)
}
  if (!(sd->icon_menu.flags & E_FM2_MENU_NO_COPY))
{
-  if (!ecore_file_can_write(sd->realpath))
+  if (!writable)
 {
mi = e_menu_item_new(mn);
e_menu_item_separator_set(mi, 1);
@@ -9222,7 +9225,7 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, 
unsigned int timestamp)
  if (((!(sd->icon_menu.flags & E_FM2_MENU_NO_PASTE)) ||
   (!(sd->icon_menu.flags & E_FM2_MENU_NO_SYMLINK))) &&
  (eina_list_count(_e_fm_file_buffer) > 0) &&
- ecore_file_can_write(sd->realpath))
+ writable)
{
   if (!(sd->icon_menu.flags & E_FM2_MENU_NO_PASTE))
 {

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 12/28: Updating italian and spanish translations

2016-08-17 Thread Massimo Maiurana
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit dd5b1744c711a6bd84740e6ea927a6380caf2dd3
Author: maxerba 
Date:   Wed Jul 27 00:48:38 2016 +0200

Updating italian and spanish translations
---
 po/es.po | 501 +-
 po/it.po | 923 ---
 2 files changed, 718 insertions(+), 706 deletions(-)

diff --git a/po/es.po b/po/es.po
index c6f7cca..2a4b06f 100644
--- a/po/es.po
+++ b/po/es.po
@@ -5,14 +5,14 @@
 # Federico Vera , 2008.
 # DiegoJ , 2009.
 # Aníbal Garrido , 2012.
-# Adrián Arévalo , 2012, 2013.
+# Adrián Arévalo , 2012, 2013, 2016.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: Enlightenment 0.17\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
 "POT-Creation-Date: 2015-06-08 21:10+0900\n"
-"PO-Revision-Date: 2015-03-22 10:07+0100\n"
+"PO-Revision-Date: 2016-07-25 17:09+0200\n"
 "Last-Translator: Adrián Arévalo \n"
 "Language-Team: Español; Castellano <>\n"
 "Language: es\n"
@@ -20,8 +20,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.7.5\n"
-"X-Poedit-Basepath: /home/adrian/trunk/e/\n"
+"X-Generator: Poedit 1.8.8\n"
+"X-Poedit-Basepath: /home/adrian/trunk/e\n"
 
 #: src/bin/e_about.c:17
 msgid "About Enlightenment"
@@ -53,7 +53,7 @@ msgid ""
 "it.To contact us please visit:http://www.enlightenment.;
 "org"
 msgstr ""
-"Copyright  2000-2012, por el Equipo de Desarrollo de  "
+"Copyright  2000-2015, por el Equipo de Desarrollo de  "
 "EnlightenmentEsperamos que disfrute usando este software tanto "
 "como nosotros disfrutamos escribiéndolo.Para contactar con nosotros "
 "visite:http://www.enlightenment.org"
@@ -86,8 +86,7 @@ msgstr "Matar"
 #: src/bin/e_actions.c:2246 src/bin/e_actions.c:2303 src/bin/e_actions.c:2365
 #: src/bin/e_actions.c:2456 src/bin/e_confirm_dialog.c:53
 #: src/bin/e_desklock.c:549 src/bin/e_fm.c:10625 src/bin/e_fm.c:10978
-#: src/bin/e_screensaver.c:196
-#: src/modules/quickaccess/e_mod_quickaccess.c:1305
+#: src/bin/e_screensaver.c:196 src/modules/quickaccess/e_mod_quickaccess.c:1305
 msgid "No"
 msgstr "No"
 
@@ -106,8 +105,7 @@ msgstr "¿Está seguro de que desea salir de Enlightenment?"
 #: src/bin/e_actions.c:2093 src/bin/e_actions.c:2184 src/bin/e_actions.c:2244
 #: src/bin/e_actions.c:2301 src/bin/e_actions.c:2363 src/bin/e_actions.c:2454
 #: src/bin/e_confirm_dialog.c:52 src/bin/e_desklock.c:547 src/bin/e_fm.c:10628
-#: src/bin/e_screensaver.c:194
-#: src/modules/quickaccess/e_mod_quickaccess.c:1305
+#: src/bin/e_screensaver.c:194 src/modules/quickaccess/e_mod_quickaccess.c:1305
 msgid "Yes"
 msgstr "Sí"
 
@@ -215,7 +213,7 @@ msgstr "Alternar modo minimizado"
 #: src/bin/e_actions.c:3025
 #, fuzzy
 msgid "Iconic Mode Enable"
-msgstr "Minimizar"
+msgstr "Habilitar modo minizado"
 
 #: src/bin/e_actions.c:3030
 msgid "Fullscreen Mode Toggle"
@@ -370,7 +368,7 @@ msgstr "Voltear el escritorio a..."
 #: src/bin/e_actions.c:3140
 #, fuzzy
 msgid "Switch Desktop To... On Screen..."
-msgstr "Cambiar al escritorio... (todas las pantallas)"
+msgstr "Cambiar al escritorio... en pantalla..."
 
 #: src/bin/e_actions.c:3146
 msgid "Flip Desktop Linearly..."
@@ -771,18 +769,16 @@ msgid "Suspend Now"
 msgstr "Suspender ahora"
 
 #: src/bin/e_actions.c:3444
-#, fuzzy
 msgid "Suspend Intelligently"
-msgstr "Retardo de suspensión"
+msgstr "Suspender en modo inteligente"
 
 #: src/bin/e_actions.c:3452
 msgid "Hibernate Now"
 msgstr "Hibernar ahora"
 
 #: src/bin/e_actions.c:3456
-#, fuzzy
 msgid "Hibernate Intelligently"
-msgstr "La hibernación falló."
+msgstr "Hibernar en modo inteligente"
 
 #: src/bin/e_actions.c:3464
 msgid "Lock"
@@ -798,7 +794,7 @@ msgstr "Genérico : Acciones"
 
 #: src/bin/e_actions.c:3474
 msgid "Delayed Action"
-msgstr "Acciones retardadas"
+msgstr "Acción retrasada"
 
 #: src/bin/e_actions.c:3482 src/bin/e_actions.c:3486 src/bin/e_actions.c:3490
 msgid "Keyboard Layouts"
@@ -835,9 +831,8 @@ msgid "Color Selector"
 msgstr "Selector de color"
 
 #: src/bin/e_color_dialog.c:53
-#, fuzzy
 msgid "Color Preview"
-msgstr "Previsualizar"
+msgstr "Previsualización de color"
 
 #: src/bin/e_color_dialog.c:67
 msgid "Select"
@@ -933,20 +928,19 @@ msgstr ""
 #: src/bin/e_comp_x.c:4858
 #, fuzzy
 msgid "Another compositor is already running on your display server."
-msgstr "Ya hay otro compositor de ventanas ejecutándose"
+msgstr "Ya hay otro compositor ejecutándose."
 
 #: src/bin/e_comp_x.c:4877
-#, fuzzy
 msgid ""
 "Your display server does not support the compositor overlay window.\n"
 "This is needed for Enlightenment to function."
 msgstr ""
-"Su tarjeta gráfica no soporta la superposiciónde 

[EGIT] [core/enlightenment] enlightenment-0.21 03/28: e: Don’t show two consecutive menu separators if there is no need in client menu.

2016-08-17 Thread Chidambar Zinnoury
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit bef0bafda68192b7a377e1ee6f89475862fdb43a
Author: Chidambar Zinnoury 
Date:   Sat Jul 23 12:15:11 2016 +0200

 e: Don’t show two consecutive menu separators if there is no need in 
client menu.

 This would happen if we don’t show some stacking settings.

 @fix
---
 src/bin/e_int_client_menu.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_int_client_menu.c b/src/bin/e_int_client_menu.c
index e8625ca..512f512 100644
--- a/src/bin/e_int_client_menu.c
+++ b/src/bin/e_int_client_menu.c
@@ -1382,14 +1382,14 @@ _e_client_menu_cb_stacking_pre(void *data, E_Menu *m 
EINA_UNUSED, E_Menu_Item *m

"e/widgets/border/default/stack_below"),
  "e/widgets/border/default/stack_below");
 
-   submi = e_menu_item_new(subm);
-   e_menu_item_separator_set(submi, 1);
-
// Only allow to change layer for windows in "normal" layers
if ((!ec->lock_user_stacking) &&
((ec->layer == 50) || (ec->layer == 100) || (ec->layer == 150)))
  {
 submi = e_menu_item_new(subm);
+e_menu_item_separator_set(submi, 1);
+
+submi = e_menu_item_new(subm);
 e_menu_item_label_set(submi, _("Raise"));
 e_menu_item_callback_set(submi, _e_client_menu_cb_raise, ec);
 e_menu_item_icon_edje_set(submi,

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 18/28: e_comp_wl: destroy e_drag when source disappears

2016-08-17 Thread Marcel Hollerbach
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 15eb6afa16f58d8e23cf3268a1f94f70d8b139eb
Author: Marcel Hollerbach 
Date:   Mon Jul 25 19:49:55 2016 +0200

e_comp_wl: destroy e_drag when source disappears

Otherwise we are expecting a running dnd later, and accessing invalid
memory.
---
 src/bin/e_comp_wl_data.c | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c
index 04ccd32..0ea274c 100644
--- a/src/bin/e_comp_wl_data.c
+++ b/src/bin/e_comp_wl_data.c
@@ -375,7 +375,12 @@ _e_comp_wl_data_source_cb_resource_destroy(struct 
wl_resource *resource)
_mime_types_free(source);
 
if (e_comp_wl->drag_source == source)
- e_comp_wl->drag_source = NULL;
+ {
+e_comp_wl->drag_source = NULL;
+//free the drag here
+e_object_del(E_OBJECT(e_comp_wl->drag));
+e_comp_wl->drag = NULL;
+ }
 
free(source);
 }

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 07/28: use proper variables to set size_hint_max on ibar

2016-08-17 Thread Christopher Michael
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 15de3e6ac8f8b10fe9727bc442cee9c687d297a6
Author: Chris Michael 
Date:   Mon Jul 25 09:05:40 2016 -0400

use proper variables to set size_hint_max on ibar

Signed-off-by: Chris Michael 
---
 src/modules/ibar/e_mod_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index d14e7bf..4ba77b0 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -658,7 +658,7 @@ _ibar_resize_handle(IBar *b)
 else
   w = 16 * e_scale;
 evas_object_size_hint_min_set(b->o_sep, 8, 8);
-evas_object_size_hint_max_set(b->o_sep, ww, hh);
+evas_object_size_hint_max_set(b->o_sep, w, h);
  }
elm_box_recalculate(b->o_box);
elm_box_recalculate(b->o_outerbox);

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 26/28: clear wl subsurface data during delete only if subsurface is not also deleted

2016-08-17 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 0653cff5f0ec4c8c215417a7f6a1e4e838a03d41
Author: Mike Blumenkrantz 
Date:   Mon Aug 8 11:38:32 2016 -0400

clear wl subsurface data during delete only if subsurface is not also 
deleted

fix T4297
---
 src/bin/e_comp_wl.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index dbf6b48..718c4a8 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -2436,7 +2436,10 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, 
E_Client *ec)
 
/* remove sub list */
EINA_LIST_FREE(ec->comp_data->sub.list, subc)
- subc->comp_data->sub.data->parent = NULL;
+ {
+if (!e_object_is_del(E_OBJECT(subc)))
+  subc->comp_data->sub.data->parent = NULL;
+ }
 
if ((ec->parent) && (ec->parent->modal == ec))
  {

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 10/28: remove need to create different dialog windows under wayland

2016-08-17 Thread Christopher Michael
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 3d94fefd57bd55bf549372bb5ed63416976f4abd
Author: Chris Michael 
Date:   Mon Jul 25 13:06:59 2016 -0400

remove need to create different dialog windows under wayland

NB: This hack is no longer needed.

Signed-off-by: Chris Michael 
---
 src/bin/e_config_dialog.c | 8 +---
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/bin/e_config_dialog.c b/src/bin/e_config_dialog.c
index dc55c10..08df400 100644
--- a/src/bin/e_config_dialog.c
+++ b/src/bin/e_config_dialog.c
@@ -189,13 +189,7 @@ _e_config_dialog_go(E_Config_Dialog *cfd, 
E_Config_Dialog_CFData_Type type)
 if ((cfd->view->normal_win) || (e_config->cfgdlg_normal_wins))
   cfd->dia = e_dialog_normal_win_new(cfd->parent, cfd->name, buf);
 else
-  {
- /* FIXME: REMOVE HACK FOR WAYLAND BEFORE RELEASE */
- if (e_comp && e_comp->comp_type != E_PIXMAP_TYPE_WL)
-   cfd->dia = e_dialog_new(cfd->parent, cfd->name, buf);
- else
-   cfd->dia = e_dialog_normal_win_new(cfd->parent, cfd->name, buf);
-  }
+  cfd->dia = e_dialog_new(cfd->parent, cfd->name, buf);
 e_object_del_attach_func_set(E_OBJECT(cfd->dia),
  _e_config_dialog_cb_dialog_del);
  } /* window was created before - deleting content only */

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 21/28: e_dnd: move the ungrab to the object free

2016-08-17 Thread Marcel Hollerbach
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit ae47f0bbb2466130967414e2ee46785d8fb8598f
Author: Marcel Hollerbach 
Date:   Wed Aug 3 19:02:26 2016 +0200

e_dnd: move the ungrab to the object free

otherwise there are cases where the ungrabbing is not executing, and
blocking input.
---
 src/bin/e_comp_wl_data.c | 1 -
 src/bin/e_dnd.c  | 6 --
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c
index 0ea274c..490fd07 100644
--- a/src/bin/e_comp_wl_data.c
+++ b/src/bin/e_comp_wl_data.c
@@ -376,7 +376,6 @@ _e_comp_wl_data_source_cb_resource_destroy(struct 
wl_resource *resource)
 
if (e_comp_wl->drag_source == source)
  {
-e_comp_wl->drag_source = NULL;
 //free the drag here
 e_object_del(E_OBJECT(e_comp_wl->drag));
 e_comp_wl->drag = NULL;
diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c
index aecf430..b6ad29d 100644
--- a/src/bin/e_dnd.c
+++ b/src/bin/e_dnd.c
@@ -1072,8 +1072,6 @@ _e_drag_end(int x, int y)
_drag_current->cb.finished = NULL;
 
e_object_del(E_OBJECT(_drag_current));
-   if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
- e_comp_ungrab_input(1, 1);
 }
 
 static void
@@ -1153,7 +1151,11 @@ _e_drag_free(E_Drag *drag)
   ecore_x_window_free(_drag_win);
 ecore_x_window_shadow_tree_flush();
  }
+   else
 #endif
+ {
+e_comp_ungrab_input(1, 1);
+ }
e_bindings_disabled_set(0);
_drag_win = 0;
 }

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 09/28: e ibar - fix "old man" fat finger typo ; )

2016-08-17 Thread Christopher Michael
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit df40bef557d25d0ab8a0bd1901fda10871280e40
Author: Chris Michael 
Date:   Mon Jul 25 09:27:52 2016 -0400

e ibar - fix "old man" fat finger typo ;)

Signed-off-by: Chris Michael 
---
 src/modules/ibar/e_mod_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index e5b5ba9..d810b3d 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -656,7 +656,7 @@ _ibar_resize_handle(IBar *b)
 if (_is_vertical(b->inst)) hh = 16 * e_scale;
 else ww = 16 * e_scale;
 evas_object_size_hint_min_set(b->o_sep, 8, 8);
-evas_object_size_hint_max_set(b->o_sep, ww, wh);
+evas_object_size_hint_max_set(b->o_sep, ww, hh);
  }
elm_box_recalculate(b->o_box);
elm_box_recalculate(b->o_outerbox);

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 01/28: e temp module - kill tempget process not terminate to ensure death

2016-08-17 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 70c8fa7ae1d898ca863012fc6ebdde8fbfa5f11b
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Jul 20 18:12:04 2016 +0900

e temp module - kill tempget process not terminate to ensure death

it seems on openbsd sigterm doesnt kill things... sigkill does so move
to that. fixes T4121

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

diff --git a/src/modules/temperature/e_mod_main.c 
b/src/modules/temperature/e_mod_main.c
index ab4ef76..b6a521f 100644
--- a/src/modules/temperature/e_mod_main.c
+++ b/src/modules/temperature/e_mod_main.c
@@ -135,7 +135,7 @@ _gc_shutdown(E_Gadcon_Client *gcc)
 
if (inst->tempget_exe)
  {
-   ecore_exe_terminate(inst->tempget_exe);
+   ecore_exe_kill(inst->tempget_exe);
ecore_exe_free(inst->tempget_exe);
inst->tempget_exe = NULL;
  }
@@ -305,7 +305,7 @@ temperature_face_update_config(Config_Face *inst)
 
if (inst->tempget_exe)
  {
-ecore_exe_terminate(inst->tempget_exe);
+ecore_exe_kill(inst->tempget_exe);
 ecore_exe_free(inst->tempget_exe);
 inst->tempget_exe = NULL;
  }

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 27/28: add xwayland compat for efl 1.19+

2016-08-17 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 057a1c2556149adea01f9120b0672f1283020df7
Author: Mike Blumenkrantz 
Date:   Mon Aug 15 10:51:32 2016 -0400

add xwayland compat for efl 1.19+
---
 src/modules/xwayland/e_mod_main.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/modules/xwayland/e_mod_main.c 
b/src/modules/xwayland/e_mod_main.c
index b113e27..6a024c2 100644
--- a/src/modules/xwayland/e_mod_main.c
+++ b/src/modules/xwayland/e_mod_main.c
@@ -369,7 +369,11 @@ xwl_init(E_Module *m)
  return NULL;
 
 #ifdef HAVE_PULSE
+ #ifdef EFL_VERSION_1_19
+   efl_del(efl_add(ECORE_AUDIO_OUT_PULSE_CLASS, NULL));
+ #else
eo_del(eo_add(ECORE_AUDIO_OUT_PULSE_CLASS, NULL));
+ #endif
 #endif
 
/* record wayland display */

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 06/28: remove unused variables from _ibar_resize_handle

2016-08-17 Thread Christopher Michael
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit a0f411a7728a852a7763460a1ce122ace191d45e
Author: Chris Michael 
Date:   Mon Jul 25 08:44:12 2016 -0400

remove unused variables from _ibar_resize_handle

Signed-off-by: Chris Michael 
---
 src/modules/ibar/e_mod_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index 0645339..d14e7bf 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -638,7 +638,7 @@ static void
 _ibar_resize_handle(IBar *b)
 {
IBar_Icon *ic;
-   Evas_Coord w, h, xx, yy, ww, hh;
+   Evas_Coord w, h, ww, hh;
 
if (!b->inst->gcc) return;
evas_object_geometry_get(b->o_outerbox, NULL, NULL, , );

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 16/28: only check x11 configurerequest geometry changes when applicable

2016-08-17 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 0eaca149c042008dce1df9008570982381ca4d3d
Author: Mike Blumenkrantz 
Date:   Mon Aug 1 10:54:44 2016 -0400

only check x11 configurerequest geometry changes when applicable

in some cases during a frame recalc this could lead to window positioning
being erroneously changed

fix T4097
---
 src/bin/e_comp_x.c | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index e1ee1c7..497d760 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -1709,8 +1709,12 @@ _e_comp_x_configure_request(void *data  EINA_UNUSED, int 
type EINA_UNUSED, Ecore
e_comp_object_frame_xy_adjust(ec->frame, x, y, , );
e_comp_object_frame_wh_adjust(ec->frame, w, h, , );
 
-   move = (x != ec->x) || (y != ec->y);
-   resize = (w != ec->w) || (h != ec->h);
+   if ((ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_X) ||
+   (ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_Y))
+ move = (x != ec->x) || (y != ec->y);
+   if ((ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_W) ||
+   (ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_H))
+ resize = (w != ec->w) || (h != ec->h);
 
if (move && (!ec->lock_client_location))
  {

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 28/28: bump efl wayland req to 1.18 now that it's out

2016-08-17 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 92ef626aae10f127b586f4dd549e1bc0b7ea66a1
Author: Mike Blumenkrantz 
Date:   Wed Aug 17 07:02:02 2016 -0400

bump efl wayland req to 1.18 now that it's out
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index b6dd3c9..7608181 100644
--- a/configure.ac
+++ b/configure.ac
@@ -674,7 +674,7 @@ AC_MSG_CHECKING([whether wayland EGL support is enabled])
 AC_MSG_RESULT([${e_cv_want_wayland_egl}])
 
 if test "x${e_cv_want_wayland_only}" != "xno" ;then
-  PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 >= 1.17.99 wayland-server >= 1.11.0 
wayland-client >= 1.11.0 xkbcommon uuid],
+  PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 >= 1.18 wayland-server >= 1.11.0 
wayland-client >= 1.11.0 xkbcommon uuid],
 [
   have_wayland=yes
   have_wayland_dep=true

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 25/28: E: include uuid.h only when Wayland support is enabled.

2016-08-17 Thread Romain Naour
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit c20a32b8b83a60a02ce6a8df261f12604c1f727e
Author: Romain Naour 
Date:   Fri Aug 5 21:34:27 2016 +0200

E: include uuid.h only when Wayland support is enabled.

libuuid is checked only when Wayland support is enabled and
uuid_t uuid is guarded by HAVE_WAYLAND.

So move include uuid.h below a HAVE_WAYLAND.

Signed-off-by: Romain Naour 

fix T4298
---
 src/bin/e_pixmap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index febb689..72b26e8 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -2,6 +2,7 @@
 
 #ifdef HAVE_WAYLAND
 # include "e_comp_wl.h"
+# include 
 # ifndef EGL_TEXTURE_FORMAT
 #  define EGL_TEXTURE_FORMAT   0x3080
 # endif
@@ -18,7 +19,6 @@
 #endif
 
 #include 
-#include 
 
 static Eina_Hash *pixmaps[2] = {NULL};
 static Eina_Hash *aliases[2] = {NULL};

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 04/28: e fm: Add a separator only if there is something before.

2016-08-17 Thread Chidambar Zinnoury
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 595e527a9adfdb431658c1fdce05e937087f9f17
Author: Chidambar Zinnoury 
Date:   Sat Jul 23 12:24:49 2016 +0200

 e fm: Add a separator only if there is something before.

 Currently, the context menu will show a separator before the background 
and overlay items even if there is nothing before, such as on the favourites 
pane.

 @fix
---
 src/bin/e_fm.c | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c
index 662eab4..88f2287 100644
--- a/src/bin/e_fm.c
+++ b/src/bin/e_fm.c
@@ -10032,8 +10032,12 @@ _e_fm2_view_menu_pre(void *data, E_Menu *subm)
if (_e_fm2_desktop_open(sd) < 0) return;
e_object_data_set(E_OBJECT(subm), sd);
e_object_del_attach_func_set(E_OBJECT(subm), _e_fm2_view_menu_del);
-   mi = e_menu_item_new(subm);
-   e_menu_item_separator_set(mi, 1);
+
+   if (e_menu_item_nth(subm, 0) != NULL)
+ {
+mi = e_menu_item_new(subm);
+e_menu_item_separator_set(mi, 1);
+ }
 
mi = e_menu_item_new(subm);
e_menu_item_label_set(mi, _("Set background..."));

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 19/28: e_alert: define EFL_BETA_API_SUPPORT before any include

2016-08-17 Thread Marcel Hollerbach
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit a63193a9e751b68569e3ab4c0be6d28a1dfa08ef
Author: Marcel Hollerbach 
Date:   Wed Aug 3 11:30:58 2016 +0200

e_alert: define EFL_BETA_API_SUPPORT before any include

otherwise we can include half efl without api and the other parts with
beta api support, which leads to problems.

The current problem was that Eo.h was first included without the
EFL_BETA_API_SUPPORT, in Evas.h EFL_BETA_API_SUPPORT is defined, so the
header expects Eo_Callback_Priority to be defined.

@fix
---
 src/bin/e_alert_main.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_alert_main.c b/src/bin/e_alert_main.c
index b2bcd3c..c0cb3c6 100644
--- a/src/bin/e_alert_main.c
+++ b/src/bin/e_alert_main.c
@@ -1,5 +1,9 @@
 #include "config.h"
 
+#ifdef HAVE_DRM2
+#  define EFL_BETA_API_SUPPORT
+#endif
+
 #include 
 #include 
 #include 
@@ -19,7 +23,6 @@
 # ifdef HAVE_WL_DRM
 #  include 
 #  ifdef HAVE_DRM2
-#   define EFL_BETA_API_SUPPORT
 #   include 
 #   include 
 #  else

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 23/28: improve quickaccess relaunch help dialog text

2016-08-17 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit ec5cb806d983338f8d7c823e6fed7289ac74944a
Author: Mike Blumenkrantz 
Date:   Mon Aug 8 11:23:58 2016 -0400

improve quickaccess relaunch help dialog text

fix T4216
---
 src/modules/quickaccess/e_mod_quickaccess.c | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/modules/quickaccess/e_mod_quickaccess.c 
b/src/modules/quickaccess/e_mod_quickaccess.c
index ba5b1f1..33f1464 100644
--- a/src/modules/quickaccess/e_mod_quickaccess.c
+++ b/src/modules/quickaccess/e_mod_quickaccess.c
@@ -313,8 +313,7 @@ _e_qa_entry_relaunch_setup_help(void *data, E_Dialog *dia)
entry->dia = NULL;
entry->dia = dia = e_dialog_new(NULL, "E", "_quickaccess_cmd_help_dialog");
 
-   snprintf(buf, sizeof(buf), "%s%s/e-module-quickaccess.edj%s"
-   "data.item: \"%s\" \"--OPT\";", _("The relaunch 
option is meant to be used"
+   snprintf(buf, sizeof(buf), _("The relaunch option is meant to be used"
"with terminal applications to create a 
persistent"
"terminal which reopens when closed, generally 
seen"
"in quake-style drop-down terminals."
@@ -322,9 +321,12 @@ _e_qa_entry_relaunch_setup_help(void *data, E_Dialog *dia)
"or the cmdline flag for changing the 
terminal's window"
"name is not known. Feel free to submit a bug 
report if this"
"is a terminal which can change its window 
name."
-   "Alternatively, you can add a data.item to"),
+   "Alternatively, you can add a data.item to"
+   "%s/e-module-quickaccess.edj"
+   "Like so:"
+   "data.item: \"%s\" \"--OPT\";"),
e_module_dir_get(qa_mod->module),
-   _("Like so:"), entry->class);
+   entry->class);
 
e_dialog_title_set(dia, _("Quickaccess Help"));
e_dialog_icon_set(dia, "enlightenment", 64);

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 20/28: mailmap: sync updated file from efl repo

2016-08-17 Thread Stefan Schmidt
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 09ba7db93cb4ca0e056704923f162e744d83e87b
Author: Stefan Schmidt 
Date:   Thu Aug 4 12:46:40 2016 +0200

mailmap: sync updated file from efl repo
---
 .mailmap | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/.mailmap b/.mailmap
index 0bb03a3..68d4168 100644
--- a/.mailmap
+++ b/.mailmap
@@ -4,7 +4,7 @@
 # More people can be added following this scheme:
 # Proper Name  Commit Name 
 #
-# Please keep this file in sync between efl, elementary, e and terminology.
+# Please keep this file in sync between efl, e and terminology.
 
 Carsten Haitzler  Carsten Haitzler (Rasterman) 

 Cedric BAIL  Cedric Bail 
@@ -14,13 +14,20 @@ Cedric BAIL  Cedric BAIL 

 Cedric BAIL  Cedric BAIL 
 Cedric BAIL  Cedric BAIL 
 Vincent Torri  Vincent Torri 
+Vincent Torri  Vincent Torri 
+Vincent Torri  Vincent Torri 

 Tom Hacohen  Tom 'TAsn' Hacohen 
 Tom Hacohen  Tom 
 Gustavo Sverzut Barbieri  Gustavo Sverzut Barbieri 

 Christopher Michael  Christopher Michael 

 Christopher Michael  Christopher Michael 

+Christopher Michael  Christopher Michael 

+Christopher Michael  Chris Michael 

 Christopher Michael  Christopher Michael 

+Christopher Michael  Christopher 

+Christopher Michael  Chris Michael 

 Christopher Michael  Christopher Michael 

+Christopher Michael  Chris Michael 

 Sebastian Dransfeld  Sebastian Dransfeld 

 Sebastian Dransfeld  sebastid 
 Mike Blumenkrantz  Mike Blumenkrantz 

@@ -29,6 +36,7 @@ Mike Blumenkrantz  zmike 
 Mike Blumenkrantz 

 Mike Blumenkrantz  Mike Blumenkrantz 

 ChunEon Park  ChunEon Park 
+ChunEon Park  Hermet Park 
 David Walter Seikel  David Walter Seikel 

 Rafael Antognolli  Rafael Antognolli 

 Rafael Antognolli  Rafael Antognolli 

@@ -38,6 +46,7 @@ Lucas De Marchi  Lucas De 
Marchi  Lucas De Marchi 

 Jihoon Kim  Jihoon Kim 
 Stefan Schmidt  Stefan Schmidt 

+Stefan Schmidt  Stefan Schmidt 

 Jonas M. Gastal  Jonas Gastal 
 Daniel Juyung Seo  Daniel Juyung Seo 

 Daniel Juyung Seo  Daniel Juyung Seo 

@@ -79,4 +88,8 @@ Massimo Maiurana  maxerba 

 Lee Gwang-O  Gwang O Lee 
 Thibaut Broggi  broggi_t 
 Daniel Zaoui  Daniel Zaoui 
+Daniel Zaoui  daniel.za...@samsung.com 

 Jérémy Anger  kidanger 
+Andy Williams  handyande 
+Davide Andreoli  Dave Andreoli 
+Davide Andreoli  davemds 

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 02/28: Fix wayland clients not deleting when they're hidden

2016-08-17 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 18cef43716f68046c37d0d04eb9ee9905edb6248
Author: Derek Foreman 
Date:   Thu Jul 21 13:09:12 2016 -0500

Fix wayland clients not deleting when they're hidden

We kept an extra reference for wayland clients and dropped it on their final
render to stop crashes.  However, if they're not on screen at the time of
their deletion this reference still needed to be dropped.

Fixes clients remaining on the deskmirror after dying on another desktop.
---
 src/bin/e_comp_wl.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index c5ddf32..dbf6b48 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -2471,6 +2471,13 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, 
E_Client *ec)
 
if (ec->internal_elm_win)
  evas_object_hide(ec->frame);
+
+   /* WL clients take an extra ref at startup so they don't get deleted while
+* visible.  Since we drop that in the render loop we need to make sure
+* it's dropped here if the client isn't going to be rendered.
+*/
+   if (!e_pixmap_is_x(ec->pixmap) && ec->hidden) e_object_unref(E_OBJECT(ec));
+
_e_comp_wl_focus_check();
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 17/28: e comp - set alpha after setting native surface to avoid random crash

2016-08-17 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 8a92d4b538894301ea36d845a8e968ca5b744cac
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Aug 3 17:27:23 2016 +0900

e comp - set alpha after setting native surface to avoid random crash

i noticed a crash on texture update with a previous garbage image data
ptr set before becoming a native suttface and so setting alpha would
cause a texture upload from a garbage pointer, so set native surface
then set alpha on or off so the data ptr is no longer used.

@fix
---
 src/bin/e_comp_object.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index af97018..32b4756 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3751,8 +3751,8 @@ e_comp_object_native_surface_set(Evas_Object *obj, 
Eina_Bool set)
evas_object_image_native_surface_set(cw->obj, set && (!cw->blanked) ? 
(cw->ns ?: ) : NULL);
EINA_LIST_FOREACH(cw->obj_mirror, l, o)
  {
-evas_object_image_alpha_set(o, !!cw->ns ? 1 : cw->ec->argb);
 evas_object_image_native_surface_set(o, set ? (cw->ns ?: ) : NULL);
+evas_object_image_alpha_set(o, !!cw->ns ? 1 : cw->ec->argb);
  }
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 15/28: Fix wayland extension global creation

2016-08-17 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.21.

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

commit 0af35c2470c894a20019562af094fa66c84b76f0
Author: Derek Foreman 
Date:   Wed Jul 27 13:44:16 2016 -0500

Fix wayland extension global creation

The globals are singletons, but the bindings are per wl_client.
---
 src/bin/e_comp_wl.h|  6 +++---
 src/bin/e_comp_wl_extensions.c | 19 +--
 2 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h
index 1dd47f2..9580e43 100644
--- a/src/bin/e_comp_wl.h
+++ b/src/bin/e_comp_wl.h
@@ -97,17 +97,17 @@ typedef struct E_Comp_Wl_Extension_Data
 {
struct
{
-  struct wl_resource *global;
+  struct wl_global *global;
   struct wl_client *client;
   void (*read_pixels)(E_Comp_Wl_Output *output, void *pixels);
} screenshooter;
 struct
 {
-   struct wl_resource *global;
+   struct wl_global *global;
 } session_recovery;
struct
{
-   struct wl_resource *global;
+   struct wl_global *global;
} www;
 } E_Comp_Wl_Extension_Data;
 
diff --git a/src/bin/e_comp_wl_extensions.c b/src/bin/e_comp_wl_extensions.c
index 446f2ef..4f5fac8 100644
--- a/src/bin/e_comp_wl_extensions.c
+++ b/src/bin/e_comp_wl_extensions.c
@@ -221,11 +221,6 @@ static const struct www_interface _e_www_interface =
 
 #define GLOBAL_BIND_CB(NAME, IFACE, ...) \
 static void \
-_e_comp_wl_##NAME##_cb_unbind(struct wl_resource *resource EINA_UNUSED) \
-{ \
-   e_comp_wl->extensions->NAME.global = NULL; \
-} \
-static void \
 _e_comp_wl_##NAME##_cb_bind(struct wl_client *client, void *data EINA_UNUSED, 
uint32_t version EINA_UNUSED, uint32_t id) \
 { \
struct wl_resource *res; \
@@ -237,8 +232,7 @@ _e_comp_wl_##NAME##_cb_bind(struct wl_client *client, void 
*data EINA_UNUSED, ui
 return;\
  }\
 \
-   e_comp_wl->extensions->NAME.global = res; \
-   wl_resource_set_implementation(res, &_e_##NAME##_interface, NULL, 
_e_comp_wl_##NAME##_cb_unbind);\
+   wl_resource_set_implementation(res, &_e_##NAME##_interface, NULL, NULL);\
 }
 
 GLOBAL_BIND_CB(session_recovery, zwp_e_session_recovery_interface)
@@ -248,12 +242,16 @@ GLOBAL_BIND_CB(www, www_interface)
 
 #define GLOBAL_CREATE_OR_RETURN(NAME, IFACE) \
do { \
-  if (!wl_global_create(e_comp_wl->wl.disp, &(IFACE), 1, \
-NULL, _e_comp_wl_##NAME##_cb_bind)) \
+  struct wl_global *global; \
+\
+  global = wl_global_create(e_comp_wl->wl.disp, &(IFACE), 1, \
+NULL, _e_comp_wl_##NAME##_cb_bind); \
+  if (!global) \
 { \
ERR("Could not add %s to wayland globals", #IFACE); \
return EINA_FALSE; \
 } \
+  e_comp_wl->extensions->NAME.global = global; \
} while (0)
 
 static Eina_Bool
@@ -275,6 +273,8 @@ _dmabuf_add(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
 EINTERN Eina_Bool
 e_comp_wl_extensions_init(void)
 {
+   e_comp_wl->extensions = E_NEW(E_Comp_Wl_Extension_Data, 1);
+
/* try to add session_recovery to wayland globals */
GLOBAL_CREATE_OR_RETURN(session_recovery, zwp_e_session_recovery_interface);
GLOBAL_CREATE_OR_RETURN(screenshooter, screenshooter_interface);
@@ -285,6 +285,5 @@ e_comp_wl_extensions_init(void)
e_client_hook_add(E_CLIENT_HOOK_MOVE_BEGIN, 
_e_comp_wl_extensions_client_move_begin, NULL);
e_client_hook_add(E_CLIENT_HOOK_MOVE_END, 
_e_comp_wl_extensions_client_move_end, NULL);
 
-   e_comp_wl->extensions = E_NEW(E_Comp_Wl_Extension_Data, 1);
return EINA_TRUE;
 }

-- 




[EGIT] [core/efl] master 01/01: Efl Object: Make event description arrays const.

2016-08-17 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit b623d89b0166e26eceee1f4dfb88b2ded0400c7e
Author: Tom Hacohen 
Date:   Wed Aug 17 11:24:48 2016 +0100

Efl Object: Make event description arrays const.

This was an oversight. They should have been const arrays, and not just 
arrays
of pointers to const items.
---
 src/bin/eolian/eo_generator.c | 2 +-
 src/lib/eo/Eo.h   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c
index 96e2618..425e03a 100644
--- a/src/bin/eolian/eo_generator.c
+++ b/src/bin/eolian/eo_generator.c
@@ -23,7 +23,7 @@ static const Efl_Op_Description _@#class_op_desc[] = 
{@#list_op\n};\n\n";
 
 static const char
 tmpl_events_desc[] = "\
-static const Efl_Event_Description *_@#class_event_desc[] = {@#list_evdesc\n\
+static const Efl_Event_Description * const _@#class_event_desc[] = 
{@#list_evdesc\n\
  NULL\n\
 };\n\n";
 
diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index b03b9ed..0911e34 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -411,7 +411,7 @@ struct _Efl_Class_Description
const char *name; /**< The name of the class. */
Efl_Class_Type type; /**< The type of the class. */
Efl_Object_Ops ops;  /**< The ops description, should be filled using 
#EFL_CLASS_DESCRIPTION_OPS (later sorted by Eo). */
-   const Efl_Event_Description **events; /**< The event descriptions for this 
class. */
+   const Efl_Event_Description * const *events; /**< The event descriptions 
for this class. */
size_t data_size; /**< The size of data (private + protected + public) this 
class needs per object. */
void (*class_constructor)(Efl_Class *klass); /**< The constructor of the 
class. */
void (*class_destructor)(Efl_Class *klass); /**< The destructor of the 
class. */

-- 




[EGIT] [core/enlightenment] master 01/01: bump efl wayland req to 1.18 now that it's out

2016-08-17 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 729b2d22d66dffef69b5419eaaee738aecd53eee
Author: Mike Blumenkrantz 
Date:   Wed Aug 17 07:02:02 2016 -0400

bump efl wayland req to 1.18 now that it's out
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 498090a..132a3b7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -678,7 +678,7 @@ AC_MSG_CHECKING([whether wayland EGL support is enabled])
 AC_MSG_RESULT([${e_cv_want_wayland_egl}])
 
 if test "x${e_cv_want_wayland_only}" != "xno" ;then
-  PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 >= 1.17.99 wayland-server >= 1.11.0 
wayland-client >= 1.11.0 xkbcommon uuid],
+  PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 >= 1.18 wayland-server >= 1.11.0 
wayland-client >= 1.11.0 xkbcommon uuid],
 [
   have_wayland=yes
   have_wayland_dep=true

-- 




[EGIT] [tools/eflete] master 01/01: import_edj: fix the style loading method.

2016-08-17 Thread Jaehwan Kim
jaehwan pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=219be7b55cc698af11c3e1a55d50fd4471ea584d

commit 219be7b55cc698af11c3e1a55d50fd4471ea584d
Author: Jaehwan Kim 
Date:   Wed Aug 17 19:06:39 2016 +0900

import_edj: fix the style loading method.

1. The all group that includes style name is loaded.
2. The style name should be same exactly.
3. When the group is copied, the origin group isn't loaded.

@fix
Fixes T4346
---
 .../project_manager/project_manager_import_edj.c   | 20 +--
 src/bin/ui/tab_home_import_edj.c   | 23 +++---
 2 files changed, 21 insertions(+), 22 deletions(-)

diff --git a/src/bin/project_manager/project_manager_import_edj.c 
b/src/bin/project_manager/project_manager_import_edj.c
index cd39d81..1356063 100644
--- a/src/bin/project_manager/project_manager_import_edj.c
+++ b/src/bin/project_manager/project_manager_import_edj.c
@@ -187,22 +187,22 @@ _project_import_edj(void *data)
 strbuf = eina_strbuf_new();
 eina_strbuf_append_printf(strbuf, "edje_pick -o %s -i %s", edj_out, 
edj_in);
 
-/* load any group for coping */
-if (ptd->widgets)
-  {
- obj = edje_edit_object_add(evas_object_evas_get(ap.win));
- if (!edje_object_file_set(obj, edj_in, 
eina_list_data_get(ptd->widgets)))
-   {
-  CRIT("Can't load object");
-  abort();
-   }
-  }
 EINA_LIST_FOREACH(ptd->widgets, l, group)
   {
  if ((group[0] == 'c') && (group[1] == 'p') && (group[2] == '*') 
&& (group[3] == '*') && (group[4] == '*'))
{
   char **arr = eina_str_split(group, "***", 0);
   you_shall_not_pass_editor_signals(NULL);
+  /* load any group for coping */
+  if (!obj)
+{
+   obj = 
edje_edit_object_add(evas_object_evas_get(ap.win));
+   if (!edje_object_file_set(obj, edj_in, arr[1]))
+ {
+CRIT("Can't load object");
+abort();
+ }
+}
   if (!editor_group_copy(obj, arr[1], arr[2]))
 {
CRIT("Can not copy group %s, to %s", arr[1], arr[2]);
diff --git a/src/bin/ui/tab_home_import_edj.c b/src/bin/ui/tab_home_import_edj.c
index e2c1e27..87a0bd5 100644
--- a/src/bin/ui/tab_home_import_edj.c
+++ b/src/bin/ui/tab_home_import_edj.c
@@ -620,9 +620,9 @@ _genlist_style_selected_set(Node *item, Eina_List *styles, 
Eina_Bool selected)
 {
Eina_List *l, *l1, *cp_style_list;
Node *node;
-   Eina_Stringshare *name, *name1, *style_name, *tmp;
-   const char *pos;
+   Eina_Stringshare *name, *name1, *sname, *style_name, *tmp;
char cp_style[256];
+   int len;
 
assert (item != NULL);
 
@@ -640,22 +640,21 @@ _genlist_style_selected_set(Node *item, Eina_List 
*styles, Eina_Bool selected)
  EINA_LIST_FOREACH(styles, l, name)
{
   style_name = option_style_name_get(name, _style_list);
-  if (!strcmp(style_name, "default"))
-{
-   pos = string_rstr(item->name, "base/default");
-   if (pos) tab_edj.widget_list = 
eina_list_append(tab_edj.widget_list, item->name);
-}
-  else
+  sname = style_name_get(item->name);
+  if (!strcmp(sname, style_name))
 {
-   pos = string_rstr(item->name, style_name);
-   if (pos)
+   if (!cp_style_list)
  {
 item->check = selected;
 tab_edj.widget_list = 
eina_list_append(tab_edj.widget_list, item->name);
+ }
+   else
+ {
 EINA_LIST_FOREACH(cp_style_list, l1, name1)
   {
- strncpy(cp_style, item->name, pos - 
item->name - 1);
- cp_style[pos - item->name] = '\0';
+ len = strlen(item->name) - strlen(sname);
+ strncpy(cp_style, item->name, len - 1);
+ cp_style[len - 1] = '\0';
  tmp = 
eina_stringshare_printf("cp***%s***%s/%s", item->name, cp_style, name1);
  tab_edj.widget_list = 
eina_list_append(tab_edj.widget_list, tmp);
   }

-- 




Re: [E-devel] Can't build doc for EFL

2016-08-17 Thread Nikita Zlobin
Yeah, i will try with doxygen live version, as well as manual building
without options.

Some of them are defaults for ebuild (glib and physics flags, last -
enabling dependence on bullet lib). I did not analyze flags, simply
copied configure line with all options from emerge log. I think, they
could eventually add some warnings into ebuild about extra functionality
loss without some use flags.

В Wed, 17 Aug 2016 11:40:19 +0200
Stefan Schmidt  пишет:

> Hello.
> 
> On 17/08/16 10:40, Stefan Schmidt wrote:
> > Hello.
> >
> > On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote:  
> >> On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobin
> >>  said: 
> >>> Hit, it is gentoo S). And this is not first case.
> >>> But in turn, i remember case - when i took part in ladish
> >>> development, i used ubuntu... and my code, being ok on my system,
> >>> segfailed on gentoo system of project leader, revealing one hard
> >>> to detect bug.
> >>>
> >>> doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...)
> >>>
> >>> As for configuration, i took them from ebuild log:
> >>> $ ./configure --enable-cserve --enable-image-loader-generic
> >>> --enable-image-loader-jpeg --disable-tizen --disable-gesture
> >>> --disable-gstreamer --enable-xinput2 --disable-xinput22
> >>> --disable-multisense --enable-libmount --with-opengl-full
> >>> --disable-physics --with-glib=no --enable-image-loader-jp2k
> >>> --enable-gnutls
> >>> --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb
> >>> --prefix=/usr
> >>>
> >>> As for bugs - you can see there one veeery lonnng option, so
> >>> decided to consult. Can't beleive, that these options might cause
> >>> doc making to fail.  
> >>
> >> --enable-cserve <- you know this is enabled by default? why enable?
> >> --enable-image-loader-generic <- enabled by default too
> >> --enable---disable-image-loader-jpeg <- enabled by default too
> >> --disable-tizen <- disabled by defaault...
> >> --disable-gesture <- disabled by default...
> >> --disable-gstreamer <- you know this is disabled by default...
> >> --disable-multisense <- you do know this breaks theme
> >> functionality right? --enable-libmount <- you know itss enabled by
> >> default? --with-opengl-full <- you know this is a typo? it should
> >> be: --with-opengl=full ... and this is the default anyway...
> >> --disable-physics <- you know this can break theme functionality
> >> right? --with-glib=no <- you know this can create problems with
> >> things like the ibus imf modules which require it (because libibus
> >> need glib mainloop stuff), though you don't enable the ibus imf
> >> module here...? --enable-gnutls <- why gnutls not openssl. you
> >> know we test openssl as it's the default. gnutls gets little to no
> >> testing. also optimization - little to none with it.
> >>
> >> almost all your options are redundant and several i would think
> >> are dubious to alter... though none of these SHOULD affect
> >> document generation - maybe unless there is more glib main loop
> >> integration that is needed that we've missed (scim? something
> >> else?) and since it's on by default ... we haven't seen the
> >> brokenness with it off. there is a reason we make you put in that
> >> insanely long option accepting your fate if you stray from tested
> >> defaults that might have an effect.  
> >
> > We can easily tell if it works with the default configure options
> > on his system. Nikita, can you run a configure without these
> > options (any options at all) followed by a make and a make doc?
> >
> > This is not going to install anything so it will not touch your
> > system.
> >
> > If that still breaks the same way as before it is more likely a
> > problem with your doxygen version. It works for me here with
> > 1.8.9.1 and yours is 1.8.11. So if it still fails the next try
> > might be to downgrade your doxygen version and see if that helps.  
> 
> I did the inverted test and tried with doxygen 1.8.11 (which is the 
> latest release, December 2015) and can verify that it breaks our doc 
> build the way you reported.
> 
> Latest doxygen from their git repo works though. So it is really a 
> problem in 1.8.11 (maybe also 1.8.10) and is fixed already. We can
> only hope for a new release or go back to an older version.
> 
> regards
> Stefan Schmidt
> 
> --
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Can't build doc for EFL

2016-08-17 Thread The Rasterman
On Wed, 17 Aug 2016 10:40:46 +0200 Stefan Schmidt  said:

> Hello.
> 
> On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote:
> > On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobin 
> > said:
> >
> >> Hit, it is gentoo S). And this is not first case.
> >> But in turn, i remember case - when i took part in ladish development,
> >> i used ubuntu... and my code, being ok on my system, segfailed on
> >> gentoo system of project leader, revealing one hard to detect bug.
> >>
> >> doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...)
> >>
> >> As for configuration, i took them from ebuild log:
> >> $ ./configure --enable-cserve --enable-image-loader-generic
> >> --enable-image-loader-jpeg --disable-tizen --disable-gesture
> >> --disable-gstreamer --enable-xinput2 --disable-xinput22
> >> --disable-multisense --enable-libmount --with-opengl-full
> >> --disable-physics --with-glib=no --enable-image-loader-jp2k
> >> --enable-gnutls
> >> --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb
> >> --prefix=/usr
> >>
> >> As for bugs - you can see there one veeery lonnng option, so
> >> decided to consult. Can't beleive, that these options might cause doc
> >> making to fail.
> >
> > --enable-cserve <- you know this is enabled by default? why enable?
> > --enable-image-loader-generic <- enabled by default too
> > --enable---disable-image-loader-jpeg <- enabled by default too
> > --disable-tizen <- disabled by defaault...
> > --disable-gesture <- disabled by default...
> > --disable-gstreamer <- you know this is disabled by default...
> > --disable-multisense <- you do know this breaks theme functionality right?
> > --enable-libmount <- you know itss enabled by default?
> > --with-opengl-full <- you know this is a typo? it should be:
> >   --with-opengl=full ... and this is the default anyway...
> > --disable-physics <- you know this can break theme functionality right?
> > --with-glib=no <- you know this can create problems with things like the
> > ibus imf modules which require it (because libibus need glib mainloop
> > stuff), though you don't enable the ibus imf module here...?
> > --enable-gnutls <- why gnutls not openssl. you know we test openssl as it's
> >   the default. gnutls gets little to no testing. also optimization - little
> > to none with it.
> >
> > almost all your options are redundant and several i would think are dubious
> > to alter... though none of these SHOULD affect document generation - maybe
> > unless there is more glib main loop integration that is needed that we've
> > missed (scim? something else?) and since it's on by default ... we haven't
> > seen the brokenness with it off. there is a reason we make you put in that
> > insanely long option accepting your fate if you stray from tested defaults
> > that might have an effect.
> 
> We can easily tell if it works with the default configure options on his 
> system. Nikita, can you run a configure without these options (any 
> options at all) followed by a make and a make doc?
> 
> This is not going to install anything so it will not touch your system.
> 
> If that still breaks the same way as before it is more likely a problem 
> with your doxygen version. It works for me here with 1.8.9.1 and yours 
> is 1.8.11. So if it still fails the next try might be to downgrade your 
> doxygen version and see if that helps.

i think actually files are missing from the makefile'am's extra dist - try and
make doc FROM the tarball not from git... :)


-- 
- Codito, ergo sum - "I code, therefore I am" --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Can't build doc for EFL

2016-08-17 Thread Stefan Schmidt
Hello.

On 17/08/16 10:40, Stefan Schmidt wrote:
> Hello.
>
> On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote:
>> On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobin  said:
>>
>>> Hit, it is gentoo S). And this is not first case.
>>> But in turn, i remember case - when i took part in ladish development,
>>> i used ubuntu... and my code, being ok on my system, segfailed on
>>> gentoo system of project leader, revealing one hard to detect bug.
>>>
>>> doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...)
>>>
>>> As for configuration, i took them from ebuild log:
>>> $ ./configure --enable-cserve --enable-image-loader-generic
>>> --enable-image-loader-jpeg --disable-tizen --disable-gesture
>>> --disable-gstreamer --enable-xinput2 --disable-xinput22
>>> --disable-multisense --enable-libmount --with-opengl-full
>>> --disable-physics --with-glib=no --enable-image-loader-jp2k
>>> --enable-gnutls
>>> --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb
>>> --prefix=/usr
>>>
>>> As for bugs - you can see there one veeery lonnng option, so
>>> decided to consult. Can't beleive, that these options might cause doc
>>> making to fail.
>>
>> --enable-cserve <- you know this is enabled by default? why enable?
>> --enable-image-loader-generic <- enabled by default too
>> --enable---disable-image-loader-jpeg <- enabled by default too
>> --disable-tizen <- disabled by defaault...
>> --disable-gesture <- disabled by default...
>> --disable-gstreamer <- you know this is disabled by default...
>> --disable-multisense <- you do know this breaks theme functionality right?
>> --enable-libmount <- you know itss enabled by default?
>> --with-opengl-full <- you know this is a typo? it should be:
>>   --with-opengl=full ... and this is the default anyway...
>> --disable-physics <- you know this can break theme functionality right?
>> --with-glib=no <- you know this can create problems with things like the ibus
>>   imf modules which require it (because libibus need glib mainloop stuff),
>>   though you don't enable the ibus imf module here...?
>> --enable-gnutls <- why gnutls not openssl. you know we test openssl as it's
>>   the default. gnutls gets little to no testing. also optimization - little 
>> to
>>   none with it.
>>
>> almost all your options are redundant and several i would think are dubious 
>> to
>> alter... though none of these SHOULD affect document generation - maybe 
>> unless
>> there is more glib main loop integration that is needed that we've missed
>> (scim? something else?) and since it's on by default ... we haven't seen the
>> brokenness with it off. there is a reason we make you put in that insanely 
>> long
>> option accepting your fate if you stray from tested defaults that might have 
>> an
>> effect.
>
> We can easily tell if it works with the default configure options on his
> system. Nikita, can you run a configure without these options (any
> options at all) followed by a make and a make doc?
>
> This is not going to install anything so it will not touch your system.
>
> If that still breaks the same way as before it is more likely a problem
> with your doxygen version. It works for me here with 1.8.9.1 and yours
> is 1.8.11. So if it still fails the next try might be to downgrade your
> doxygen version and see if that helps.

I did the inverted test and tried with doxygen 1.8.11 (which is the 
latest release, December 2015) and can verify that it breaks our doc 
build the way you reported.

Latest doxygen from their git repo works though. So it is really a 
problem in 1.8.11 (maybe also 1.8.10) and is fixed already. We can only 
hope for a new release or go back to an older version.

regards
Stefan Schmidt

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: evas/gl_x11 : Add multiple_buffer member in native surface x11 type union.

2016-08-17 Thread Minkyoung Kim
jpeg pushed a commit to branch master.

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

commit 042e94f10d821494bc79eb84637abfdff6e04bf7
Author: Minkyoung Kim 
Date:   Wed Aug 17 17:50:18 2016 +0900

evas/gl_x11 : Add multiple_buffer member in native surface x11 type union.

Summary:
If native surface is multiple buffer pixmap such as named pixmap, Evas 
should recreate eglImage everyframe.
Because DDK get the buffer ID once at eglImageCreate time.
So if internal buffer ID is changed, should recreate eglImage.

Test Plan: Wearable Tizen.

Reviewers: wonsik, raster, cedric, jpeg

Reviewed By: jpeg

Subscribers: spacegrapher, dkdk, cedric

Differential Revision: https://phab.enlightenment.org/D4211
---
 src/lib/evas/Evas_Legacy.h |  3 +-
 src/modules/evas/engines/gl_x11/evas_engine.c  | 32 ++
 .../engines/software_generic/evas_native_common.h  |  1 +
 3 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index 9608891..b200c28 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -3245,7 +3245,7 @@ EAPI void  
evas_object_image_memfile_set(Evas_Object *ob
  * Magic version number to know what the native surface struct looks like
  */
 
-#define EVAS_NATIVE_SURFACE_VERSION 3
+#define EVAS_NATIVE_SURFACE_VERSION 4
 
 /**
  * Native surface types that image object supports
@@ -3300,6 +3300,7 @@ typedef struct _Evas_Native_Surface
   {
  void *visual; /**< visual of the pixmap to use (Visual) */
  unsigned long pixmap; /**< pixmap id to use (Pixmap) */
+ unsigned int  multiple_buffer; /**< From version 4. 1 if pixmap is 
multiple buffer pixmap such as named pixmap created by enlightenment. driver 
dependent. @since 1.19 */
   } x11; /**< Set this struct fields if surface data is X11 based. */
 
   struct
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c 
b/src/modules/evas/engines/gl_x11/evas_engine.c
index 34e04e5..093a025 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -2037,6 +2037,31 @@ _native_bind_cb(void *image)
 #ifdef GL_GLES
if (n->ns_data.x11.surface)
  {
+if (n->ns_data.x11.multiple_buffer)
+  {
+ EGLint err;
+ if (!glsym_eglDestroyImage || !glsym_eglCreateImage)
+   {
+  ERR("Try eglDestroyImage()/eglCreateImage() on EGL with 
no support");
+  return;
+   }
+
+ glsym_eglDestroyImage(im->native.disp, 
n->ns_data.x11.surface);
+ if ((err = eglGetError()) != EGL_SUCCESS)
+   {
+  ERR("eglDestroyImage() failed.");
+  glsym_evas_gl_common_error_set(err - EGL_SUCCESS);
+   }
+
+ n->ns_data.x11.surface = glsym_eglCreateImage(im->native.disp,
+   EGL_NO_CONTEXT,
+   EGL_NATIVE_PIXMAP_KHR,
+   (void 
*)n->ns_data.x11.pixmap,
+   NULL);
+ if (!n->ns_data.x11.surface)
+   ERR("eglCreateImage() for Pixmap 0x%#lx failed: %#x", 
n->ns_data.x11.pixmap, eglGetError());
+
+  }
 if (glsym_glEGLImageTargetTexture2DOES)
   {
  glsym_glEGLImageTargetTexture2DOES(im->native.target, 
n->ns_data.x11.surface);
@@ -2628,6 +2653,13 @@ eng_image_native_set(void *data, void *image, void 
*native)
EGL_NO_CONTEXT,

EGL_NATIVE_PIXMAP_KHR,
(void *)pm, 
NULL);
+
+ if ((ns->version < 4) ||
+ ((ns->version == 4) && !(ns->data.x11.multiple_buffer == 
1)))
+   n->ns_data.x11.multiple_buffer = 0;
+ else
+   n->ns_data.x11.multiple_buffer = 1;
+
  if (!n->ns_data.x11.surface)
{
   ERR("eglCreateImage() for Pixmap %#lx failed: %#x", pm, 
eglGetError());
diff --git a/src/modules/evas/engines/software_generic/evas_native_common.h 
b/src/modules/evas/engines/software_generic/evas_native_common.h
index a13b7a0..a3b721d 100644
--- a/src/modules/evas/engines/software_generic/evas_native_common.h
+++ b/src/modules/evas/engines/software_generic/evas_native_common.h
@@ -64,6 +64,7 @@ struct _Native
  void *buffer;
  void 

Re: [E-devel] Can't build doc for EFL

2016-08-17 Thread Stefan Schmidt
Hello.

On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote:
> On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobin  said:
>
>> Hit, it is gentoo S). And this is not first case.
>> But in turn, i remember case - when i took part in ladish development,
>> i used ubuntu... and my code, being ok on my system, segfailed on
>> gentoo system of project leader, revealing one hard to detect bug.
>>
>> doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...)
>>
>> As for configuration, i took them from ebuild log:
>> $ ./configure --enable-cserve --enable-image-loader-generic
>> --enable-image-loader-jpeg --disable-tizen --disable-gesture
>> --disable-gstreamer --enable-xinput2 --disable-xinput22
>> --disable-multisense --enable-libmount --with-opengl-full
>> --disable-physics --with-glib=no --enable-image-loader-jp2k
>> --enable-gnutls
>> --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb
>> --prefix=/usr
>>
>> As for bugs - you can see there one veeery lonnng option, so
>> decided to consult. Can't beleive, that these options might cause doc
>> making to fail.
>
> --enable-cserve <- you know this is enabled by default? why enable?
> --enable-image-loader-generic <- enabled by default too
> --enable---disable-image-loader-jpeg <- enabled by default too
> --disable-tizen <- disabled by defaault...
> --disable-gesture <- disabled by default...
> --disable-gstreamer <- you know this is disabled by default...
> --disable-multisense <- you do know this breaks theme functionality right?
> --enable-libmount <- you know itss enabled by default?
> --with-opengl-full <- you know this is a typo? it should be:
>   --with-opengl=full ... and this is the default anyway...
> --disable-physics <- you know this can break theme functionality right?
> --with-glib=no <- you know this can create problems with things like the ibus
>   imf modules which require it (because libibus need glib mainloop stuff),
>   though you don't enable the ibus imf module here...?
> --enable-gnutls <- why gnutls not openssl. you know we test openssl as it's
>   the default. gnutls gets little to no testing. also optimization - little to
>   none with it.
>
> almost all your options are redundant and several i would think are dubious to
> alter... though none of these SHOULD affect document generation - maybe unless
> there is more glib main loop integration that is needed that we've missed
> (scim? something else?) and since it's on by default ... we haven't seen the
> brokenness with it off. there is a reason we make you put in that insanely 
> long
> option accepting your fate if you stray from tested defaults that might have 
> an
> effect.

We can easily tell if it works with the default configure options on his 
system. Nikita, can you run a configure without these options (any 
options at all) followed by a make and a make doc?

This is not going to install anything so it will not touch your system.

If that still breaks the same way as before it is more likely a problem 
with your doxygen version. It works for me here with 1.8.9.1 and yours 
is 1.8.11. So if it still fails the next try might be to downgrade your 
doxygen version and see if that helps.

regards
Stefan Schmidt


--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/02: Efl object: implement CoW for the function vtables

2016-08-17 Thread Tom Hacohen
On 17/08/16 00:17, Carsten Haitzler (The Rasterman) wrote:
> On Tue, 16 Aug 2016 16:36:20 +0100 Tom Hacohen  said:
>
>> This change means you can abuse efl_object_override() a bit more and
>> rely on it in API. Because while the save is significant for normal
>> classes, it would be even more significant for object override because
>> the amount of shared vtables will be higher (most likely, as the number
>> of overrides tends to be smaller and more clustered).
>
> shouldn't this be efl_override() now anyway? ... why object? of course its an
> object... every eo api works on an object... or maybe it should be
> efl_func_override or efl_method_override() ... :)

I changed some of the APIs to "efl_object_" instead of the "efl_" 
because I felt they really felt ambiguous and not descriptive enough. 
I'm happy with changing this to whatever people want. I prefer 
object_override than the suggestions above though I don't really care.

>
>> --
>> Tom.
>>
>>
>> On 16/08/16 16:34, Tom Hacohen wrote:
>>> tasn pushed a commit to branch master.
>>>
>>> http://git.enlightenment.org/core/efl.git/commit/?id=28c80f91221ae2639f4573046d8621a2a4d18cda
>>>
>>> commit 28c80f91221ae2639f4573046d8621a2a4d18cda
>>> Author: Tom Hacohen 
>>> Date:   Mon Aug 15 17:11:13 2016 +0100
>>>
>>> Efl object: implement CoW for the function vtables
>>>
>>> This commit implements a sort of CoW for the vtables. The vtables are
>>> usually just linked to and refcounted. When we need to change them we
>>> allocate new ones and copy them over so we can write to them.
>>>
>>> I wrote some code to measure the effectiveness of this change. When
>>> running elementary_test (and immediately exiting) I saw that out of the
>>> total number of vtable chains (561) that were needed by the classes in
>>> the EFL, 79 (14.08%) were reused. Considering that I had to add
>>> refcounting (unsigned short, but let's consider it's the size of a word
>>> because of alignment), I would calculate the saving as such (in bytes):
>>>
>>> Number of items in a chain (refcounted block): 32
>>>
>>> 32 bit:
>>> sizeof(chain_node) = 8
>>> Mem wasted on refcounting: 561 * 4 = 2244
>>> Mem saved because of sharing: 79 * (32 * 8) = 20224
>>> Total save: 17980 bytes
>>>
>>> 64 bit:
>>> sizeof(chain_node) = 16
>>> Mem wasted on refcounting: 561 * 8 = 4488
>>> Mem saved because of sharing: 79 * (32 * 16) = 40448
>>> Total save: 35960 bytes
>>>
>>> Wow, we use a lot of memory in Eo classes, I'm sure we can
>>> save even more if we put our hearts into it (change the shareable units
>>> to be smaller to increase the chance of sharing).
>>> This is internal and doesn't affect API/ABI so we can change this even
>>> further with time.
>>>
>>> This also improves efl_object_override(). This should now be quite
>>> memory efficient (don't abuse, but it's not a big hogg as it was), so
>>> feel free to abuse that one and rely on it in API.
>>>
>>> @feature
>>> ---
>>>  src/lib/eo/eo.c | 114 +++
>>> + src/lib/eo/eo_private.h |  14 +-
>>>  2 files changed, 98 insertions(+), 30 deletions(-)
>>>
>>> diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
>>> index 9104a9e..0f530b4 100644
>>> --- a/src/lib/eo/eo.c
>>> +++ b/src/lib/eo/eo.c
>>> @@ -41,12 +41,6 @@ static inline void _efl_data_xunref_internal(_Eo_Object
>>> *obj, void *data, const
>>>
>>>  /* Start of Dich */
>>>
>>> -/* How we search and store the implementations in classes. */
>>> -#define DICH_CHAIN_LAST_BITS 5
>>> -#define DICH_CHAIN_LAST_SIZE (1 << DICH_CHAIN_LAST_BITS)
>>> -#define DICH_CHAIN1(x) ((x) >> DICH_CHAIN_LAST_BITS)
>>> -#define DICH_CHAIN_LAST(x) ((x) & ((1 << DICH_CHAIN_LAST_BITS) - 1))
>>> -
>>>
>>>  /* We are substracting the mask here instead of "AND"ing because it's a
>>> hot path,
>>>   * it should be a valid class at this point, and this lets the compiler do
>>> 1 @@ -58,11 +52,86 @@ static inline void _efl_data_xunref_internal
>>> (_Eo_Object *obj, void *data, const })
>>>
>>>  static inline void
>>> +_vtable_chain2_unref(Dich_Chain2 *chain)
>>> +{
>>> +   if (--(chain->refcount) == 0)
>>> + {
>>> +free(chain);
>>> + }
>>> +}
>>> +
>>> +static inline void
>>>  _vtable_chain_alloc(Dich_Chain1 *chain1)
>>>  {
>>> -   if (!chain1->funcs)
>>> +   chain1->chain2 = calloc(1, sizeof(*(chain1->chain2)));
>>> +   chain1->chain2->refcount = 1;
>>> +}
>>> +
>>> +static inline void _vtable_chain_write_prepare(Dich_Chain1 *dst);
>>> +
>>> +static inline void
>>> +_vtable_chain_merge(Dich_Chain1 *dst, const Dich_Chain1 *src)
>>> +{
>>> +   Eina_Bool writeable = EINA_FALSE;
>>> +   size_t j;
>>> +   const op_type_funcs *sf = src->chain2->funcs;
>>> +   op_type_funcs *df = dst->chain2->funcs;
>>> +
>>> +   if (df == sf)
>>>   {
>>> -chain1->funcs = calloc(DICH_CHAIN_LAST_SIZE, sizeof(*

Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support

2016-08-17 Thread Tom Hacohen
On 17/08/16 09:28, Carsten Haitzler (The Rasterman) wrote:
> On Wed, 17 Aug 2016 09:20:52 +0100 Tom Hacohen  said:
>
>> On 17/08/16 00:42, Carsten Haitzler (The Rasterman) wrote:
>>> On Tue, 16 Aug 2016 20:16:04 -0300 Iván Briano 
>>> said:
>>>
 On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote:
> On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz
>  said:
>
> no worries. it's the same for SSH_ASKPASS too - you still get the normal
> tty password req is there is a tty. if there is not both sudo and ssh can
> fail (unless you have a no-password ssh key or sudo is configured for
> nopasswd for your user). so these work as normal in the no password
> cases. in the cases you do need a password both will fail completely.
> this adds this little utility so these don't hail anymore if they are
> in .desktop file or other command/app/script you launch from within
> e... :) overall this makes e more functional... thus i don't see a
> problem in ALWAYS setting the env var. if someone dislikes this they can
> override the env vars or unset them in scripts. and even in e's
> environment var settings since e_env_init is called after these env vars
> are set... :) but for the vast majority of people .. they don't need this
> or likely want it.. and things went from not working to working out of
> the box with no effort on their part. :)
>
> some small things to improve in e here. i'll poke around some other small
> things here and there as i get the time. :)

 Now explain the do { } while(0). If all you wanted to do was indent the
 blocks hierarchically, why not just { }? I had to pay to download all
 those extra characters.
>>>
>>> technically  {} is not legal. it works. thats why so many macros in our
>>> public headers have do { } while (0); because a { } may not work.
>>>
>>> http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for
>>>
>>> it's a habit i've grown from making sure macros work. yes - using it to
>>> indent the code so you can clearly see child/parent relationships in
>>> widgets. i'm trying this out as a way to make things look more readable
>>> when going over gui layout code.
>>>
>>
>> A slight correction: as far as I know, {} is perfectly legal (I used it
>> all the time everywhere). However, as you mentioned, you should not use
>> it in macros, and should use do-while instead. The reason for that is to
>> force a semicolon at the end of macros.
>>
>> For macros FOO1 and 2:
>> #define FOO1(x) { ... }
>> #define FOO2(x) do { ... } while (0)
>>
>>
>> FOO1(1) // will work
>> FOO1(1); // will possibly generate a warning for extraneous semicolon
>>
>> FOO2(1) // will not compile
>> FOO2(1); // will work as expected.
>>
>> I use {} and I think it's better than putting do-while in code, but I
>> think if you insist on using a loop construct for indention, I'd do "if
>> (1)" or something like that.
>
> as i said - its habit from making macros correct. :) as i said... :) it does
> the job. :)

I wasn't arguing with you, just clarifying for everyone. :)

NEWS FLASH: Carsten knows how to write C...

Anyone surprised? No? Thought so... :)

--
Tom.


--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 04/06: emile: region_set does not working in jpeg loader if scale_down has set

2016-08-17 Thread jiin.moon
jpeg pushed a commit to branch master.

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

commit fecbcf8a905e30345d3454c9cdb665a6d7b098bc
Author: jiin.moon 
Date:   Wed Aug 17 16:39:13 2016 +0900

emile: region_set does not working in jpeg loader if scale_down has set

Summary:
If both region and scale_down has set, ERR would be returned by loader of 
jpeg.

@fix

Test Plan: sample code

Reviewers: raster, jypark, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4200
---
 src/lib/emile/emile_image.c | 31 +++
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/src/lib/emile/emile_image.c b/src/lib/emile/emile_image.c
index 5bad68c..5c12035 100644
--- a/src/lib/emile/emile_image.c
+++ b/src/lib/emile/emile_image.c
@@ -1724,11 +1724,6 @@ _emile_jpeg_data(Emile_Image *image,
  {
 region = 1;
 
-opts_region.x = opts->region.x;
-opts_region.y = opts->region.y;
-opts_region.w = opts->region.w;
-opts_region.h = opts->region.h;
-
 if (prop->rotated)
   {
  unsigned int load_region_x = 0, load_region_y = 0;
@@ -1738,19 +1733,31 @@ _emile_jpeg_data(Emile_Image *image,
  load_region_y = opts->region.y;
  load_region_w = opts->region.w;
  load_region_h = opts->region.h;
-
  _rotate_region(_region.x, _region.y,
 _region.w, _region.h,
 load_region_x, load_region_y,
 load_region_w, load_region_h,
 w, h, degree, prop->flipped);
   }
-#ifdef BUILD_LOADER_JPEG_REGION
-cinfo.region_x = opts_region.x;
-cinfo.region_y = opts_region.y;
-cinfo.region_w = opts_region.w;
-cinfo.region_h = opts_region.h;
-#endif
+
+ /* scale value already applied when decompress.
+When access to decoded image, have to apply scale value to region 
value */
+if (prop->scale > 1)
+  {
+ opts_region.x = opts->region.x / prop->scale;
+ opts_region.y = opts->region.y / prop->scale;
+ opts_region.w = opts->region.w / prop->scale;
+ opts_region.h = opts->region.h / prop->scale;
+
+  }
+else
+  {
+ opts_region.x = opts->region.x;
+ opts_region.y = opts->region.y;
+ opts_region.w = opts->region.w;
+ opts_region.h = opts->region.h;
+  }
+
  }
if ((!region) && ((w != ie_w) || (h != ie_h)))
  {

-- 




[EGIT] [core/efl] master 03/06: photocam: Fix region load + scale down options

2016-08-17 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 3bdefaf31fde9801ce6702f850aac24bc2157842
Author: Jean-Philippe Andre 
Date:   Wed Aug 17 16:23:16 2016 +0900

photocam: Fix region load + scale down options

I have no idea how photocam even worked before. @jiin.moon
exposed a major issue in photocam by fixing how the jpg loader
scale down + region load combination works.

@fix
---
 src/lib/elementary/elm_photocam.c | 21 +++--
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/lib/elementary/elm_photocam.c 
b/src/lib/elementary/elm_photocam.c
index 4bdda88..08c11ab 100644
--- a/src/lib/elementary/elm_photocam.c
+++ b/src/lib/elementary/elm_photocam.c
@@ -567,21 +567,22 @@ _grid_create(Evas_Object *obj)
  int tn;
 
  tn = (y * g->gw) + x;
- g->grid[tn].src.x = x * g->tsize;
+ g->grid[tn].out.x = x * g->tsize;
  if (x == (g->gw - 1))
-   g->grid[tn].src.w = g->w - ((g->gw - 1) * g->tsize);
+   g->grid[tn].out.w = g->w - ((g->gw - 1) * g->tsize);
  else
-   g->grid[tn].src.w = g->tsize;
- g->grid[tn].src.y = y * g->tsize;
+   g->grid[tn].out.w = g->tsize;
+ g->grid[tn].out.y = y * g->tsize;
  if (y == (g->gh - 1))
-   g->grid[tn].src.h = g->h - ((g->gh - 1) * g->tsize);
+   g->grid[tn].out.h = g->h - ((g->gh - 1) * g->tsize);
  else
-   g->grid[tn].src.h = g->tsize;
+   g->grid[tn].out.h = g->tsize;
 
- g->grid[tn].out.x = g->grid[tn].src.x;
- g->grid[tn].out.y = g->grid[tn].src.y;
- g->grid[tn].out.w = g->grid[tn].src.w;
- g->grid[tn].out.h = g->grid[tn].src.h;
+ if (g->zoom <= 0) g->zoom = 1;
+ g->grid[tn].src.x = g->grid[tn].out.x * g->zoom;
+ g->grid[tn].src.y = g->grid[tn].out.y * g->zoom;
+ g->grid[tn].src.w = g->grid[tn].out.w * g->zoom;
+ g->grid[tn].src.h = g->grid[tn].out.h * g->zoom;
 
  g->grid[tn].obj = obj;
  g->grid[tn].img =

-- 




[EGIT] [core/efl] master 06/06: evas: Fix BMP load with region set and scale down

2016-08-17 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit be5381960ba08ec14564d6bf7555a97a28f8bbf9
Author: Jean-Philippe Andre 
Date:   Wed Aug 17 17:21:33 2016 +0900

evas: Fix BMP load with region set and scale down

This fixes usage of photocam on large BMP images.
Follows previous commits by @jiin.moon.
---
 src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c 
b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c
index 2b8fc26..93f4d59 100644
--- a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c
+++ b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c
@@ -499,6 +499,7 @@ evas_image_load_file_data_bmp(void *loader_data,
if (!_evas_image_load_file_header(map, fsize, , _size, 
, error))
  goto close_file;
 
+   *error = EVAS_LOAD_ERROR_GENERIC;
if (header.height < 0)
  {
 header.height = -header.height;
@@ -511,7 +512,7 @@ evas_image_load_file_data_bmp(void *loader_data,
   *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
 else
   *error = EVAS_LOAD_ERROR_GENERIC;
-   goto close_file;
+goto close_file;
  }
image_w = region_w = header.width;
image_h = region_h = header.height;
@@ -553,7 +554,7 @@ evas_image_load_file_data_bmp(void *loader_data,
if ((header.width != (int)prop->w) || (header.height != (int)prop->h))
  {
*error = EVAS_LOAD_ERROR_GENERIC;
-   goto close_file;
+goto close_file;
  }
 
row_size = ceil((double)(image_w * header.bit_count) / 32) * 4;
@@ -564,6 +565,9 @@ evas_image_load_file_data_bmp(void *loader_data,
if (image_size > row_size * header.height)
  image_size = row_size * header.height;
 
+   if (region_set)
+ read_line = region_y;
+
if (header.bit_count < 16)
  {
 unsigned int i;

-- 




[EGIT] [core/efl] master 02/06: evas: Add support for region load with PNG files

2016-08-17 Thread jiin.moon
jpeg pushed a commit to branch master.

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

commit 922a1bcd9e667e6d3d47df12f49d91a7351f3fe0
Author: jiin.moon 
Date:   Wed Aug 17 16:07:22 2016 +0900

evas: Add support for region load with PNG files

Summary:
PNG loader support  region_set when decoding
@feature

Reviewers: cedric, jpeg, jypark, raster

Subscribers: raster

Differential Revision: https://phab.enlightenment.org/D4165
---
 .../evas/image_loaders/png/evas_image_load_png.c   | 64 ++
 1 file changed, 54 insertions(+), 10 deletions(-)

diff --git a/src/modules/evas/image_loaders/png/evas_image_load_png.c 
b/src/modules/evas/image_loaders/png/evas_image_load_png.c
index 6b5395e..15660af 100644
--- a/src/modules/evas/image_loaders/png/evas_image_load_png.c
+++ b/src/modules/evas/image_loaders/png/evas_image_load_png.c
@@ -156,7 +156,27 @@ evas_image_load_file_head_png(void *loader_data,
  *error = EVAS_LOAD_ERROR_GENERIC;
goto close_file;
  }
-   if (opts->scale_down_by > 1)
+
+   if (opts->region.w > 0 && opts->region.h > 0)
+ {
+if ((w32 < opts->region.x + opts->region.w) ||
+(h32 < opts->region.y + opts->region.h))
+  {
+ *error = EVAS_LOAD_ERROR_GENERIC;
+ goto close_file;
+  }
+if(opts->scale_down_by > 1)
+  {
+ prop->w = opts->region.w / opts->scale_down_by;
+ prop->h = opts->region.h / opts->scale_down_by;
+  }
+else
+  {
+ prop->w = opts->region.w;
+ prop->h = opts->region.h;
+  }
+ }
+   else if (opts->scale_down_by > 1)
  {
 prop->w = (int) w32 / opts->scale_down_by;
 prop->h = (int) h32 / opts->scale_down_by;
@@ -222,6 +242,7 @@ evas_image_load_file_data_png(void *loader_data,
char passes;
int i, j, p, k;
volatile int scale_ratio = 1;
+   volatile int region_set = 0;
int image_w = 0, image_h = 0;
volatile Eina_Bool r = EINA_FALSE;
 
@@ -287,11 +308,20 @@ evas_image_load_file_data_png(void *loader_data,
 w32 /= scale_ratio;
 h32 /= scale_ratio;
  }
+
+   if ((opts->region.w > 0 && opts->region.h > 0) &&
+   (opts->region.w != image_w || opts->region.h != image_h))
+ {
+w32 = opts->region.w / scale_ratio;
+h32 = opts->region.h / scale_ratio;
+region_set = 1;
+ }
+
if (prop->w != w32 ||
prop->h != h32)
  {
-   *error = EVAS_LOAD_ERROR_GENERIC;
-   goto close_file;
+  *error = EVAS_LOAD_ERROR_GENERIC;
+  goto close_file;
  }
 
surface = pixels;
@@ -354,7 +384,7 @@ evas_image_load_file_data_png(void *loader_data,
passes = png_set_interlace_handling(png_ptr);

/* we read image line by line if scale down was set */
-   if (scale_ratio == 1)
+   if (scale_ratio == 1 && region_set == 0)
  {
 for (p = 0; p < passes; p++)
   {
@@ -366,15 +396,26 @@ evas_image_load_file_data_png(void *loader_data,
else
  {
 unsigned char *src_ptr, *dst_ptr;
-
+int skip_row = 0, region_x = 0, region_y = 0;
 dst_ptr = surface;
+
+if (region_set)
+  {
+ region_x = opts->region.x;
+ region_y = opts->region.y;
+  }
+
 if (passes == 1)
   {
  tmp_line = (unsigned char *) alloca(image_w * pack_offset);
+
+ for (skip_row = 0; skip_row < region_y; skip_row++)
+   png_read_row(png_ptr, tmp_line, NULL);
+
  for (i = 0; i < h; i++)
{
   png_read_row(png_ptr, tmp_line, NULL);
-  src_ptr = tmp_line;
+  src_ptr = tmp_line + region_x * pack_offset;
   for (j = 0; j < w; j++)
 {
for (k = 0; k < (int)pack_offset; k++)
@@ -385,6 +426,8 @@ evas_image_load_file_data_png(void *loader_data,
   for (j = 0; j < (scale_ratio - 1); j++)
 png_read_row(png_ptr, tmp_line, NULL);
}
+ for (skip_row = region_y + h * scale_ratio; skip_row < image_h; 
skip_row++)
+   png_read_row(png_ptr, tmp_line, NULL);
   }
 else
   {
@@ -397,17 +440,18 @@ evas_image_load_file_data_png(void *loader_data,
for (i = 0; i < image_h; i++)
  png_read_row(png_ptr, pixels2 + (i * image_w * 
pack_offset), NULL);
 }
-  
+
+  src_ptr = pixels2 + (region_y * image_w * pack_offset) + 
region_x * pack_offset;
+
   for (i = 0; i < h; i++)
 {
-   src_ptr = pixels2 + (i * scale_ratio * image_w * 
pack_offset);
for (j = 0; j < w; j++)
  {
  

[EGIT] [core/efl] master 01/06: evas: Support region_set for BMP image

2016-08-17 Thread jiin.moon
jpeg pushed a commit to branch master.

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

commit a76fd7b37e464c45528b9077cbd2e261bda60f9b
Author: jiin.moon 
Date:   Wed Aug 17 16:06:05 2016 +0900

evas: Support region_set for BMP image

Summary:
1) BMP loader support region decoding.
 @feature

2) Fix an issue what BMP loader can't decode an 16bit image with bit field
@fix

Test Plan: attached sample codes

Reviewers: cedric, jpeg, jypark

Differential Revision: https://phab.enlightenment.org/D4228
---
 .../evas/image_loaders/bmp/evas_image_load_bmp.c   | 140 ++---
 1 file changed, 95 insertions(+), 45 deletions(-)

diff --git a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c 
b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c
index 17413f0..2b8fc26 100644
--- a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c
+++ b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c
@@ -368,6 +368,19 @@ evas_image_load_file_head_bmp(void *loader_data,
   *error = EVAS_LOAD_ERROR_GENERIC;
goto close_file;
  }
+
+   if (load_opts->region.w > 0 && load_opts->region.h > 0)
+ {
+if ((load_opts->region.w + load_opts->region.x > header.width) ||
+(load_opts->region.h + load_opts->region.y > header.height))
+  {
+ *error = EVAS_LOAD_ERROR_GENERIC;
+ goto close_file;
+  }
+header.width = load_opts->region.w;
+header.height = load_opts->region.h;
+ }
+
/* It is not bad idea that bmp loader support scale down decoding 
 * because of memory issue in mobile world.*/
if (load_opts->scale_down_by > 1)
@@ -465,6 +478,7 @@ evas_image_load_file_data_bmp(void *loader_data,
/* for scale decoding */
unsigned int *scale_surface = NULL, *scale_pix = NULL;
int scale_ratio = 1, image_w = 0, image_h = 0;
+   int region_set = 0, region_x = 0, region_y = 0, region_w, region_h;
int row_size = 0; /* Row size is rounded up to a multiple of 4bytes */
int read_line = 0; /* total read line */
 
@@ -499,12 +513,30 @@ evas_image_load_file_data_bmp(void *loader_data,
   *error = EVAS_LOAD_ERROR_GENERIC;
goto close_file;
  }
+   image_w = region_w = header.width;
+   image_h = region_h = header.height;
+
+   if (opts->region.w > 0 && opts->region.h > 0)
+ {
+if ((opts->region.w + opts->region.x > header.width) ||
+(opts->region.h + opts->region.y > header.height))
+  {
+ *error = EVAS_LOAD_ERROR_GENERIC;
+ goto close_file;
+  }
+region_set = 1;
+region_x = opts->region.x;
+region_y = image_h - (opts->region.h + opts->region.y);
+region_w = opts->region.w;
+region_h = opts->region.h;
+
+header.width = opts->region.w;
+header.height = opts->region.h;
+ }
/* It is not bad idea that bmp loader support scale down decoding 
 * because of memory issue in mobile world. */
if (opts->scale_down_by > 1)
  scale_ratio = opts->scale_down_by;
-   image_w = header.width;
-   image_h = header.height;
 
if (scale_ratio > 1)
  {
@@ -566,7 +598,7 @@ evas_image_load_file_data_bmp(void *loader_data,
   }
 position = header.offset;
 
-if ((scale_ratio == 1) || (header.comp !=0))
+if ((!region_set && scale_ratio == 1) || (header.comp != 0))
   {
  if (image_size < (int)(fsize - position))
image_size = fsize - position;
@@ -588,20 +620,20 @@ evas_image_load_file_data_bmp(void *loader_data,
  *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
  goto close_file;
   }
-if ((scale_ratio == 1) || (header.comp !=0))
-  buffer_end = buffer + image_size;
-else
-  buffer_end = buffer + row_size;
-p = buffer;
-
-if ((scale_ratio == 1) || (header.comp !=0))
+if ((!region_set && scale_ratio == 1) || (header.comp != 0))
   {
+ buffer_end = buffer + image_size;
  if (!read_mem(map, fsize, , buffer, image_size)) goto 
close_file;
   }
 else
   {
+ if (region_set)
+   position += row_size * region_y;
+
  if (!read_mem(map, fsize, , buffer, row_size)) goto 
close_file;
+ buffer_end = buffer + row_size;
   }
+p = buffer;
 
 if (header.bit_count == 1)
   {
@@ -612,7 +644,7 @@ evas_image_load_file_data_bmp(void *loader_data,
   for (y = 0; y < header.height; y++)
 {
if (!right_way_up) pix = surface + ((header.height - 1 
- y) * header.width);
-   if (scale_ratio > 1) pix = scale_surface; // one line 
decoding
+   if (scale_ratio > 1 || 

[EGIT] [core/efl] master 05/06: evas: Fix region test in jpeg load with region + zoom

2016-08-17 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 0193e40d8c1c06303bc8f0be95634fe8df7f1481
Author: Jean-Philippe Andre 
Date:   Wed Aug 17 16:45:16 2016 +0900

evas: Fix region test in jpeg load with region + zoom

The previous commit exposed an issue with the region test
does not take into account the scale down factor.

Not a @fix in itself, as it depends on the previous patch.
---
 src/lib/emile/emile_image.c  | 7 +++
 src/modules/evas/image_loaders/png/evas_image_load_png.c | 4 ++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/lib/emile/emile_image.c b/src/lib/emile/emile_image.c
index 5c12035..7c1db48 100644
--- a/src/lib/emile/emile_image.c
+++ b/src/lib/emile/emile_image.c
@@ -1562,6 +1562,13 @@ _emile_jpeg_head(Emile_Image *image,
 prop->w, prop->h,
 degree, prop->flipped);
   }
+if (prop->scale > 1)
+  {
+ load_region_x /= prop->scale;
+ load_region_y /= prop->scale;
+ load_region_w /= prop->scale;
+ load_region_h /= prop->scale;
+  }
 RECTS_CLIP_TO_RECT(load_region_x, load_region_y,
load_region_w, load_region_h,
0, 0, prop->w, prop->h);
diff --git a/src/modules/evas/image_loaders/png/evas_image_load_png.c 
b/src/modules/evas/image_loaders/png/evas_image_load_png.c
index 15660af..3444c0f 100644
--- a/src/modules/evas/image_loaders/png/evas_image_load_png.c
+++ b/src/modules/evas/image_loaders/png/evas_image_load_png.c
@@ -159,8 +159,8 @@ evas_image_load_file_head_png(void *loader_data,
 
if (opts->region.w > 0 && opts->region.h > 0)
  {
-if ((w32 < opts->region.x + opts->region.w) ||
-(h32 < opts->region.y + opts->region.h))
+if (((int) w32 < opts->region.x + opts->region.w) ||
+((int) h32 < opts->region.y + opts->region.h))
   {
  *error = EVAS_LOAD_ERROR_GENERIC;
  goto close_file;

-- 




Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support

2016-08-17 Thread The Rasterman
On Wed, 17 Aug 2016 09:20:52 +0100 Tom Hacohen  said:

> On 17/08/16 00:42, Carsten Haitzler (The Rasterman) wrote:
> > On Tue, 16 Aug 2016 20:16:04 -0300 Iván Briano 
> > said:
> >
> >> On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote:
> >>> On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz
> >>>  said:
> >>>
> >>> no worries. it's the same for SSH_ASKPASS too - you still get the normal
> >>> tty password req is there is a tty. if there is not both sudo and ssh can
> >>> fail (unless you have a no-password ssh key or sudo is configured for
> >>> nopasswd for your user). so these work as normal in the no password
> >>> cases. in the cases you do need a password both will fail completely.
> >>> this adds this little utility so these don't hail anymore if they are
> >>> in .desktop file or other command/app/script you launch from within
> >>> e... :) overall this makes e more functional... thus i don't see a
> >>> problem in ALWAYS setting the env var. if someone dislikes this they can
> >>> override the env vars or unset them in scripts. and even in e's
> >>> environment var settings since e_env_init is called after these env vars
> >>> are set... :) but for the vast majority of people .. they don't need this
> >>> or likely want it.. and things went from not working to working out of
> >>> the box with no effort on their part. :)
> >>>
> >>> some small things to improve in e here. i'll poke around some other small
> >>> things here and there as i get the time. :)
> >>
> >> Now explain the do { } while(0). If all you wanted to do was indent the
> >> blocks hierarchically, why not just { }? I had to pay to download all
> >> those extra characters.
> >
> > technically  {} is not legal. it works. thats why so many macros in our
> > public headers have do { } while (0); because a { } may not work.
> >
> > http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for
> >
> > it's a habit i've grown from making sure macros work. yes - using it to
> > indent the code so you can clearly see child/parent relationships in
> > widgets. i'm trying this out as a way to make things look more readable
> > when going over gui layout code.
> >
> 
> A slight correction: as far as I know, {} is perfectly legal (I used it 
> all the time everywhere). However, as you mentioned, you should not use 
> it in macros, and should use do-while instead. The reason for that is to 
> force a semicolon at the end of macros.
> 
> For macros FOO1 and 2:
> #define FOO1(x) { ... }
> #define FOO2(x) do { ... } while (0)
> 
> 
> FOO1(1) // will work
> FOO1(1); // will possibly generate a warning for extraneous semicolon
> 
> FOO2(1) // will not compile
> FOO2(1); // will work as expected.
> 
> I use {} and I think it's better than putting do-while in code, but I 
> think if you insist on using a loop construct for indention, I'd do "if 
> (1)" or something like that.

as i said - its habit from making macros correct. :) as i said... :) it does
the job. :)

> --
> Tom.
> 
> --
> ___
> 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


--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: evas: mark unused function parameter as such

2016-08-17 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit dc0416fade38589a31305c0c2a48ad0f1506c438
Author: Stefan Schmidt 
Date:   Tue Aug 16 17:05:04 2016 +0200

evas: mark unused function parameter as such
---
 src/lib/evas/canvas/efl_event_hold.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/efl_event_hold.c 
b/src/lib/evas/canvas/efl_event_hold.c
index 8a84574..ff30336 100644
--- a/src/lib/evas/canvas/efl_event_hold.c
+++ b/src/lib/evas/canvas/efl_event_hold.c
@@ -61,7 +61,7 @@ _efl_event_hold_efl_event_input_event_flags_get(Eo *obj 
EINA_UNUSED, Efl_Event_H
 }
 
 EOLIAN static Eo *
-_efl_event_hold_efl_object_constructor(Eo *obj, Efl_Event_Hold_Data *pd)
+_efl_event_hold_efl_object_constructor(Eo *obj, Efl_Event_Hold_Data *pd 
EINA_UNUSED)
 {
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_event_reset(obj);

-- 




Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support

2016-08-17 Thread Tom Hacohen
On 17/08/16 00:42, Carsten Haitzler (The Rasterman) wrote:
> On Tue, 16 Aug 2016 20:16:04 -0300 Iván Briano  said:
>
>> On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote:
>>> On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz
>>>  said:
>>>
>>> no worries. it's the same for SSH_ASKPASS too - you still get the normal tty
>>> password req is there is a tty. if there is not both sudo and ssh can fail
>>> (unless you have a no-password ssh key or sudo is configured for nopasswd
>>> for your user). so these work as normal in the no password cases. in the
>>> cases you do need a password both will fail completely. this adds this
>>> little utility so these don't hail anymore if they are in .desktop file or
>>> other command/app/script you launch from within e... :) overall this makes
>>> e more functional... thus i don't see a problem in ALWAYS setting the env
>>> var. if someone dislikes this they can override the env vars or unset them
>>> in scripts. and even in e's environment var settings since e_env_init is
>>> called after these env vars are set... :) but for the vast majority of
>>> people .. they don't need this or likely want it.. and things went from not
>>> working to working out of the box with no effort on their part. :)
>>>
>>> some small things to improve in e here. i'll poke around some other small
>>> things here and there as i get the time. :)
>>
>> Now explain the do { } while(0). If all you wanted to do was indent the
>> blocks hierarchically, why not just { }? I had to pay to download all
>> those extra characters.
>
> technically  {} is not legal. it works. thats why so many macros in our public
> headers have do { } while (0); because a { } may not work.
>
> http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for
>
> it's a habit i've grown from making sure macros work. yes - using it to indent
> the code so you can clearly see child/parent relationships in widgets. i'm
> trying this out as a way to make things look more readable when going over gui
> layout code.
>

A slight correction: as far as I know, {} is perfectly legal (I used it 
all the time everywhere). However, as you mentioned, you should not use 
it in macros, and should use do-while instead. The reason for that is to 
force a semicolon at the end of macros.

For macros FOO1 and 2:
#define FOO1(x) { ... }
#define FOO2(x) do { ... } while (0)


FOO1(1) // will work
FOO1(1); // will possibly generate a warning for extraneous semicolon

FOO2(1) // will not compile
FOO2(1); // will work as expected.

I use {} and I think it's better than putting do-while in code, but I 
think if you insist on using a loop construct for indention, I'd do "if 
(1)" or something like that.

--
Tom.

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [tools/enventor] master 01/01: search: Move "Next" button to the right of "Previous" button.

2016-08-17 Thread Jaehyun Cho
jaehyun pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=e646da1ee08f8bc614400ce6f8de145690718b63

commit e646da1ee08f8bc614400ce6f8de145690718b63
Author: Jaehyun Cho 
Date:   Wed Aug 17 15:39:37 2016 +0900

search: Move "Next" button to the right of "Previous" button.
---
 data/themes/default/layout_common.edc | 12 ++--
 src/bin/search.c  | 13 ++---
 2 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/data/themes/default/layout_common.edc 
b/data/themes/default/layout_common.edc
index 81d9f88..b1d103e 100644
--- a/data/themes/default/layout_common.edc
+++ b/data/themes/default/layout_common.edc
@@ -1037,7 +1037,7 @@ group { "search_layout";
 fixed: 1 1;
  }
   }
-  swallow { "elm.swallow.forward";
+  swallow { "elm.swallow.backward";
  scale: 1;
  desc { "default";
 rel1.relative: 0 1;
@@ -1052,13 +1052,13 @@ group { "search_layout";
 fixed: 1 1;
  }
   }
-  swallow { "elm.swallow.backward";
+  swallow { "elm.swallow.forward";
  scale: 1;
  desc { "default";
 rel1.relative: 1 0;
 rel2.relative: 1 1;
-rel1.to: "elm.swallow.forward";
-rel2.to: "elm.swallow.forward";
+rel1.to: "elm.swallow.backward";
+rel2.to: "elm.swallow.backward";
 rel1.offset: 5 0;
 min: 50 25;
 align: 0 0;
@@ -1070,8 +1070,8 @@ group { "search_layout";
  desc { "default";
 rel1.relative: 1 0;
 rel2.relative: 1 1;
-rel1.to: "elm.swallow.backward";
-rel2.to: "elm.swallow.backward";
+rel1.to: "elm.swallow.forward";
+rel2.to: "elm.swallow.forward";
 rel1.offset: 5 0;
 min: 50 25;
 align: 0 0;
diff --git a/src/bin/search.c b/src/bin/search.c
index 20e3b54..12a7453 100644
--- a/src/bin/search.c
+++ b/src/bin/search.c
@@ -402,13 +402,6 @@ search_open(void)
evas_object_size_hint_align_set(entry_replace, EVAS_HINT_FILL, 0);
elm_object_part_content_set(layout, "elm.swallow.replace_entry",
entry_replace);
-   //Button (forward)
-   Evas_Object *btn_forward = elm_button_add(layout);
-   elm_object_text_set(btn_forward, _("Next"));
-   evas_object_smart_callback_add(btn_forward, "clicked", forward_clicked_cb,
-  sd);
-   elm_object_part_content_set(layout, "elm.swallow.forward", btn_forward);
-
//Button (backward)
Evas_Object *btn_backward = elm_button_add(layout);
elm_object_text_set(btn_backward, _("Previous"));
@@ -416,6 +409,12 @@ search_open(void)
   backward_clicked_cb, sd);
elm_object_part_content_set(layout, "elm.swallow.backward",
btn_backward);
+   //Button (forward)
+   Evas_Object *btn_forward = elm_button_add(layout);
+   elm_object_text_set(btn_forward, _("Next"));
+   evas_object_smart_callback_add(btn_forward, "clicked", forward_clicked_cb,
+  sd);
+   elm_object_part_content_set(layout, "elm.swallow.forward", btn_forward);
 
//Button (replace)
Evas_Object *btn_replace = elm_button_add(layout);

-- 




Re: [E-devel] [RFC] Eina_Slice and Eina_Rw_Slice

2016-08-17 Thread The Rasterman
On Tue, 16 Aug 2016 11:17:01 -0300 Gustavo Sverzut Barbieri
 said:

> On Tue, Aug 16, 2016 at 4:28 AM, Carsten Haitzler 
> wrote:
> > On Tue, 16 Aug 2016 01:43:43 -0300 Gustavo Sverzut Barbieri
> >  said:
> >
> >> On Mon, Aug 15, 2016 at 11:37 PM, Carsten Haitzler 
> >> wrote:
> >> > On Mon, 15 Aug 2016 22:35:58 -0300 Gustavo Sverzut Barbieri
> >> >  said:
> >> >
> >> >> On Mon, Aug 15, 2016 at 8:13 PM, Carsten Haitzler 
> >> >> wrote:
> >> >> > On Mon, 15 Aug 2016 12:07:16 -0300 Gustavo Sverzut Barbieri
> >> >> >  said:
> >> [...]
> >> >> It is the same, but you do not need to replicate this in every class
> >> >> like done in Ecore_Exe, Ecore_Con, Ecore_Con_URL... :-)
> >> >>
> >> >> I was thinking just like you, but after talking to Tasn a bit I got
> >> >> what he meant with a "thin wrapper around syscalls" and at the end it
> >> >> does make sense, more sense actually.
> >> >
> >> > if it is just a thin wrapper then what value does it provide?
> >>
> >> Uniform access to the calls.
> >>
> >> Like in Linux, you do get read(2),write(2),close(2) and file
> >> descriptors to work on almost every basic resource. But when you go to
> >> higher level resources, like when doing HTTP over libcurl, then you
> >> cannot call "read(2)" directly...
> >>
> >> With the API I'm proposing you get that simplicity of Unix FD's back.
> >> It's almost the same call and behavior.
> >>
> >> Then you can write a simple code that monitors a source, see when
> >> there is data to read, read some data, wait until the destination can
> >> hold more data, then write it... in a loop. This is the Efl.Io.Copier.
> >>
> >> Check:
> >> https://git.enlightenment.org/core/efl.git/log/?h=devs/barbieri/efl-io-interfaces
> >>
> >> You will see I already provide Stdin, Stdout, Stderr and File. Those
> >> are "useless" since you could do with pure POSIX calls. But when I add
> >> the objects implemented on complex libraries such as cURL, then that
> >> code will "just work".
> >
> > unix fd's are NOT - simple. not if you want to be non-blocking. you have to
> > handle write failures and figure out what was and was not written from your
> > buffer, handle select() on the when it is available again and write then -
> > and for all you know you may be able to just write a single byte and then
> > ave to try again and so on.
> >
> > unix read/write and fd's push the logic of this up the stack into the app.
> > the alternative is to do blocking i/o and that is just not viable for
> > something that multiplexes all its i/o through an event loop.
> >
> > what i have read of this so far means pushing the "kernel buffer is full,
> > write failed now or partly failed" back off into the app. and that is not
> > even close to replacing ecore_con - it fundamentally misses the "i'll
> > buffer that for you, don't worry about it" nature of it that takes the
> > kernel's limited buffering and extends it to "infinite" that saves a lot of
> > pain and agony.
> 
> Raster, check the code and see it's all in there. When I mean "simple"
> is that its nature is pretty simple, concepts are well understood...
> not that it's simple or easy to use.
> 
> Since we must deal with that *at least* for the POSIX, then we'll do
> it on our side at least once.
> 
> As this POSIX is very simple, it's implementable everywhere with
> minimum effort, thus works well for this level of API.
> 
> I completely agree that for end users, having infinite buffers and
> even line-buffers for most tasks is *must have*, that's why I'm
> focusing on having this in an uniform way.
> 
> You seem to just not get the layers and split roles... maybe because
> in previous ecore all elements replicated that? It's the only
> difference, the logic is there, but moved outside so we don't
> replicate it all.

i am only seeing a low level atm in your examples. the code samples look to be
not much above a simple read/write/fd wrapper that i've seen.

> Benefits everyone:
> 
>  - efl developers reader/writer providers become simpler, no need to
> reimplement all on their own, no need to inherit a big bulk of a base
> class
> 
>  - efl users know that they all look and feel the same, they can use
> the efl.io.copier on them all and the signals, buffering and behavior
> are the same. No need to understand Ecore_Exe, Ecore_Con,
> Ecore_Con_URL events.

none of these api's should be even using these low level api's because at the
efl.io level so far that i've seen it's either blocking i/o OR it's
non-blocking and then writes can fail witn 0 or partial byte writes and thus
the api user has to deal with that failure.

this just shouldn't have to be done anywhere. in any efl api. :(

> I know you're worried about "common cases", so am I. At the end of
> this project I'll have to migrate all Ecore_Con + Ecore_Con_URL users
> to the new API and I'll be the first one to 

Re: [E-devel] Can't build doc for EFL

2016-08-17 Thread The Rasterman
On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobin  said:

> Hit, it is gentoo S). And this is not first case.
> But in turn, i remember case - when i took part in ladish development,
> i used ubuntu... and my code, being ok on my system, segfailed on
> gentoo system of project leader, revealing one hard to detect bug.
> 
> doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...)
> 
> As for configuration, i took them from ebuild log:
> $ ./configure --enable-cserve --enable-image-loader-generic
> --enable-image-loader-jpeg --disable-tizen --disable-gesture
> --disable-gstreamer --enable-xinput2 --disable-xinput22
> --disable-multisense --enable-libmount --with-opengl-full
> --disable-physics --with-glib=no --enable-image-loader-jp2k
> --enable-gnutls
> --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb
> --prefix=/usr
> 
> As for bugs - you can see there one veeery lonnng option, so
> decided to consult. Can't beleive, that these options might cause doc
> making to fail.

--enable-cserve <- you know this is enabled by default? why enable?
--enable-image-loader-generic <- enabled by default too
--enable---disable-image-loader-jpeg <- enabled by default too
--disable-tizen <- disabled by defaault...
--disable-gesture <- disabled by default...
--disable-gstreamer <- you know this is disabled by default...
--disable-multisense <- you do know this breaks theme functionality right?
--enable-libmount <- you know itss enabled by default?
--with-opengl-full <- you know this is a typo? it should be:
  --with-opengl=full ... and this is the default anyway...
--disable-physics <- you know this can break theme functionality right?
--with-glib=no <- you know this can create problems with things like the ibus
  imf modules which require it (because libibus need glib mainloop stuff),
  though you don't enable the ibus imf module here...?
--enable-gnutls <- why gnutls not openssl. you know we test openssl as it's
  the default. gnutls gets little to no testing. also optimization - little to
  none with it.

almost all your options are redundant and several i would think are dubious to
alter... though none of these SHOULD affect document generation - maybe unless
there is more glib main loop integration that is needed that we've missed
(scim? something else?) and since it's on by default ... we haven't seen the
brokenness with it off. there is a reason we make you put in that insanely long
option accepting your fate if you stray from tested defaults that might have an
effect.

> В Tue, 16 Aug 2016 11:23:29 +0200
> Stefan Schmidt  пишет:
> 
> > Hello.
> > 
> > On 15/08/16 22:46, Nikita Zlobin wrote:
> > > Hello. I tried to build versions 1.17.2, then from git.
> > > In order to build doc, i'm doing "make doc", because otherwise it
> > > is skipped somewhy.  
> > 
> > The why is pretty easy to understand. If we would build docs for
> > every run of make the developers would go crazy. Thus it is a special
> > make target.
> > 
> > 
> >   For EFL it ends with this error:
> > >
> > > http://codepad.org/Ph5hAHDF  
> > 
> > I just build make doc from a 1.17.2 tarball without problems here.
> > 
> > What configure flags are you suing here? Are you running on Gentoo by 
> > any chance, because I think I have seen this at some point on our 
> > Jenkins installation which runs Gentoo.
> > 
> > What version of doxygen are you using? I have this here:
> > stefan@workmachine efl-1.17.2 $ doxygen --version
> > 1.8.9.1
> > 
> > Feel free to create a ticket for this as I will not be available the 
> > next weeks due to an upcoming vacation. So we do not forget about it.
> > 
> > regards
> > Stefan Schmidt
> > 
> > --
> > ___
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 
> 
> --
> ___
> 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


--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support

2016-08-17 Thread The Rasterman
On Tue, 16 Aug 2016 20:16:04 -0300 Iván Briano  said:

> On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote:
> > On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz
> >  said:
> > 
> > no worries. it's the same for SSH_ASKPASS too - you still get the normal tty
> > password req is there is a tty. if there is not both sudo and ssh can fail
> > (unless you have a no-password ssh key or sudo is configured for nopasswd
> > for your user). so these work as normal in the no password cases. in the
> > cases you do need a password both will fail completely. this adds this
> > little utility so these don't hail anymore if they are in .desktop file or
> > other command/app/script you launch from within e... :) overall this makes
> > e more functional... thus i don't see a problem in ALWAYS setting the env
> > var. if someone dislikes this they can override the env vars or unset them
> > in scripts. and even in e's environment var settings since e_env_init is
> > called after these env vars are set... :) but for the vast majority of
> > people .. they don't need this or likely want it.. and things went from not
> > working to working out of the box with no effort on their part. :)
> > 
> > some small things to improve in e here. i'll poke around some other small
> > things here and there as i get the time. :)
> 
> Now explain the do { } while(0). If all you wanted to do was indent the
> blocks hierarchically, why not just { }? I had to pay to download all
> those extra characters.

technically  {} is not legal. it works. thats why so many macros in our public
headers have do { } while (0); because a { } may not work.

http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for

it's a habit i've grown from making sure macros work. yes - using it to indent
the code so you can clearly see child/parent relationships in widgets. i'm
trying this out as a way to make things look more readable when going over gui
layout code.

> > 
> > > Oh okay, thanks for clearing that up!
> > > 
> > > On Mon, Aug 15, 2016 at 7:16 PM Carsten Haitzler 
> > > wrote:
> > > 
> > > > On Mon, 15 Aug 2016 15:08:53 + Mike Blumenkrantz
> > > >  said:
> > > >
> > > > > On Sat, Aug 13, 2016 at 4:39 AM Carsten Haitzler
> > > > >  wrote:
> > > > >
> > > > > > raster pushed a commit to branch master.
> > > > > >
> > > > > >
> > > > > >
> > > > http://git.enlightenment.org/core/enlightenment.git/commit/?id=8d780c7fb5ccb04c49c98370c9e4ec7a2440bbb1
> > > > > >
> > > > > > commit 8d780c7fb5ccb04c49c98370c9e4ec7a2440bbb1
> > > > > > Author: Carsten Haitzler (Rasterman) 
> > > > > > Date:   Sat Aug 13 17:39:17 2016 +0900
> > > > > >
> > > > > > e sudo gui support - add askpass util for sudo askpass support
> > > > > >
> > > > > > this gives e by default sudo gui support with an askpass util
> > > > > > that sudo can use as well as setting the env var correctly so it
> > > > > > will be used by sudo.
> > > > > >
> > > > > > @feature
> > > > > > ---
> > > > > >  configure.ac   |   4 +
> > > > > >  data/desktop/Makefile.mk   |   3 +-
> > > > > >  data/desktop/enlightenment_askpass.desktop |  12 +++
> > > > > >  data/icons/Makefile.mk |   6 ++
> > > > > >  data/icons/enlightenment-askpass.png   | Bin 0 -> 696 bytes
> > > > > >  src/bin/.gitignore |   1 +
> > > > > >  src/bin/Makefile.mk|   9 +-
> > > > > >  src/bin/e_askpass_main.c   | 142
> > > > > > +
> > > > > >  src/bin/e_main.c   |   2 +
> > > > > >  9 files changed, 177 insertions(+), 2 deletions(-)
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > > diff --git a/src/bin/e_main.c b/src/bin/e_main.c
> > > > > > index 28ed4bc..4c705fc 100644
> > > > > > --- a/src/bin/e_main.c
> > > > > > +++ b/src/bin/e_main.c
> > > > > > @@ -325,6 +325,8 @@ main(int argc, char **argv)
> > > > > > e_util_env_set("E_RESTART_OK", NULL);
> > > > > > e_util_env_set("PANTS", "ON");
> > > > > > e_util_env_set("DESKTOP", "Enlightenment");
> > > > > > +   snprintf(buff, sizeof(buff), "%s/enlightenment_askpass",
> > > > > > e_prefix_bin_get());
> > > > > > +   e_util_env_set("SUDO_ASKPASS", buff);
> > > > > > TS("Environment Variables Done");
> > > > > >
> > > > > > /* KDE5 applications don't understand anything other then gnome
> > > > > > or kde */
> > > > > >
> > > > > >
> > > > > Ignoring some unusual style and whitespace-related choices in the
> > > > > rest of the commit, globally setting SUDO_ASKPASS and forcing a gui
> > > > > popup any
> > > > time
> > > > > a user runs sudo in a terminal seems a bit excessive. Perhaps that's
> > > > > just me?
> > > >
> > > > incorrect. read the sudo manual page. SUDO_ASKPASS is ONLY used if 

Re: [E-devel] [EGIT] [core/efl] master 01/02: Efl object: implement CoW for the function vtables

2016-08-17 Thread The Rasterman
On Tue, 16 Aug 2016 16:36:20 +0100 Tom Hacohen  said:

> This change means you can abuse efl_object_override() a bit more and 
> rely on it in API. Because while the save is significant for normal 
> classes, it would be even more significant for object override because 
> the amount of shared vtables will be higher (most likely, as the number 
> of overrides tends to be smaller and more clustered).

shouldn't this be efl_override() now anyway? ... why object? of course its an
object... every eo api works on an object... or maybe it should be
efl_func_override or efl_method_override() ... :)

> --
> Tom.
> 
> 
> On 16/08/16 16:34, Tom Hacohen wrote:
> > tasn pushed a commit to branch master.
> >
> > http://git.enlightenment.org/core/efl.git/commit/?id=28c80f91221ae2639f4573046d8621a2a4d18cda
> >
> > commit 28c80f91221ae2639f4573046d8621a2a4d18cda
> > Author: Tom Hacohen 
> > Date:   Mon Aug 15 17:11:13 2016 +0100
> >
> > Efl object: implement CoW for the function vtables
> >
> > This commit implements a sort of CoW for the vtables. The vtables are
> > usually just linked to and refcounted. When we need to change them we
> > allocate new ones and copy them over so we can write to them.
> >
> > I wrote some code to measure the effectiveness of this change. When
> > running elementary_test (and immediately exiting) I saw that out of the
> > total number of vtable chains (561) that were needed by the classes in
> > the EFL, 79 (14.08%) were reused. Considering that I had to add
> > refcounting (unsigned short, but let's consider it's the size of a word
> > because of alignment), I would calculate the saving as such (in bytes):
> >
> > Number of items in a chain (refcounted block): 32
> >
> > 32 bit:
> > sizeof(chain_node) = 8
> > Mem wasted on refcounting: 561 * 4 = 2244
> > Mem saved because of sharing: 79 * (32 * 8) = 20224
> > Total save: 17980 bytes
> >
> > 64 bit:
> > sizeof(chain_node) = 16
> > Mem wasted on refcounting: 561 * 8 = 4488
> > Mem saved because of sharing: 79 * (32 * 16) = 40448
> > Total save: 35960 bytes
> >
> > Wow, we use a lot of memory in Eo classes, I'm sure we can
> > save even more if we put our hearts into it (change the shareable units
> > to be smaller to increase the chance of sharing).
> > This is internal and doesn't affect API/ABI so we can change this even
> > further with time.
> >
> > This also improves efl_object_override(). This should now be quite
> > memory efficient (don't abuse, but it's not a big hogg as it was), so
> > feel free to abuse that one and rely on it in API.
> >
> > @feature
> > ---
> >  src/lib/eo/eo.c | 114 +++
> > + src/lib/eo/eo_private.h |  14 +-
> >  2 files changed, 98 insertions(+), 30 deletions(-)
> >
> > diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
> > index 9104a9e..0f530b4 100644
> > --- a/src/lib/eo/eo.c
> > +++ b/src/lib/eo/eo.c
> > @@ -41,12 +41,6 @@ static inline void _efl_data_xunref_internal(_Eo_Object
> > *obj, void *data, const
> >
> >  /* Start of Dich */
> >
> > -/* How we search and store the implementations in classes. */
> > -#define DICH_CHAIN_LAST_BITS 5
> > -#define DICH_CHAIN_LAST_SIZE (1 << DICH_CHAIN_LAST_BITS)
> > -#define DICH_CHAIN1(x) ((x) >> DICH_CHAIN_LAST_BITS)
> > -#define DICH_CHAIN_LAST(x) ((x) & ((1 << DICH_CHAIN_LAST_BITS) - 1))
> > -
> >
> >  /* We are substracting the mask here instead of "AND"ing because it's a
> > hot path,
> >   * it should be a valid class at this point, and this lets the compiler do
> > 1 @@ -58,11 +52,86 @@ static inline void _efl_data_xunref_internal
> > (_Eo_Object *obj, void *data, const })
> >
> >  static inline void
> > +_vtable_chain2_unref(Dich_Chain2 *chain)
> > +{
> > +   if (--(chain->refcount) == 0)
> > + {
> > +free(chain);
> > + }
> > +}
> > +
> > +static inline void
> >  _vtable_chain_alloc(Dich_Chain1 *chain1)
> >  {
> > -   if (!chain1->funcs)
> > +   chain1->chain2 = calloc(1, sizeof(*(chain1->chain2)));
> > +   chain1->chain2->refcount = 1;
> > +}
> > +
> > +static inline void _vtable_chain_write_prepare(Dich_Chain1 *dst);
> > +
> > +static inline void
> > +_vtable_chain_merge(Dich_Chain1 *dst, const Dich_Chain1 *src)
> > +{
> > +   Eina_Bool writeable = EINA_FALSE;
> > +   size_t j;
> > +   const op_type_funcs *sf = src->chain2->funcs;
> > +   op_type_funcs *df = dst->chain2->funcs;
> > +
> > +   if (df == sf)
> >   {
> > -chain1->funcs = calloc(DICH_CHAIN_LAST_SIZE, sizeof(*
> > (chain1->funcs)));
> > +/* Skip if the chain is the same. */
> > +return;
> > + }
> > +
> > +   for (j = 0 ; j < DICH_CHAIN_LAST_SIZE ; j++, df++, sf++)
> > + {
> > +if (sf->func && memcmp(df, sf, sizeof(*df)))
> > +  {
> > + if (!writeable)
> > +   {
> > +  

[EGIT] [tools/eflete] master 02/03: ewe_ruler: add API for set/get marker size

2016-08-17 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=83d94dd378e5257250ea034a036b571485375ad7

commit 83d94dd378e5257250ea034a036b571485375ad7
Author: Vyacheslav Reutskiy 
Date:   Tue Aug 16 19:21:40 2016 +0300

ewe_ruler: add API for set/get marker size

Change-Id: I717089bca372dbd97a7c0d74620b3f00b7e91cfc
---
 src/bin/ui/workspace/workspace.c |  1 +
 src/lib/ewe_ruler.c  | 18 ++
 src/lib/ewe_ruler.eo | 19 +++
 3 files changed, 38 insertions(+)

diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c
index ed0544f..305788c 100644
--- a/src/bin/ui/workspace/workspace.c
+++ b/src/bin/ui/workspace/workspace.c
@@ -674,6 +674,7 @@ _radio_switcher_add(Workspace_Data *wd,
 static void
 _ruler_add(Evas_Object *parent, Ruler *ruler, Eina_Bool scale_rel)
 {
+
ruler->obj = ewe_ruler_add(parent);
ruler->pointer = ewe_ruler_marker_add(ruler->obj, "pointer");
ewe_ruler_value_step_set(ruler->obj, NULL, RULER_STEP_DEFAULT);
diff --git a/src/lib/ewe_ruler.c b/src/lib/ewe_ruler.c
index ad38d56..ea348c5 100644
--- a/src/lib/ewe_ruler.c
+++ b/src/lib/ewe_ruler.c
@@ -579,6 +579,24 @@ _ewe_ruler_marker_del(Eo *obj EINA_UNUSED,
return EINA_TRUE;
 }
 
+EOLIAN static void
+_ewe_ruler_marker_size_set(Eo *obj,
+   Ewe_Ruler_Smart_Data *sd EINA_UNUSED,
+   Ewe_Ruler_Marker *marker,
+   int size)
+{
+   marker->size = size;
+   evas_object_smart_changed(obj);
+}
+
+EOLIAN static int
+_ewe_ruler_marker_size_get(Eo *obj EINA_UNUSED,
+   Ewe_Ruler_Smart_Data *sd EINA_UNUSED,
+   Ewe_Ruler_Marker *marker)
+{
+   return marker->size;
+}
+
 EOLIAN static Eina_Bool
 _ewe_ruler_marker_relative_set(Eo *obj,
Ewe_Ruler_Smart_Data *sd,
diff --git a/src/lib/ewe_ruler.eo b/src/lib/ewe_ruler.eo
index f383153..9eb24d8 100644
--- a/src/lib/ewe_ruler.eo
+++ b/src/lib/ewe_ruler.eo
@@ -225,6 +225,25 @@ class Ewe.Ruler (Elm.Widget)
style: const(char)*;
  }
   }
+  @property marker_size {
+ get {
+ [[
+  Get size of given marker.
+ ]]
+ }
+ set {
+ [[
+  Set new size for given marker
+ ]]
+ }
+ keys {
+   marker: Ewe_Ruler_Marker*;
+ }
+ values {
+   size: int;
+ }
+  }
+
   scale_add {
  [[
   Add new scale to ruler.

-- 




[EGIT] [tools/eflete] master 03/03: ewe_ruler: delete extra string

2016-08-17 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=5877108cbef4db96f2c020a9aed2896f14e2be23

commit 5877108cbef4db96f2c020a9aed2896f14e2be23
Author: Vyacheslav Reutskiy 
Date:   Wed Aug 17 08:11:32 2016 +0300

ewe_ruler: delete extra string

Change-Id: I26b28c6da7dfb8791786ba28c7e155738c733c5b
---
 src/lib/ewe_ruler.c| 33 +
 src/lib/ewe_ruler_common.h |  1 -
 2 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/src/lib/ewe_ruler.c b/src/lib/ewe_ruler.c
index ea348c5..3dcc66c 100644
--- a/src/lib/ewe_ruler.c
+++ b/src/lib/ewe_ruler.c
@@ -208,6 +208,8 @@ _ewe_ruler_horizontal_set(Eo *obj,
   Ewe_Ruler_Smart_Data *sd,
   Eina_Bool horizontal)
 {
+   Eina_Strbuf *buf;
+
if (sd->horizontal == horizontal)
  return EINA_FALSE;
sd->horizontal = horizontal;
@@ -240,13 +242,15 @@ _ewe_ruler_horizontal_set(Eo *obj,
 count = eina_list_count(scale->dashes);
 _delete_extra_dashes(scale, count);
  }
+   buf = eina_strbuf_new();
EINA_LIST_FOREACH(sd->markers, lm, marker)
  {
-eina_stringshare_del(marker->full_style);
-marker->full_style = eina_stringshare_printf("%s/%s", markers, 
marker->style);
-edje_object_file_set(marker->obj, EWE_THEME, marker->full_style);
+eina_strbuf_reset(buf);
+eina_strbuf_append_printf(buf, "%s/%s", markers, marker->style);
+edje_object_file_set(marker->obj, EWE_THEME, 
eina_strbuf_string_get(buf));
  }
 
+   eina_strbuf_free(buf);
evas_object_smart_changed(obj);
return EINA_TRUE;
 }
@@ -527,6 +531,7 @@ _ewe_ruler_marker_add(Eo *obj,
   Ewe_Ruler_Smart_Data *sd,
   const char *style)
 {
+   Eina_Strbuf *buf;
Ewe_Ruler_Marker *ret = malloc(sizeof(Ewe_Ruler_Marker));
if (!ret) return NULL;
if (!style) style = DEFAULT_STYLE;
@@ -534,20 +539,21 @@ _ewe_ruler_marker_add(Eo *obj,
sd->markers = eina_list_append(sd->markers, ret);
 
ret->style = eina_stringshare_add(style);
+   buf = eina_strbuf_new();
if (sd->horizontal)
  {
-ret->full_style = eina_stringshare_printf("%s/%s", MARKER, style);
+eina_strbuf_append_printf(buf, MARKER"/%s", style);
 edje_object_size_min_calc(ret->obj, >size, NULL);
  }
else
  {
-ret->full_style = eina_stringshare_printf("%s/%s", MARKER_VER, style);
+eina_strbuf_append_printf(buf, MARKER_VER"/%s", style);
 edje_object_size_min_calc(ret->obj, NULL, >size);
  }
 
ret->obj = edje_object_add(obj);
evas_object_clip_set(ret->obj, sd->clip);
-   edje_object_file_set(ret->obj, EWE_THEME, ret->full_style);
+   edje_object_file_set(ret->obj, EWE_THEME, eina_strbuf_string_get(buf));
evas_object_smart_member_add(ret->obj, obj);
 
ret->scale = NULL;
@@ -556,6 +562,7 @@ _ewe_ruler_marker_add(Eo *obj,
ret->visible = EINA_TRUE;
ret->relative = EINA_FALSE;
 
+   eina_strbuf_free(buf);
return ret;
 }
 
@@ -566,7 +573,6 @@ _ewe_ruler_marker_del(Eo *obj EINA_UNUSED,
 {
if (!marker) return EINA_FALSE;
eina_stringshare_del(marker->style);
-   eina_stringshare_del(marker->full_style);
 
if (marker->relative)
  marker->scale->markers = eina_list_remove(marker->scale->markers, marker);
@@ -720,17 +726,20 @@ _ewe_ruler_marker_style_set(Eo *obj,
 Ewe_Ruler_Marker *marker,
 const char *style)
 {
+   Eina_Strbuf *buf;
+
if (!marker) return EINA_FALSE;
eina_stringshare_del(marker->style);
-   eina_stringshare_del(marker->full_style);
marker->style = eina_stringshare_add(style);
+
+   buf = eina_strbuf_new();
if (sd->horizontal)
- marker->full_style = eina_stringshare_printf("%s/%s", MARKER, style);
+ eina_strbuf_append_printf(buf, MARKER"/%s", style);
else
- marker->full_style = eina_stringshare_printf("%s/%s", MARKER_VER, style);
-   edje_object_file_set(marker->obj, EWE_THEME, marker->full_style);
+ eina_strbuf_append_printf(buf, MARKER_VER"/%s", style);
+   edje_object_file_set(marker->obj, EWE_THEME, eina_strbuf_string_get(buf));
 
-   sd->text_changed = EINA_TRUE;
+   eina_strbuf_free(buf);
evas_object_smart_changed(obj);
return EINA_TRUE;
 }
diff --git a/src/lib/ewe_ruler_common.h b/src/lib/ewe_ruler_common.h
index 170e762..692da4b 100644
--- a/src/lib/ewe_ruler_common.h
+++ b/src/lib/ewe_ruler_common.h
@@ -41,7 +41,6 @@ struct _Ewe_Ruler_Marker
Evas_Object   *obj;
Ewe_Ruler_Scale   *scale;
Eina_Stringshare  *style;
-   Eina_Stringshare  *full_style;
doublerel_position;
int   abs_position;
int   size;

-- 




[EGIT] [tools/eflete] master 01/03: ewe_ruler: handle the ruler size on recalc

2016-08-17 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=36a91e1a110a85bdcb3ad43de57bd0f9ab9d3b41

commit 36a91e1a110a85bdcb3ad43de57bd0f9ab9d3b41
Author: Vyacheslav Reutskiy 
Date:   Tue Aug 16 18:08:40 2016 +0300

ewe_ruler: handle the ruler size on recalc

Change-Id: I1a7bdac97f61f891867b1fd76500eca86ff29af3
---
 src/lib/ewe_ruler.c| 14 ++
 src/lib/ewe_ruler_common.h |  1 +
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/lib/ewe_ruler.c b/src/lib/ewe_ruler.c
index 46abcdc..ad38d56 100644
--- a/src/lib/ewe_ruler.c
+++ b/src/lib/ewe_ruler.c
@@ -167,7 +167,7 @@ _place_markers(Ewe_Ruler_Smart_Data *sd)
 if (sd->horizontal)
   {
  /*size of marker(pointer) is set to 1 to make posible centring 
from style*/
- evas_object_resize(marker->obj, 1, sd->geometry.height);
+ evas_object_resize(marker->obj, marker->size, 
sd->geometry.height);
  evas_object_move(marker->obj,
   sd->geometry.x + marker->abs_position,
   sd->geometry.y);
@@ -175,7 +175,7 @@ _place_markers(Ewe_Ruler_Smart_Data *sd)
 else
   {
  /*size of marker(pointer) is set to 1 to make posible centring 
from style*/
- evas_object_resize(marker->obj, sd->geometry.width, 1);
+ evas_object_resize(marker->obj, sd->geometry.width, marker->size);
  evas_object_move(marker->obj,
   sd->geometry.x,
   marker->abs_position + sd->geometry.y);
@@ -535,9 +535,15 @@ _ewe_ruler_marker_add(Eo *obj,
 
ret->style = eina_stringshare_add(style);
if (sd->horizontal)
- ret->full_style = eina_stringshare_printf("%s/%s", MARKER, style);
+ {
+ret->full_style = eina_stringshare_printf("%s/%s", MARKER, style);
+edje_object_size_min_calc(ret->obj, >size, NULL);
+ }
else
- ret->full_style = eina_stringshare_printf("%s/%s", MARKER_VER, style);
+ {
+ret->full_style = eina_stringshare_printf("%s/%s", MARKER_VER, style);
+edje_object_size_min_calc(ret->obj, NULL, >size);
+ }
 
ret->obj = edje_object_add(obj);
evas_object_clip_set(ret->obj, sd->clip);
diff --git a/src/lib/ewe_ruler_common.h b/src/lib/ewe_ruler_common.h
index 2375086..170e762 100644
--- a/src/lib/ewe_ruler_common.h
+++ b/src/lib/ewe_ruler_common.h
@@ -44,6 +44,7 @@ struct _Ewe_Ruler_Marker
Eina_Stringshare  *full_style;
doublerel_position;
int   abs_position;
+   int   size;
Eina_Bool visible : 1;
Eina_Bool relative : 1;
 };

--