[EGIT] [core/efl] master 01/01: elm_spinner: change the key event operation on spinner

2016-10-21 Thread WooHyun Jung
woohyun pushed a commit to branch master.

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

commit a659fe3484d3631c3d451299e5181789cecc5e00
Author: WooHyun Jung 
Date:   Sat Oct 22 12:03:54 2016 +0900

elm_spinner: change the key event operation on spinner

Left/Right(or Up/Down with vertical one) changed the value of
spinner previously. However, it gave uneasy because focus could not be
moved to another winset until the value met the min or max.
Now, inc/dec button can get focus, and enter input on them change
the value.
Additionally, central text button changes to the entry automatically
when it gets focus. i.e. toggle on the text button is removed.

@fix
---
 src/lib/elementary/elm_spinner.c| 119 ++--
 src/lib/elementary/elm_widget_spinner.h |   2 +-
 2 files changed, 52 insertions(+), 69 deletions(-)

diff --git a/src/lib/elementary/elm_spinner.c b/src/lib/elementary/elm_spinner.c
index 547c045..9e7b055 100644
--- a/src/lib/elementary/elm_spinner.c
+++ b/src/lib/elementary/elm_spinner.c
@@ -38,7 +38,6 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
{NULL, NULL}
 };
 
-static Eina_Bool _key_action_spin(Evas_Object *obj, const char *params);
 static Eina_Bool _key_action_toggle(Evas_Object *obj, const char *params);
 
 static void
@@ -49,12 +48,10 @@ static void
 _inc_dec_button_unpressed_cb(void *data, const Efl_Event *event);
 static void
 _inc_dec_button_mouse_move_cb(void *data, const Efl_Event *event);
-
-static const Elm_Action key_actions[] = {
-   {"spin", _key_action_spin},
-   {"toggle", _key_action_toggle},
-   {NULL, NULL}
-};
+static void
+_text_button_focused_cb(void *data, const Efl_Event *event);
+static void
+_entry_unfocused_cb(void *data, const Efl_Event *event);
 
 EFL_CALLBACKS_ARRAY_DEFINE(_inc_dec_button_cb,
{ EFL_UI_EVENT_CLICKED, _inc_dec_button_clicked_cb},
@@ -379,7 +376,9 @@ _entry_hide(Evas_Object *obj)
if (sd->button_layout)
  {
 elm_layout_signal_emit(obj, "elm,state,entry,inactive", "elm");
+evas_object_hide(sd->ent);
 elm_layout_signal_emit(obj, "elm,state,button,active", "elm");
+evas_object_show(sd->text_button);
  }
else
  elm_layout_signal_emit(obj, "elm,state,inactive", "elm");
@@ -412,12 +411,6 @@ _entry_value_apply(Evas_Object *obj)
 _delay_change_timer_cb, obj);
 }
 
-static void
-_entry_activated_cb(void *data, const Efl_Event *event EINA_UNUSED)
-{
-   _entry_value_apply(data);
-}
-
 static int
 _decimal_points_get(const char *label)
 {
@@ -577,6 +570,7 @@ _entry_show_cb(void *data,
elm_entry_select_all(obj);
sd->entry_visible = EINA_TRUE;
elm_layout_signal_emit(data, "elm,state,button,inactive", "elm");
+   evas_object_hide(sd->text_button);
 }
 
 static void
@@ -607,13 +601,13 @@ _toggle_entry(Evas_Object *obj)
 (sd->ent, EVAS_CALLBACK_SHOW, _entry_show_cb, obj);
}
  elm_entry_single_line_set(sd->ent, EINA_TRUE);
- efl_event_callback_add
-   (sd->ent, ELM_ENTRY_EVENT_ACTIVATED, _entry_activated_cb, obj);
  elm_layout_content_set(obj, "elm.swallow.entry", sd->ent);
  _entry_accept_filter_add(obj);
  elm_entry_markup_filter_append(sd->ent, 
_invalid_input_validity_filter, NULL);
  if (_elm_config->spinner_min_max_filter_enable)
elm_entry_markup_filter_append(sd->ent, 
_min_max_validity_filter, obj);
+ efl_event_callback_add
+(sd->ent, ELM_WIDGET_EVENT_UNFOCUSED, _entry_unfocused_cb, 
obj);
   }
 if (!sd->button_layout)
   {
@@ -624,6 +618,7 @@ _toggle_entry(Evas_Object *obj)
  sd->entry_visible = EINA_TRUE;
   }
 elm_layout_signal_emit(obj, "elm,state,entry,active", "elm");
+evas_object_show(sd->ent);
  }
 }
 
@@ -665,7 +660,7 @@ _val_inc_dec_start(void *data)
ELM_SPINNER_DATA_GET(data, sd);
 
sd->interval = sd->first_interval;
-   sd->spin_speed = sd->inc_clicked ? sd->step : -sd->step;
+   sd->spin_speed = sd->inc_btn_activated ? sd->step : -sd->step;
sd->longpress_timer = NULL;
ecore_timer_del(sd->spin_timer);
sd->spin_timer = ecore_timer_add(sd->interval, _spin_value, data);
@@ -689,32 +684,6 @@ _spin_stop(Evas_Object *obj)
 }
 
 static Eina_Bool
-_key_action_spin(Evas_Object *obj, const char *params)
-{
-   const char *dir = params;
-   Eina_Bool horz = !!strncmp(elm_widget_style_get(obj), "vertical", 8);
-   ELM_SPINNER_DATA_GET(obj, sd);
-
-   if (((!strcmp(dir, "left")) && horz) ||
-   ((!strcmp(dir, "down")) && !horz))
- {
-sd->inc_clicked = EINA_FALSE;
-_val_inc_dec_start(obj);
-elm_layout_signal_emit(obj, "elm,left,anim,activate", "elm");
- }
-   else if (((!strcmp(dir, "right")) && horz) ||
-((!strcmp(dir,

Re: [E-devel] [RFC] One binary to rule them all, packagers opinion needed

2016-10-21 Thread Cedric BAIL
On Fri, Oct 21, 2016 at 3:31 PM, Stefan Schmidt  wrote:
> On 22/10/16 00:14, Cedric BAIL wrote:
>> Before I embark on a crazy idea that may just break everything, I
>> would like to get some feedback. So one of the problem we are facing
>> with EFL is that with all those separated library we end up with some
>> serious time during application startup dedicated to linking. A work
>> around has been quicklaunch, but it is mostly unused. Also it does
>> only improve things once it has started, not much during startup time
>> where you still have to do all the linking.
>>
>> With PIE and -rdynamic that we use today on quicklaunch binary, we use
>> dlopen to get symbol from it and load this binary as if they were
>> library... So maybe we can actually use that same mechanism to
>> actually statically link efl with the quicklaunch server binary and
>> make all efl .so library just a symlink to that binary. Now,
>> enlightenment could actually try to rely on quicklaunch to start
>> itself and start other application. This should speed up boot time and
>> application start up time. The reason to make it the default way of
>> doing things is to make sure that it is maintained and work.
>
> Are there actual numbers about speed improvement? Are we really needed
> this speedup so badly? As you can already see from this two sentences
> I'm not really in favor of it. See below for some arguments.

Yes, it does, but really depends on your hardware. For example, on
Raspberry Pi out of the 4s it takes to startup elemines, 1s can be
saved by quicklaunch. We are talking of a 25% improvement here. It
will also likely push us to improve further quicklaunch
infrastructure. We should be able to preconnect to X/Wayland and save
for the new process that is starting. We should also be able to pre
load the theme which would also save a lot of memory as those data
would be shared among all process. Elementary should be able to pre
load profile too and save that to every process. So first step is a
25% win for sure. Further down the line, I bet we can save up to 60%
of our startup time. Basically some people are trying to push E/EFL
even further into smaller embeded device and they are requesting our
assistance.

>> Now some of the drawback. First it is a trick, meaning most people
>> that will try to dig in will get confused at first on what is going on
>> and we need to document it. Building EFL is going to become even more
>> complex (I don't know yet how to generate the proper symlink), let's
>> enjoy more of the autofoo dark art.
>
> To be honest here, this one alone is a killer in my opinion. What we
> have is already complex enough. I often enough find myself in situation
> where I bang my head against the wall until I get the system to do what
> I want.

Yes, that is not going to improve this way for sure.

>>   All binary will happear as if they
>> are just a fork of enlightenment and you will need to use some flags
>> to ps/top and friends to ask them to read /proc to get the new command
>> line otherwise all binary have the same name.
>
> And that one is the nail in the coffin in my opinion.
>
>> I think that quicklaunch will require also to be improved by being
>> made more robust/with a larger set of feature (nicely opposing goal).
>> Eventually it should handle application restart for example (What
>> enlightenment_start does today)... which annoy me a bit. Also we would
>> likely be on a path to reimplement systemd --user here. Something I
>> have tried to avoid for some time.
>>
>> Ok, does anyone see some serious blocker to this idea ? Impact on
>> packager to much ? Something I missed ? Something that need to be
>> clarified ?
>
> I have a hard time to see that this drastic change is really worth some
> improved launch time. Especially when you keep in mind that we are
> planning to merge some of our libs anyway thus reducing the amount of
> linking.

I do think we will never save as much nor open ourself to all the
potential optimization that quicklaunch provide b merging a few
library. I don't have comparison there, but from above number you can
guess that it will be below 25%. Also this approach is I think nicer
as we do not need to forcefully merge library into weird name that
have less sense and endup with endless debate, like what does efl_core
integrate and so on. The only merge I would still go with is
efl/eo/ecore as they are clearly linked strongly by behavior now.
-- 
Cedric BAIL

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [RFC] One binary to rule them all, packagers opinion needed

2016-10-21 Thread Al Poole
I don't know how portable that would be??? I don't think /proc is available
by default on most non-Linux Unix-like OS I use...

On Fri, Oct 21, 2016 at 11:31 PM, Stefan Schmidt 
wrote:

> Hello.
>
> On 22/10/16 00:14, Cedric BAIL wrote:
> > Hello,
> >
> > Before I embark on a crazy idea that may just break everything, I
> > would like to get some feedback. So one of the problem we are facing
> > with EFL is that with all those separated library we end up with some
> > serious time during application startup dedicated to linking. A work
> > around has been quicklaunch, but it is mostly unused. Also it does
> > only improve things once it has started, not much during startup time
> > where you still have to do all the linking.
> >
> > With PIE and -rdynamic that we use today on quicklaunch binary, we use
> > dlopen to get symbol from it and load this binary as if they were
> > library... So maybe we can actually use that same mechanism to
> > actually statically link efl with the quicklaunch server binary and
> > make all efl .so library just a symlink to that binary. Now,
> > enlightenment could actually try to rely on quicklaunch to start
> > itself and start other application. This should speed up boot time and
> > application start up time. The reason to make it the default way of
> > doing things is to make sure that it is maintained and work.
>
> Are there actual numbers about speed improvement? Are we really needed
> this speedup so badly? As you can already see from this two sentences
> I'm not really in favor of it. See below for some arguments.
>
> > Now some of the drawback. First it is a trick, meaning most people
> > that will try to dig in will get confused at first on what is going on
> > and we need to document it. Building EFL is going to become even more
> > complex (I don't know yet how to generate the proper symlink), let's
> > enjoy more of the autofoo dark art.
>
> To be honest here, this one alone is a killer in my opinion. What we
> have is already complex enough. I often enough find myself in situation
> where I bang my head against the wall until I get the system to do what
> I want.
>
>   All binary will happear as if they
> > are just a fork of enlightenment and you will need to use some flags
> > to ps/top and friends to ask them to read /proc to get the new command
> > line otherwise all binary have the same name.
>
> And that one is the nail in the coffin in my opinion.
>
> > I think that quicklaunch will require also to be improved by being
> > made more robust/with a larger set of feature (nicely opposing goal).
> > Eventually it should handle application restart for example (What
> > enlightenment_start does today)... which annoy me a bit. Also we would
> > likely be on a path to reimplement systemd --user here. Something I
> > have tried to avoid for some time.
> >
> > Ok, does anyone see some serious blocker to this idea ? Impact on
> > packager to much ? Something I missed ? Something that need to be
> > clarified ?
>
> I have a hard time to see that this drastic change is really worth some
> improved launch time. Especially when you keep in mind that we are
> planning to merge some of our libs anyway thus reducing the amount of
> linking.
>
> regards
> Stefan Schmidt
>
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Making documentation for all elements of a eo file mandatory for new files

2016-10-21 Thread Stefan Schmidt
Hello.

TL;DR: If you are committing new eo files I expect them to have full 
docs from now one. Also help with the ones you are currently working on.

Longer version:
If you look at the commit log you can see that I started another crusade 
on getting our doc coverage for eo files.

Right now we have the following stats for our documentation efforts:

=== CLASS SECTION: 269 out of 864 (31%) ===

Classes:   255 (documented:   93 or  36%)
Interfaces: 57 (documented:   22 or  39%)
Mixins: 28 (documented:   28 or 100%)
Events:524 (documented:  126 or  24%)

=== FUNCTION SECTION: 6440 out of 7790 (83%) ===

Methods:  1016 (documented:  936 or  92%)
   Method params:  1667 (documented: 1401 or  84%)
   Method returns:  493 (documented:  310 or  63%)
Getters:  1059 (documented:  970 or  92%)
   Getter returns:  175 (documented:  105 or  60%)
   Getter keys: 120 (documented:   89 or  74%)
   Getter values:  1197 (documented:  924 or  77%)
Setters:   845 (documented:  779 or  92%)
   Setter returns:   69 (documented:   43 or  62%)
   Setter keys:  57 (documented:   49 or  86%)
   Setter values:  1092 (documented:  834 or  76%)

=== TYPE SECTION: 1240 out of 1775 (70%) ===

Aliases:84 (documented:9 or  11%)
Structs:82 (documented:   57 or  70%)
Struct fields: 191 (documented:  156 or  82%)
Enums: 170 (documented:  154 or  91%)
Enum fields:  1248 (documented:  864 or  69%)

=== VARIABLE SECTION: 56 out of 56 (100%) ===

Constants:   0 (documented:0 or 100%)
Globals:56 (documented:   56 or 100%)

=== TOTAL: 8005 out of 10485 (76%) ===

Which means we have 2480 undocumented items.

I'm willing to work on this and I actually doing it already but if your 
working area covers some eo files please make sure that you document all 
bits in there. Some might look silly on a first glace (enums fields, 
etc) but getting this to a 100% coverage, and keeping it, really helps 
the doc efforts. We are using these to generate our documentation and 
after some time for setup and migration of the older doxygen docs we 
will switch to them. An example how they look like is here (design and 
layout is up for suggestions but need to stay aligned with our www theme 
to have a consistent look):
https://devs.enlightenment.org/~stefan/dokuwiki/doku.php?id=docs:efl:auto:reference

To keep track on the progress you can use:
src/bin/elua/elua src/scripts/elua/apps/gendoc.lua -src/lib/

To get an output of what items are still need docs use the verbose flag:
src/bin/elua/elua src/scripts/elua/apps/gendoc.lua -v src/lib/

regards
Stefan Schmidt

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/03: docs: atspi: document atspi bridge class

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 15b61d487a020c2fbcc4c2e37f910e51b2c85410
Author: Stefan Schmidt 
Date:   Fri Oct 21 23:05:52 2016 +0200

docs: atspi: document atspi bridge class
---
 src/lib/elementary/elm_atspi_bridge.eo | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/lib/elementary/elm_atspi_bridge.eo 
b/src/lib/elementary/elm_atspi_bridge.eo
index 404dfcf..b1e05f8 100644
--- a/src/lib/elementary/elm_atspi_bridge.eo
+++ b/src/lib/elementary/elm_atspi_bridge.eo
@@ -1,5 +1,6 @@
 class Elm.Atspi.Bridge (Efl.Object)
 {
+   [[ATSPI bridge class]]
legacy_prefix: elm_atspi_bridge;
eo_prefix: elm_obj_atspi_bridge;
event_prefix: elm_atspi_bridge;
@@ -8,7 +9,7 @@ class Elm.Atspi.Bridge (Efl.Object)
  get {
 [[Indicate if connection with AT-SPI2 bus has been established.]]
 values {
-   ret: bool;
+   ret: bool; [[$true if connection has been established, $false 
otherwise]]
 }
  }
   }
@@ -18,7 +19,7 @@ class Elm.Atspi.Bridge (Efl.Object)
   Efl.Object.destructor;
}
events {
-  connected;
-  disconnected;
+  connected; [[Connected with AT-SPI2 bus]]
+  disconnected; [[Disconnected from AT-SPI2 bus]]
}
 }

-- 




[EGIT] [core/efl] master 02/03: docs: atspi: document atspi appl object class

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 6015f931301d46502bc8fa12a857106db300c0ab
Author: Stefan Schmidt 
Date:   Fri Oct 21 23:08:30 2016 +0200

docs: atspi: document atspi appl object class
---
 src/lib/elementary/elm_atspi_app_object.eo | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/elementary/elm_atspi_app_object.eo 
b/src/lib/elementary/elm_atspi_app_object.eo
index 84b3c13..1600fd9 100644
--- a/src/lib/elementary/elm_atspi_app_object.eo
+++ b/src/lib/elementary/elm_atspi_app_object.eo
@@ -1,5 +1,6 @@
 class Elm.Atspi.App.Object (Efl.Object, Elm.Interface.Atspi_Accessible)
 {
+   [[ATSPI application object class]]
legacy_prefix: elm_atspi_app_object;
data: Elm_Atspi_App_Object_Data;
implements {

-- 




[EGIT] [core/efl] master 03/03: docs: atspi: add more docs to atspi text interface

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit fcb8cce01f338ae97ddfc7ec478cdd69e529b628
Author: Stefan Schmidt 
Date:   Sat Oct 22 00:19:26 2016 +0200

docs: atspi: add more docs to atspi text interface
---
 src/lib/elementary/elm_interface_atspi_text.eo | 42 ++
 1 file changed, 23 insertions(+), 19 deletions(-)

diff --git a/src/lib/elementary/elm_interface_atspi_text.eo 
b/src/lib/elementary/elm_interface_atspi_text.eo
index 85707cd..3cd8cbc 100644
--- a/src/lib/elementary/elm_interface_atspi_text.eo
+++ b/src/lib/elementary/elm_interface_atspi_text.eo
@@ -98,7 +98,7 @@ interface Elm.Interface.Atspi.Text ()
   @property attribute @protected {
  get {
 [[Indicate if a text attribute with a given name is set]]
-return: bool;
+return: bool; [[$true if attribute name is set, $false otherwise]]
  }
  keys {
 name: string @nonull; [[text attribute name]]
@@ -130,7 +130,7 @@ interface Elm.Interface.Atspi.Text ()
   }
   @property character_extents @protected {
  get {
-return: bool;
+return: bool; [[$true if character extents, $false otherwise]]
  }
  keys {
 offset: int;
@@ -174,7 +174,7 @@ interface Elm.Interface.Atspi.Text ()
   }
   @property range_extents @protected {
  get {
-return: bool;
+return: bool; [[$true if range extents, $false otherwise]]
  }
  keys {
 screen_coords: bool; [[If $true, x and y values will be relative 
to screen origin, otherwise relative to canvas]]
@@ -186,46 +186,50 @@ interface Elm.Interface.Atspi.Text ()
  }
   }
   @property selections_count @protected {
+ [[Selection count property]]
  get {
  }
  values {
-count: int;
+count: int; [[Selection counter]]
  }
   }
   @property selection @protected {
+ [[Selection property]]
  get {
  }
  set {
-return: bool;
+return: bool; [[$true if selection was set, $false otherwise]]
  }
  keys {
-selection_number: int;
+selection_number: int; [[Selection number for identification]]
  }
  values {
-start_offset: int;
-end_offset: int;
+start_offset: int; [[Selection start offset]]
+end_offset: int; [[Selection end offset]]
  }
   }
   selection_add @protected {
+ [[Add selection]]
  params {
-@in start_offset: int;
-@in end_offset: int;
+@in start_offset: int; [[Start selection from this offset]]
+@in end_offset: int; [[End selection at this offset]]
  }
- return: bool;
+ return: bool; [[$true if selection was added, $false otherwise]]
   }
   selection_remove @protected {
+ [[Remove selection]]
  params {
-@in selection_number: int;
+@in selection_number: int; [[Selection number to be removed]]
  }
- return: bool;
+ return: bool; [[$true if selection was removed, $false otherwise]]
   }
}
events {
-  access,text,bounds,changed;
-  access,text,attributes,changed;
-  access,text,caret,moved;
-  access,text,inserted;
-  access,text,removed;
-  access,text,selection,changed;
+  access,text,bounds,changed; [[Text bounds have changed]]
+  access,text,attributes,changed; [[Text attributes have changed]]
+  access,text,caret,moved; [[Caret moved]]
+  access,text,inserted; [[Text was inserted]]
+  access,text,removed; [[Text was removed]]
+  access,text,selection,changed; [[Text selection has changed]]
}
 }

-- 




Re: [E-devel] [RFC] One binary to rule them all, packagers opinion needed

2016-10-21 Thread Stefan Schmidt
Hello.

On 22/10/16 00:14, Cedric BAIL wrote:
> Hello,
>
> Before I embark on a crazy idea that may just break everything, I
> would like to get some feedback. So one of the problem we are facing
> with EFL is that with all those separated library we end up with some
> serious time during application startup dedicated to linking. A work
> around has been quicklaunch, but it is mostly unused. Also it does
> only improve things once it has started, not much during startup time
> where you still have to do all the linking.
>
> With PIE and -rdynamic that we use today on quicklaunch binary, we use
> dlopen to get symbol from it and load this binary as if they were
> library... So maybe we can actually use that same mechanism to
> actually statically link efl with the quicklaunch server binary and
> make all efl .so library just a symlink to that binary. Now,
> enlightenment could actually try to rely on quicklaunch to start
> itself and start other application. This should speed up boot time and
> application start up time. The reason to make it the default way of
> doing things is to make sure that it is maintained and work.

Are there actual numbers about speed improvement? Are we really needed 
this speedup so badly? As you can already see from this two sentences 
I'm not really in favor of it. See below for some arguments.

> Now some of the drawback. First it is a trick, meaning most people
> that will try to dig in will get confused at first on what is going on
> and we need to document it. Building EFL is going to become even more
> complex (I don't know yet how to generate the proper symlink), let's
> enjoy more of the autofoo dark art.

To be honest here, this one alone is a killer in my opinion. What we 
have is already complex enough. I often enough find myself in situation 
where I bang my head against the wall until I get the system to do what 
I want.

  All binary will happear as if they
> are just a fork of enlightenment and you will need to use some flags
> to ps/top and friends to ask them to read /proc to get the new command
> line otherwise all binary have the same name.

And that one is the nail in the coffin in my opinion.

> I think that quicklaunch will require also to be improved by being
> made more robust/with a larger set of feature (nicely opposing goal).
> Eventually it should handle application restart for example (What
> enlightenment_start does today)... which annoy me a bit. Also we would
> likely be on a path to reimplement systemd --user here. Something I
> have tried to avoid for some time.
>
> Ok, does anyone see some serious blocker to this idea ? Impact on
> packager to much ? Something I missed ? Something that need to be
> clarified ?

I have a hard time to see that this drastic change is really worth some 
improved launch time. Especially when you keep in mind that we are 
planning to merge some of our libs anyway thus reducing the amount of 
linking.

regards
Stefan Schmidt

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] [RFC] One binary to rule them all, packagers opinion needed

2016-10-21 Thread Cedric BAIL
Hello,

Before I embark on a crazy idea that may just break everything, I
would like to get some feedback. So one of the problem we are facing
with EFL is that with all those separated library we end up with some
serious time during application startup dedicated to linking. A work
around has been quicklaunch, but it is mostly unused. Also it does
only improve things once it has started, not much during startup time
where you still have to do all the linking.

With PIE and -rdynamic that we use today on quicklaunch binary, we use
dlopen to get symbol from it and load this binary as if they were
library... So maybe we can actually use that same mechanism to
actually statically link efl with the quicklaunch server binary and
make all efl .so library just a symlink to that binary. Now,
enlightenment could actually try to rely on quicklaunch to start
itself and start other application. This should speed up boot time and
application start up time. The reason to make it the default way of
doing things is to make sure that it is maintained and work.

Now some of the drawback. First it is a trick, meaning most people
that will try to dig in will get confused at first on what is going on
and we need to document it. Building EFL is going to become even more
complex (I don't know yet how to generate the proper symlink), let's
enjoy more of the autofoo dark art. All binary will happear as if they
are just a fork of enlightenment and you will need to use some flags
to ps/top and friends to ask them to read /proc to get the new command
line otherwise all binary have the same name.

I think that quicklaunch will require also to be improved by being
made more robust/with a larger set of feature (nicely opposing goal).
Eventually it should handle application restart for example (What
enlightenment_start does today)... which annoy me a bit. Also we would
likely be on a path to reimplement systemd --user here. Something I
have tried to avoid for some time.

Ok, does anyone see some serious blocker to this idea ? Impact on
packager to much ? Something I missed ? Something that need to be
clarified ?

Have fun,
-- 
Cedric BAIL

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: ecore: force fully resolve a future on cancel during recursive call.

2016-10-21 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 6321630d32994bf4c575879e54762aba153f0b63
Author: Cedric Bail 
Date:   Fri Oct 21 12:44:15 2016 -0700

ecore: force fully resolve a future on cancel during recursive call.
---
 src/lib/ecore/efl_promise.c | 37 ++---
 1 file changed, 34 insertions(+), 3 deletions(-)

diff --git a/src/lib/ecore/efl_promise.c b/src/lib/ecore/efl_promise.c
index 31517c5..8cbde0e 100644
--- a/src/lib/ecore/efl_promise.c
+++ b/src/lib/ecore/efl_promise.c
@@ -95,6 +95,10 @@ _efl_loop_future_success(Efl_Event *ev, Efl_Loop_Future_Data 
*pd, void *value)
 
EINA_INLIST_FREE(pd->callbacks, cb)
  {
+// Remove callback early to avoid double execution while
+// doing recursive call
+pd->callbacks = eina_inlist_remove(pd->callbacks, pd->callbacks);
+
 if (cb->next)
   {
  chain_success.next = cb->next;
@@ -109,7 +113,6 @@ _efl_loop_future_success(Efl_Event *ev, 
Efl_Loop_Future_Data *pd, void *value)
  chain_success.value = value;
   }
 
-pd->callbacks = eina_inlist_remove(pd->callbacks, pd->callbacks);
 free(cb);
  }
 }
@@ -127,16 +130,36 @@ _efl_loop_future_failure(Efl_Event *ev, 
Efl_Loop_Future_Data *pd, Eina_Error err
 
EINA_INLIST_FREE(pd->callbacks, cb)
  {
+// Remove callback early to avoid double execution while
+// doing recursive call
+pd->callbacks = eina_inlist_remove(pd->callbacks, pd->callbacks);
+
 chain_fail.next = cb->next;
 
 if (cb->failure) cb->failure((void*) cb->data, ev);
 
-pd->callbacks = eina_inlist_remove(pd->callbacks, pd->callbacks);
 free(cb);
  }
 }
 
 static void
+_efl_loop_future_propagate_force(Eo *obj, Efl_Loop_Future_Data *pd)
+{
+   Efl_Event ev;
+
+   ev.object = obj;
+
+   if (pd->promise->message->error == 0)
+ {
+_efl_loop_future_success(&ev, pd, pd->message->value);
+ }
+   else
+ {
+_efl_loop_future_failure(&ev, pd, pd->message->error);
+ }
+}
+
+static void
 _efl_loop_future_propagate(Eo *obj, Efl_Loop_Future_Data *pd)
 {
Efl_Event ev;
@@ -299,7 +322,14 @@ _efl_loop_future_cancel(Eo *obj, Efl_Loop_Future_Data *pd)
// We do allow for calling cancel during the propagation phase
// as the other proper fix is to wype out all future reference before
// starting propagating things.
-   if (pd->promise && pd->promise->propagating) return;
+   if (pd->promise && pd->promise->propagating)
+ {
+efl_ref(obj);
+
+_efl_loop_future_propagate_force(obj, pd);
+
+goto disconnect;
+ }
 
// Check state
if (pd->fulfilled)
@@ -322,6 +352,7 @@ _efl_loop_future_cancel(Eo *obj, Efl_Loop_Future_Data *pd)
 
_efl_loop_future_propagate(obj, pd);
 
+ disconnect:
_efl_loop_future_disconnect(obj, pd);
 
efl_unref(obj);

-- 




[EGIT] [core/efl] master 03/04: elementary: Add EFL pointers to elementary pointer edc

2016-10-21 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit 2b493bf4ab59e1ab405bb4b0cd9bfd0f9319104b
Author: Chris Michael 
Date:   Fri Oct 21 15:27:05 2016 -0400

elementary: Add EFL pointers to elementary pointer edc

This adds more pointers to elm/pointer so that we can use these to
provide "EFL mouse pointers" inside Wayland Client applications.

Signed-off-by: Chris Michael 
---
 data/elementary/themes/edc/elm/pointer.edc | 412 +
 1 file changed, 412 insertions(+)

diff --git a/data/elementary/themes/edc/elm/pointer.edc 
b/data/elementary/themes/edc/elm/pointer.edc
index 9ae729e..d1a95b2 100644
--- a/data/elementary/themes/edc/elm/pointer.edc
+++ b/data/elementary/themes/edc/elm/pointer.edc
@@ -1,6 +1,7 @@
 group { name: "elm/pointer/base/default";
images {
   image: "pointer.png" COMP;
+  image: "pointer_glow.png" COMP;
}
parts {
   part {
@@ -22,6 +23,20 @@ group { name: "elm/pointer/base/default";
 }
  }
   }
+  part { name: "glow";
+ description { state: "default" 0.0;
+image.normal: "pointer_glow.png";
+color: 255 255 255 0;
+ }
+ description { state: "visible" 0.0;
+inherit: "default" 0.0;
+color: 255 255 255 255;
+ }
+ description { state: "faded" 0.0;
+inherit: "default" 0.0;
+color: 255 255 255 128;
+ }
+  }
   part {
  name: "elm.swallow.hotspot";
  /* this is a "fake" swallow part
@@ -48,4 +63,401 @@ group { name: "elm/pointer/base/default";
  }
   }
}
+   programs {
+  program {
+ signal: "elm,action,mouse,down"; source: "elm";
+ action: STATE_SET "visible" 0.0;
+ target: "glow";
+ after: "fade";
+  }
+  program { name: "fade";
+ action: STATE_SET "default" 0.0;
+ transition: SINUSOIDAL 0.5;
+ target: "glow";
+  }
+  program { name: "pulse";
+ signal: "e,state,mouse,idle"; source: "e";
+ in: 10.0 0.0;
+ action: STATE_SET "faded" 0.0;
+ transition: SINUSOIDAL 0.25;
+ target: "glow";
+ after: "pulse2";
+  }
+  program { name: "pulse2";
+ action: STATE_SET "default" 0.0;
+ transition: SINUSOIDAL 0.5;
+ target: "glow";
+ after: "pulse";
+  }
+  program {
+ signal: "elm,action,mouse,move"; source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "glow";
+ after: "stop2";
+  }
+  program { name: "stop2";
+ action: ACTION_STOP;
+ target: "pulse";
+ target: "pulse2";
+  }
+   }
+}
+
+group { name: "elm/pointer/base/bottom_right_corner";
+   inherit: "elm/pointer/base/default";
+   images.image: "mini_box_glow.png" COMP;
+   parts {
+  part { name: "box";
+ insert_after: "glow";
+ description { state: "default" 0.0;
+image.normal: "mini_box_glow.png";
+image.border: 7 7 7 7;
+rel1.relative: 0.3 0.3;
+rel2.relative: 0.7 0.7;
+ }
+ description { state: "p1" 0.0;
+inherit: "default" 0.0;
+rel1.relative: 0.3 0.3;
+rel2.relative: 1.0 1.0;
+ }
+  }
+   }
+   programs {
+  program { name: "box1";
+ signal: "load"; source: "";
+ action: STATE_SET "p1" 0.0;
+ transition: SINUSOIDAL 0.5;
+ target: "box";
+ after: "box2";
+  }
+  program { name: "box2";
+ action: STATE_SET "default" 0.0;
+ transition: SINUSOIDAL 0.5;
+ target: "box";
+ after: "box1";
+  }
+   }
+}
+
+group { name: "elm/pointer/base/top_right_corner";
+   inherit: "elm/pointer/base/bottom_right_corner";
+   parts {
+  part { name: "box";
+ description { state: "default" 0.0;
+rel1.relative: 0.3 0.3;
+rel2.relative: 0.7 0.7;
+ }
+ description { state: "p1" 0.0;
+rel1.relative: 0.3 0.0;
+rel2.relative: 1.0 0.7;
+ }
+  }
+   }
+}
+
+group { name: "elm/pointer/base/top_left_corner";
+   inherit: "elm/pointer/base/bottom_right_corner";
+   parts {
+  part { name: "box";
+ description { state: "default" 0.0;
+rel1.relative: 0.6 0.6;
+rel2.relative: 1.0 1.0;
+ }
+ description { state: "p1" 0.0;
+rel1.relative: 0.3 0.3;
+rel2.relative: 1.0 1.0;
+ }
+  }
+   }
+}
+
+group { name: "elm/pointer/base/bottom_left_corner";
+   inherit: "elm/pointer/base/bottom_right_corner";
+   parts {
+  part { name: "box";
+ description { state: "default" 0.0;
+rel1.relative: 0.7 0.3;
+rel2.relative: 1.0 0.7;
+ }
+ description { state: "p1" 0.0;
+ 

[EGIT] [core/efl] master 02/04: ecore-wl2: Remove all references to wl_cursor usage

2016-10-21 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit 173fda5c11fc083a0b274e404f0005a52b4bf128
Author: Chris Michael 
Date:   Fri Oct 21 15:23:22 2016 -0400

ecore-wl2: Remove all references to wl_cursor usage

This commit essentially removes the ability to use wl_cursor for EFL
Wayland Client Applications. This is a request from "some old man" ;)
for efl wayland applications to use EFL pointers, not X/FDO pointers.

@feature

Signed-off-by: Chris Michael 
---
 configure.ac  |   2 +-
 src/lib/ecore_wl2/Ecore_Wl2.h |   1 -
 src/lib/ecore_wl2/ecore_wl2_input.c   | 145 ++
 src/lib/ecore_wl2/ecore_wl2_private.h |  12 +--
 src/lib/ecore_wl2/ecore_wl2_window.c  |   3 +-
 5 files changed, 11 insertions(+), 152 deletions(-)

diff --git a/configure.ac b/configure.ac
index c743063..d90b516 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3646,7 +3646,7 @@ EFL_INTERNAL_DEPEND_PKG([ECORE_WL2], [efl])
 EFL_INTERNAL_DEPEND_PKG([ECORE_WL2], [eina])
 
 EFL_DEPEND_PKG([ECORE_WL2], [WAYLAND],
-   [wayland-server >= 1.11.0 wayland-client >= 1.11.0 wayland-cursor >= 1.11.0 
xkbcommon >= 0.6.0])
+   [wayland-server >= 1.11.0 wayland-client >= 1.11.0 xkbcommon >= 0.6.0])
 
 EFL_EVAL_PKGS([ECORE_WL2])
 
diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h
index d45ed1a..27eca97 100644
--- a/src/lib/ecore_wl2/Ecore_Wl2.h
+++ b/src/lib/ecore_wl2/Ecore_Wl2.h
@@ -4,7 +4,6 @@
 # include 
 # include 
 # include 
-# include 
 # include 
 
 # define WL_HIDE_DEPRECATED
diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c 
b/src/lib/ecore_wl2/ecore_wl2_input.c
index 919d424..5600fed 100644
--- a/src/lib/ecore_wl2/ecore_wl2_input.c
+++ b/src/lib/ecore_wl2/ecore_wl2_input.c
@@ -35,7 +35,7 @@ typedef struct _Ecore_Wl2_Mouse_Down_Info
 static Eina_Inlist *_ecore_wl2_mouse_down_info_list = NULL;
 
 static void _keyboard_cb_key(void *data, struct wl_keyboard *keyboard 
EINA_UNUSED, unsigned int serial, unsigned int timestamp, unsigned int keycode, 
unsigned int state);
-static void _pointer_cb_frame(void *data, struct wl_callback *callback, 
unsigned int timestamp EINA_UNUSED);
+/* static void _pointer_cb_frame(void *data, struct wl_callback *callback, 
unsigned int timestamp EINA_UNUSED); */
 
 static Ecore_Wl2_Mouse_Down_Info *
 _ecore_wl2_input_mouse_down_info_get(int device)
@@ -651,41 +651,6 @@ static const struct wl_pointer_listener _pointer_listener =
NULL, /* axis_discrete */
 };
 
-static const struct wl_callback_listener _pointer_surface_listener =
-{
-   _pointer_cb_frame
-};
-
-static void
-_pointer_cb_frame(void *data, struct wl_callback *callback, unsigned int 
timestamp EINA_UNUSED)
-{
-   Ecore_Wl2_Input *input;
-
-   input = data;
-   if (!input) return;
-
-   if (callback)
- {
-if (callback != input->cursor.frame_cb) return;
-wl_callback_destroy(callback);
-input->cursor.frame_cb = NULL;
- }
-
-   if (!input->cursor.name)
- {
-_ecore_wl2_input_cursor_set(input, NULL);
-return;
- }
-
-   if ((input->cursor.wl_cursor->image_count > 1) &&
-   (!input->cursor.frame_cb))
- {
-input->cursor.frame_cb = wl_surface_frame(input->cursor.surface);
-wl_callback_add_listener(input->cursor.frame_cb,
- &_pointer_surface_listener, input);
- }
-}
-
 static void
 _keyboard_cb_keymap(void *data, struct wl_keyboard *keyboard EINA_UNUSED, 
unsigned int format, int fd, unsigned int size)
 {
@@ -1146,18 +,9 @@ _seat_cb_capabilities(void *data, struct wl_seat *seat, 
enum wl_seat_capability
 input->wl.pointer = wl_seat_get_pointer(seat);
 wl_pointer_set_user_data(input->wl.pointer, input);
 wl_pointer_add_listener(input->wl.pointer, &_pointer_listener, input);
-
-if (!input->cursor.surface)
-  {
- input->cursor.surface =
-   wl_compositor_create_surface(input->display->wl.compositor);
-  }
  }
else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && (input->wl.pointer))
  {
-if (input->cursor.surface) wl_surface_destroy(input->cursor.surface);
-input->cursor.surface = NULL;
-
 #ifdef WL_POINTER_RELEASE_SINCE_VERSION
 if (input->seat_version >= WL_POINTER_RELEASE_SINCE_VERSION)
   wl_pointer_release(input->wl.pointer);
@@ -1224,74 +1180,19 @@ _ecore_wl2_input_cursor_setup(Ecore_Wl2_Input *input)
input->cursor.size = 32;
tmp = getenv("ECORE_WL_CURSOR_SIZE");
if (tmp) input->cursor.size = atoi(tmp);
-
-   tmp = getenv("ECORE_WL_CURSOR_THEME_NAME");
-   eina_stringshare_replace(&input->cursor.theme_name, tmp);
-
-   if (!input->cursor.name)
- input->cursor.name = eina_stringshare_add("left_ptr");
-
-   if (input->display->wl.shm)
- {
-input->cursor.theme =
-  wl_cursor_theme_load(inpu

[EGIT] [core/efl] master 04/04: elementary: Provide EFL mouse pointers for Wayland Client applications

2016-10-21 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit 0a46096337dcbde7b18e093518e3b0846a425053
Author: Chris Michael 
Date:   Fri Oct 21 15:28:13 2016 -0400

elementary: Provide EFL mouse pointers for Wayland Client applications

This commit allows EFL wayland client applications to make use of EFL
mouse pointers instead of the wayland-cursor provided ones.

NB: There are still some minor hiccups with this (move pointer does
not change, mouse pointer getting clipped off when on the lower
border, etc) but those will get sorted out soon.

Feature request by the old man ;)

@feature

Signed-off-by: Chris Michael 
---
 src/lib/elementary/efl_ui_win.c | 158 
 src/lib/elementary/els_cursor.c |  33 -
 2 files changed, 126 insertions(+), 65 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 5678230..d9b1b8b 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -919,8 +919,22 @@ _elm_win_mouse_in(Ecore_Evas *ee)
_elm_win_throttle_ok = EINA_TRUE;
if (sd->resizing) sd->resizing = EINA_FALSE;
 #ifdef HAVE_ELEMENTARY_WL2
-   if (sd->wl.win && (!sd->frame_obj))
- ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL);
+   ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL);
+
+   ecore_evas_object_cursor_set(sd->ee, sd->pointer.obj,
+ELM_OBJECT_LAYER_CURSOR,
+sd->pointer.hot_x, sd->pointer.hot_y);
+#endif
+}
+
+static void
+_elm_win_mouse_out(Ecore_Evas *ee)
+{
+   Efl_Ui_Win_Data *sd = _elm_win_associate_get(ee);
+   if (!sd) return;
+
+#ifdef HAVE_ELEMENTARY_WL2
+   sd->pointer.obj = ecore_evas_cursor_unset(sd->ee);
 #endif
 }
 
@@ -3503,10 +3517,14 @@ _elm_win_frame_cb_move_start(void *data,
if (!sd) return;
 
 #ifdef HAVE_ELEMENTARY_WL2
+   ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL);
+
if (!strcmp(source, "elm"))
- ecore_wl2_window_cursor_from_name_set(sd->wl.win, ELM_CURSOR_HAND1);
+ _elm_theme_object_set(sd->obj, sd->pointer.obj,
+   "pointer", "base", "move");
else
- ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL);
+ _elm_theme_object_set(sd->obj, sd->pointer.obj,
+   "pointer", "base", "default");
 #else
(void)source;
 #endif
@@ -3534,6 +3552,7 @@ _elm_win_frame_cb_move_stop(void *data,
 
 #ifdef HAVE_ELEMENTARY_WL2
ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL);
+   _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", 
"default");
 #endif
 }
 
@@ -3562,19 +3581,6 @@ static struct _resize_info _border_corner[4] =
 #endif
 
 static void
-_elm_win_frame_obj_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info EINA_UNUSED)
-{
-#ifdef HAVE_ELEMENTARY_WL2
-   Efl_Ui_Win_Data *sd = data;
-
-   if (sd->wl.win)
- ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL);
-#else
-   (void)data;
-#endif
-}
-
-static void
 _elm_win_frame_obj_move(void *data,
 Evas *e EINA_UNUSED,
 Evas_Object *obj EINA_UNUSED,
@@ -3614,34 +3620,44 @@ _elm_win_frame_cb_resize_show(void *data,
if (sd->resizing) return;
 
 #ifdef HAVE_ELEMENTARY_WL2
+   Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0;
int i;
+
i = sd->rot / 90;
if (!strcmp(source, "elm.event.resize.t"))
- ecore_wl2_window_cursor_from_name_set(sd->wl.win,
-   _border_side[(0 + i) % 4].name);
+ _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base",
+   _border_side[(0 + i) % 4].name);
else if (!strcmp(source, "elm.event.resize.b"))
- ecore_wl2_window_cursor_from_name_set(sd->wl.win,
-   _border_side[(2 + i) % 4].name);
+ _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base",
+   _border_side[(2 + i) % 4].name);
else if (!strcmp(source, "elm.event.resize.l"))
- ecore_wl2_window_cursor_from_name_set(sd->wl.win,
-   _border_side[(1 + i) % 4].name);
+ _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base",
+   _border_side[(1 + i) % 4].name);
else if (!strcmp(source, "elm.event.resize.r"))
- ecore_wl2_window_cursor_from_name_set(sd->wl.win,
-   _border_side[(3 + i) % 4].name);
+ _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base",
+   _border_side[(3 + i) % 4].name);
else if (!strcmp(source, "elm.event.resize.tl"))
- ecore_wl2_window_cursor_from_name_set(sd->wl.win,
-   _border_corner[(0 + i) % 4].name);
+ _elm_them

[EGIT] [core/efl] master 01/04: evas: Fix issue of wayland clients not drawing border icons

2016-10-21 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit 0f6c33eff106f7235351dd51ce7835041f548cc1
Author: Chris Michael 
Date:   Fri Oct 21 15:17:43 2016 -0400

evas: Fix issue of wayland clients not drawing border icons

Due to commit 7ce79be1a1748c32c4d0e58358ce2242902cf89b, EFL Wayland
Client applications stopped rendering their window icons. This was due
to the code which tried to detect if an object is in framespace.
Previous version would just check the obj->is_frame flag ... which is
insufficient to determine if an object is in Framespace. This commit
fixes that issue by checking an objects geometry also.

@fix

Signed-off-by: Chris Michael 
---
 src/lib/evas/canvas/evas_render.c | 16 +++-
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index bec977a..19fdbd7 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -185,9 +185,15 @@ _accumulate_time(double before, Eina_Bool async)
 static int _render_busy = 0;
 
 static inline Eina_Bool
-_is_obj_in_framespace(Evas_Object_Protected_Data *obj)
+_is_obj_in_framespace(Evas_Object_Protected_Data *obj, Evas_Public_Data *evas)
 {
-   return obj->is_frame;
+   if (obj->is_frame) return EINA_TRUE;
+
+   return !RECTS_INTERSECT(obj->cur->geometry.x, obj->cur->geometry.y,
+   obj->cur->geometry.w, obj->cur->geometry.h,
+   evas->framespace.x, evas->framespace.y,
+   evas->viewport.w - evas->framespace.w,
+   evas->viewport.h - evas->framespace.h);
 }
 
 static inline void
@@ -1648,7 +1654,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
}
   }
 ENFN->context_clip_clip(ENDT, ctx, ecx, ecy, ecw, ech);
-if (!_is_obj_in_framespace(obj))
+if (!_is_obj_in_framespace(obj, evas))
   _evas_render_framespace_context_clip_clip(evas, ctx);
 
 if (obj->cur->cache.clip.visible || !proxy_src_clip)
@@ -1824,7 +1830,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
   clipper->cur->cache.clip.w,
   clipper->cur->cache.clip.h);
ENFN->context_clip_set(ENDT, ctx, x + off_x, y + off_y, 
w, h);
-   if (!_is_obj_in_framespace(obj))
+   if (!_is_obj_in_framespace(obj, evas))
  _evas_render_framespace_context_clip_clip(evas, ctx);
 
if (proxy_src_clip)
@@ -2393,7 +2399,7 @@ evas_render_updates_internal_loop(Evas *eo_e, 
Evas_Public_Data *e,
context,
x, y, w, h);
 
-  if (!_is_obj_in_framespace(obj))
+  if (!_is_obj_in_framespace(obj, e))
 _evas_render_framespace_context_clip_clip(e, context);
 
   /* Clipper masks */

-- 




[EGIT] [core/efl] master 10/10: docs: atspi: document text editable atspi interface

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 922988097b7c19a9af585a743f0e789ca4c1a5c7
Author: Stefan Schmidt 
Date:   Fri Oct 21 18:32:48 2016 +0200

docs: atspi: document text editable atspi interface
---
 .../elm_interface_atspi_text_editable.eo   | 38 +-
 1 file changed, 22 insertions(+), 16 deletions(-)

diff --git a/src/lib/elementary/elm_interface_atspi_text_editable.eo 
b/src/lib/elementary/elm_interface_atspi_text_editable.eo
index df76ff1..ec1391c 100644
--- a/src/lib/elementary/elm_interface_atspi_text_editable.eo
+++ b/src/lib/elementary/elm_interface_atspi_text_editable.eo
@@ -3,46 +3,52 @@ interface Elm.Interface.Atspi.Text.Editable ()
eo_prefix: elm_interface_atspi_text_editable;
methods {
   @property content @protected {
+ [[Editable content property]]
  set {
-return: bool;
+return: bool; [[$true if setting the value succeeded, $false 
otherwise]]
  }
  values {
-string: string;
+string: string; [[Content]]
  }
   }
   insert @protected {
+  [[Insert text at given position]]
  params {
-@in string: string;
-@in position: int;
+@in string: string; [[String to be inserted]]
+@in position: int; [[Position to insert string]]
  }
- return: bool;
+ return: bool; [[$true if insert succeeded, $false otherwise]]
   }
   copy @protected {
+  [[Copy text between start and end parameter]]
  params {
-@in start: int;
-@in end: int;
+@in start: int; [[Start position to copy]]
+@in end: int; [[End position to copy]]
  }
- return: bool;
+ return: bool; [[$true if copy succeeded, $false otherwise]]
   }
   cut @protected {
+  [[Cut text between start and end parameter]]
  params {
-@in start: int;
-@in end: int;
+@in start: int; [[Start position to cut]]
+@in end: int; [[End position to cut]]
  }
- return: bool;
+ return: bool; [[$true if cut succeeded, $false otherwise]]
   }
   delete @protected {
+  [[Delete text between start and end parameter]]
  params {
-@in start: int;
-@in end: int;
+@in start: int; [[Start position to delete]]
+@in end: int; [[End position to delete]]
  }
- return: bool;
+ return: bool; [[$true if delete succeeded, $false otherwise]]
   }
   paste @protected {
+  [[Paste text at given position]]
  params {
-@in position: int;
+@in position: int; [[Position to insert text]]
  }
- return: bool;
+ return: bool; [[$true if paste succeeded, $false otherwise]]
   }
}
 }

-- 




[EGIT] [core/efl] master 09/10: docs: atspi: fix some typos in text docs

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit e32440de428d9403b6da16a5591fa6c13607a22e
Author: Stefan Schmidt 
Date:   Fri Oct 21 18:15:11 2016 +0200

docs: atspi: fix some typos in text docs
---
 src/lib/elementary/elm_interface_atspi_text.eo | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/lib/elementary/elm_interface_atspi_text.eo 
b/src/lib/elementary/elm_interface_atspi_text.eo
index cd8550f..85707cd 100644
--- a/src/lib/elementary/elm_interface_atspi_text.eo
+++ b/src/lib/elementary/elm_interface_atspi_text.eo
@@ -56,12 +56,12 @@ interface Elm.Interface.Atspi.Text ()
 offset: int; [[Position in text.]]
  }
  values {
-character: Eina.Unicode; [[Character at offset. 0 when out-of 
bounds offset has been given.  Codepoints between DC80 and DCFF indicates that 
string includes invalid UTF8 chars.]]
+character: Eina.Unicode; [[Character at offset. 0 when out-of 
bounds offset has been given. Codepoints between DC80 and DCFF indicates that 
string includes invalid UTF8 chars.]]
  }
   }
   @property string @protected {
  get {
-[[Gets string, start and end offset in text according to given 
initial offset and granulatity.]]
+[[Gets string, start and end offset in text according to given 
initial offset and granularity.]]
  }
  keys {
 granularity: Elm.Atspi_Text.Granularity;
@@ -69,7 +69,7 @@ interface Elm.Interface.Atspi.Text ()
 end_offset: int *; [[Offset indicating end of string according to 
given granularity. -1 in case of error.]]
  }
  values {
-string: own(char *); [[Newly allocated UTF-8 encoded string.  Must 
be free by a user.]]
+string: own(char *); [[Newly allocated UTF-8 encoded string. Must 
be free by a user.]]
  }
   }
   @property text @protected {
@@ -89,7 +89,7 @@ interface Elm.Interface.Atspi.Text ()
 [[Gets offset position of caret (cursor)]]
  }
  set {
-return: bool; [[$true if caret was successfully moved, 
$falseotherwise.]]
+return: bool; [[$true if caret was successfully moved, $false 
otherwise.]]
  }
  values {
 offset: int;
@@ -177,7 +177,7 @@ interface Elm.Interface.Atspi.Text ()
 return: bool;
  }
  keys {
-screen_coords: bool; [[If true x and y values will be relative to 
screen origin, otherwise relative to canvas]]
+screen_coords: bool; [[If $true, x and y values will be relative 
to screen origin, otherwise relative to canvas]]
 start_offset: int;
 end_offset: int;
  }

-- 




[EGIT] [core/efl] master 02/10: docs: atspi: document structs for atspi accessible interface

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit a843f93c7d358f1b8329f0ac597cd02dabc0bbee
Author: Stefan Schmidt 
Date:   Fri Oct 21 16:14:27 2016 +0200

docs: atspi: document structs for atspi accessible interface
---
 .../elementary/elm_interface_atspi_accessible.eo   | 29 +-
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/src/lib/elementary/elm_interface_atspi_accessible.eo 
b/src/lib/elementary/elm_interface_atspi_accessible.eo
index 289a99a..16850ba 100644
--- a/src/lib/elementary/elm_interface_atspi_accessible.eo
+++ b/src/lib/elementary/elm_interface_atspi_accessible.eo
@@ -198,34 +198,39 @@ struct Elm.Atspi.Event.Handler; [[ATSPI event listener]]
 
 struct Elm.Atspi.Event.State_Changed.Data
 {
-   type: Elm.Atspi.State_Type;
-   new_value: bool;
+   [[ATSPI state changed event data]]
+   type: Elm.Atspi.State_Type; [[Type of the state changed event]]
+   new_value: bool; [[New value]]
 }
 
 struct Elm.Atspi.Event.Geometry_Changed.Data
 {
-   x: int;
-   y: int;
-   width: int;
-   height: int;
+   [[ATSPI geometry changed event data]]
+   x: int; [[X coordinate]]
+   y: int; [[Y coordinate]]
+   width: int; [[Width]]
+   height: int; [[Height]]
 }
 
 struct Elm.Atspi.Event.Children_Changed.Data
 {
-   is_added: bool;
-   child: Efl.Object;
+   [[ATSPI children changed event data]]
+   is_added: bool; [[Child is added or not]]
+   child: Efl.Object; [[Child object]]
 }
 
 struct Elm.Atspi.Attribute
 {
-   key: string;
-   value: string;
+   [[ATSPI Attribute]]
+   key: string; [[Attribute key]]
+   value: string; [[Attribute value]]
 }
 
 struct Elm.Atspi.Relation
 {
-   type: Elm.Atspi.Relation_Type;
-   objects: list;
+   [[ATSPI Relation]]
+   type: Elm.Atspi.Relation_Type; [[Relation type]]
+   objects: list; [[List with relation objects]]
 }
 
 type Elm.Atspi.Relation_Set: list;

-- 




[EGIT] [core/efl] master 01/10: docs: atspi: add missing docs for atspi action interface

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit adca8765c07b10344f90b4008056ab1f9aee921c
Author: Stefan Schmidt 
Date:   Fri Oct 21 16:12:57 2016 +0200

docs: atspi: add missing docs for atspi action interface
---
 src/lib/elementary/elm_interface_atspi_action.eo | 18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/lib/elementary/elm_interface_atspi_action.eo 
b/src/lib/elementary/elm_interface_atspi_action.eo
index aca4c70..6279cae 100644
--- a/src/lib/elementary/elm_interface_atspi_action.eo
+++ b/src/lib/elementary/elm_interface_atspi_action.eo
@@ -12,7 +12,7 @@ mixin Elm.Interface.Atspi_Action ()
 name: string; [[Action name]]
  }
  keys {
-id: int;
+id: int; [[ID to get action name for]]
  }
   }
   @property localized_name @protected {
@@ -23,7 +23,7 @@ mixin Elm.Interface.Atspi_Action ()
 name: string; [[Localized name]]
  }
  keys {
-id: int;
+id: int; [[ID to get localized name for]]
  }
   }
   @property description @protected @virtual_pure {
@@ -31,13 +31,13 @@ mixin Elm.Interface.Atspi_Action ()
  get {
  }
  set {
-return: bool;
+return: bool; [[EINA_TRUE if description was set, else EINA_FALSE]]
  }
  values {
-description: string;
+description: string; [[Action description]]
  }
  keys {
-id: int;
+id: int; [[ID to set or get description for]]
  }
   }
   @property actions @protected {
@@ -45,20 +45,20 @@ mixin Elm.Interface.Atspi_Action ()
  get @virtual_pure {
  }
  values {
-actions: list; [[contains statically allocated 
strings]]
+actions: list; [[Contains statically allocated 
strings]]
  }
   }
   action_do @protected @virtual_pure {
  [[Performs action on given widget.]]
  params {
-@in id: int;
+@in id: int; [[ID for widget]]
  }
- return: bool;
+ return: bool; [[EINA_TRUE if action was performed, else EINA_FALSE]]
   }
   keybinding_get @protected @virtual_pure {
  [[Gets configured keybinding for specific action and widget.]]
  params {
-@in id: int;
+@in id: int; [[ID for widget]]
  }
  return: own(char *) @warn_unused; [[Should be freed by the user.]]
   }

-- 




[EGIT] [core/efl] master 04/10: docs: atspi: add missing method docs for atspi component interface

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit b7b1048c3e7872c0df5db91f692f8362178f0329
Author: Stefan Schmidt 
Date:   Fri Oct 21 16:41:31 2016 +0200

docs: atspi: add missing method docs for atspi component interface
---
 .../elementary/elm_interface_atspi_component.eo| 34 +++---
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/lib/elementary/elm_interface_atspi_component.eo 
b/src/lib/elementary/elm_interface_atspi_component.eo
index 16a8422..8f8f4cb 100644
--- a/src/lib/elementary/elm_interface_atspi_component.eo
+++ b/src/lib/elementary/elm_interface_atspi_component.eo
@@ -7,7 +7,7 @@ mixin Elm.Interface.Atspi_Component ()
   @property size @protected {
  [[Size of accessible widget.]]
  set {
-return: bool;
+return: bool; [[$true if size was set, $false otherwise]]
  }
  get {
  }
@@ -21,7 +21,7 @@ mixin Elm.Interface.Atspi_Component ()
  get {
  }
  values {
-layer: int;
+layer: int; [[Evas layer of the widget]]
  }
   }
   @property alpha @protected {
@@ -38,7 +38,7 @@ mixin Elm.Interface.Atspi_Component ()
  get {
  }
  values {
-z_order: int;
+z_order: int; [[Z order of component]]
  }
   }
   @property extents @protected {
@@ -46,23 +46,23 @@ mixin Elm.Interface.Atspi_Component ()
  get {
  }
  set {
-return: bool;
+return: bool; [[$true if geometry was set, $false otherwise]]
  }
  keys {
 screen_coords: bool; [[If true x and y values will be relative to
screen origin, otherwise relative to 
canvas]]
  }
  values {
-x: int;
-y: int;
-w: int;
-h: int;
+x: int; [[X coordinate]]
+y: int; [[Y coordinate]]
+w: int; [[Width]]
+h: int; [[Height]]
  }
   }
   @property position @protected {
  [[Position of accessible widget.]]
  set {
-return: bool;
+return: bool; [[$true if position was set, $false otherwise]]
  }
  get {
  }
@@ -71,18 +71,18 @@ mixin Elm.Interface.Atspi_Component ()
screen origin, otherwise relative to 
canvas]]
  }
  values {
-x: int;
-y: int;
+x: int; [[X coordinate]]
+y: int; [[Y coordinate]]
  }
   }
   contains @protected {
  params {
 screen_coords: bool; [[If true x and y values will be relative to
screen origin, otherwise relative to 
canvas]]
-@in x: int;
-@in y: int;
+@in x: int; [[X coordinate]]
+@in y: int; [[Y coordinate]]
  }
- return: bool;
+ return: bool; [[$true if params have been set, $false otherwise]]
   }
   focus_grab @protected {
  [[Focuses accessible widget.]]
@@ -95,10 +95,10 @@ mixin Elm.Interface.Atspi_Component ()
  params {
 screen_coords: bool; [[If $true x and y values will be relative to
screen origin, otherwise relative to 
canvas]]
-@in x: int;
-@in y: int;
+@in x: int; [[X coordinate]]
+@in y: int; [[Y coordinate]]
  }
- return: Efl.Object;
+ return: Efl.Object; [[Top component object at given coordinate]]
   }
}
 }

-- 




[EGIT] [core/efl] master 03/10: docs: atspi: add missing method docs for atspi accessible interface

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 0c082b3f7197bcb9ee7a3d7bce97d85efb0cb943
Author: Stefan Schmidt 
Date:   Fri Oct 21 16:15:12 2016 +0200

docs: atspi: add missing method docs for atspi accessible interface
---
 .../elementary/elm_interface_atspi_accessible.eo   | 37 ++
 1 file changed, 17 insertions(+), 20 deletions(-)

diff --git a/src/lib/elementary/elm_interface_atspi_accessible.eo 
b/src/lib/elementary/elm_interface_atspi_accessible.eo
index 16850ba..1bafd34 100644
--- a/src/lib/elementary/elm_interface_atspi_accessible.eo
+++ b/src/lib/elementary/elm_interface_atspi_accessible.eo
@@ -256,7 +256,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  set {
  }
  values {
-name: char*; [[Obj name]]
+name: char*; [[Object name]]
  }
   }
   @property relation_set @protected {
@@ -264,7 +264,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  get {
  }
  values {
-relations: Elm.Atspi.Relation_Set;
+relations: Elm.Atspi.Relation_Set; [[Widget relation set]]
  }
   }
   @property role {
@@ -274,7 +274,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  set {
  }
  values {
-role: Elm.Atspi.Role;
+role: Elm.Atspi.Role; [[Widget role]]
  }
   }
   @property children @protected {
@@ -282,7 +282,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  get {
  }
  values {
-children: free(own(list), 
eina_list_free);
+children: free(own(list), 
eina_list_free); [[List of widget's children]]
  }
   }
   @property role_name @protected {
@@ -290,7 +290,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  get {
  }
  values {
-role_name: string;
+role_name: string; [[Widget role name]]
  }
   }
   @property attributes @protected {
@@ -298,7 +298,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  get {
  }
  values {
-attributes: free(own(list), 
elm_atspi_attributes_list_free);
+attributes: free(own(list), 
elm_atspi_attributes_list_free); [[List of widget attributes]]
  }
   }
   @property index_in_parent @protected {
@@ -306,7 +306,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  get {
  }
  values {
-idx: int;
+idx: int; [[Index in children list]]
  }
   }
   @property description {
@@ -326,7 +326,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  set {
  }
  values {
-parent: Elm.Interface.Atspi_Accessible;
+parent: Elm.Interface.Atspi_Accessible; [[Widget parent]]
  }
   }
   @property state_set @protected {
@@ -334,7 +334,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  get {
  }
  values {
-states: Elm.Atspi.State_Set;
+states: Elm.Atspi.State_Set; [[Widget states]]
  }
   }
   event_handler_add @class @protected {
@@ -387,7 +387,7 @@ mixin Elm.Interface.Atspi_Accessible ()
set {
}
values {
-   type: Elm.Atspi.Type;
+   type: Elm.Atspi.Type; [[Object type]]
}
   }
   relationship_append {
@@ -402,14 +402,11 @@ mixin Elm.Interface.Atspi_Accessible ()
Relationship_append API is asymmetric, which means that
appending, for example, relation ELM_ATSPI_RELATION_FLOWS_TO from 
object A to B,
do NOT append relation ELM_ATSPI_RELATION_FLOWS_FROM from object B 
to
-   object A.
-
-   return: EINA_TRUE is relationship was successfully appended, 
EINA_FALSE
-   otherwise]]
- return: bool;
+   object A.]]
+ return: bool; [[EINA_TRUE is relationship was successfully appended, 
EINA_FALSE otherwise]]
  params {
-@in type: Elm.Atspi.Relation_Type;
-@in relation_object: const(Elm.Interface.Atspi_Accessible);
+@in type: Elm.Atspi.Relation_Type; [[Relation type]]
+@in relation_object: const(Elm.Interface.Atspi_Accessible); 
[[Object to relate to]]
  }
   }
   relationship_remove {
@@ -419,8 +416,8 @@ mixin Elm.Interface.Atspi_Accessible ()
   of given type.
  ]]
  params {
-@in type: Elm.Atspi.Relation_Type;
-@in relation_object: const(Elm.Interface.Atspi_Accessible);
+@in type: Elm.Atspi.Relation_Type; [[Relation type]]
+@in relation_object: const(Elm.Interface.Atspi_Accessible); 
[[Object to remove relation from]]
  }
   }
   relationships_clear {
@@ -430,7 +427,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  get {
 [[Get root object of 

[EGIT] [core/efl] master 07/10: docs: atspi: add missing docs to atspi value interface

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 3dc5dae68569fb1892649b5efc91d7b146b07ad9
Author: Stefan Schmidt 
Date:   Fri Oct 21 17:45:32 2016 +0200

docs: atspi: add missing docs to atspi value interface
---
 src/lib/elementary/elm_interface_atspi_value.eo | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/lib/elementary/elm_interface_atspi_value.eo 
b/src/lib/elementary/elm_interface_atspi_value.eo
index 86e5714..a3d30d0 100644
--- a/src/lib/elementary/elm_interface_atspi_value.eo
+++ b/src/lib/elementary/elm_interface_atspi_value.eo
@@ -7,7 +7,7 @@ interface Elm.Interface.Atspi.Value ()
 [[Gets value displayed by a accessible widget.]]
  }
  set {
-return: bool; [[true if setting widgets value has successed, false 
otherwise.]]
+return: bool; [[$true if setting widgets value has succeed, $false 
otherwise.]]
  }
  values {
 value: double; [[Value of widget casted to floating point number.]]
@@ -19,9 +19,9 @@ interface Elm.Interface.Atspi.Value ()
 [[Gets a range of all possible values and its description]]
  }
  values {
-lower_limit: double;
-upper_limit: double;
-description: string;
+lower_limit: double; [[Lower limit of the range]]
+upper_limit: double; [[Upper limit of the range]]
+description: string; [[Description of the range]]
  }
   }
   @property increment @protected {
@@ -29,7 +29,7 @@ interface Elm.Interface.Atspi.Value ()
 [[Gets an minimal incrementation value]]
  }
  values {
-increment: double;
+increment: double; [[Minimal incrementation value]]
  }
   }
}

-- 




[EGIT] [core/efl] master 05/10: docs: atspi: add missing docs for atspi image interface

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit c75fd90ec94d3a7f8d49d29593fdf51555d74d79
Author: Stefan Schmidt 
Date:   Fri Oct 21 17:31:32 2016 +0200

docs: atspi: add missing docs for atspi image interface
---
 src/lib/elementary/elm_interface_atspi_image.eo | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/lib/elementary/elm_interface_atspi_image.eo 
b/src/lib/elementary/elm_interface_atspi_image.eo
index d0e9f2f..b19f032 100644
--- a/src/lib/elementary/elm_interface_atspi_image.eo
+++ b/src/lib/elementary/elm_interface_atspi_image.eo
@@ -9,13 +9,13 @@ mixin Elm.Interface.Atspi_Image ()
  get @virtual_pure {
  }
  keys {
-screen_coords: bool;
+screen_coords: bool; [[$true if we got the screen coordinates, 
$false otherwise]] 
  }
  values {
-x: int;
-y: int;
-width: int;
-height: int;
+x: int; [[X coordinate]]
+y: int; [[Y coordinate]]
+width: int; [[Image width]]
+height: int; [[Image height]]
  }
   }
   @property description @protected {

-- 




[EGIT] [core/efl] master 08/10: docs: atspi: add missing docs for enums and structs in atspi text interface

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit a4deea012e31931548720ed657c759630b49d9b7
Author: Stefan Schmidt 
Date:   Fri Oct 21 18:13:58 2016 +0200

docs: atspi: add missing docs for enums and structs in atspi text interface
---
 src/lib/elementary/elm_interface_atspi_text.eo | 41 +++---
 1 file changed, 23 insertions(+), 18 deletions(-)

diff --git a/src/lib/elementary/elm_interface_atspi_text.eo 
b/src/lib/elementary/elm_interface_atspi_text.eo
index 313ab60..cd8550f 100644
--- a/src/lib/elementary/elm_interface_atspi_text.eo
+++ b/src/lib/elementary/elm_interface_atspi_text.eo
@@ -2,41 +2,46 @@ import eina_types;
 
 enum Elm.Atspi_Text.Granularity
 {
-   char,
-   word,
-   sentence,
-   line,
-   paragraph
+   [[Text accessibility granularity]]
+   char, [[Character granularity]]
+   word, [[Word granularity]]
+   sentence, [[Sentence granularity]]
+   line, [[Line granularity]]
+   paragraph [[Paragraph granularity]]
 }
 
 enum Elm.Atspi_Text.Clip_Type
 {
+   [[Text clip type]]
legacy: elm_atspi_text_clip;
-   none,
-   min,
-   max,
-   both
+   none, [[No clip type]]
+   min, [[Minimum clip type]]
+   max, [[Maximum clip type]]
+   both [[Both clip types]]
 }
 
 struct Elm.Atspi_Text.Attribute
 {
-   name:  string;
-   value: string;
+   [[Text attribute]]
+   name:  string; [[Text attribute name]]
+   value: string; [[Text attribute value]]
 }
 
 struct Elm.Atspi_Text.Range
 {
-   start_offset: int;
-   end_offset : int;
-   content: char *;
+   [[Text range]]
+   start_offset: int; [[Range start offset]]
+   end_offset : int; [[Range end offset]]
+   content: char *; [[Range content]]
 }
 
 struct Elm.Atspi_Text.Change_Info
 {
-   content: string;
-   inserted: bool;
-   pos: size;
-   len: size;
+   [[Text change information]]
+   content: string; [[Change content]]
+   inserted: bool; [[$true if text got inserted]]
+   pos: size; [[Change position]]
+   len: size; [[Change length]]
 }
 
 interface Elm.Interface.Atspi.Text ()

-- 




[EGIT] [core/efl] master 06/10: docs: atspi: add missing docs for atspi selection interface

2016-10-21 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit e8c197763ff63be0e2c22e64dea9a48c4cfea29b
Author: Stefan Schmidt 
Date:   Fri Oct 21 17:32:00 2016 +0200

docs: atspi: add missing docs for atspi selection interface
---
 .../elementary/elm_interface_atspi_selection.eo| 26 +++---
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/lib/elementary/elm_interface_atspi_selection.eo 
b/src/lib/elementary/elm_interface_atspi_selection.eo
index d4f0d41..13a7a9c 100644
--- a/src/lib/elementary/elm_interface_atspi_selection.eo
+++ b/src/lib/elementary/elm_interface_atspi_selection.eo
@@ -5,53 +5,53 @@ interface Elm.Interface.Atspi.Selection ()
   @property selected_children_count @protected {
  get {
 [[Gets the number of currently selected children]]
-return: int;
+return: int; [[Number of currently selected children]]
  }
   }
   @property selected_child @protected {
  [[Gets child for given child index]]
  get {
-return: Efl.Object;
+return: Efl.Object; [[Child object]]
  }
  keys {
-selected_child_index: int; [[index of selected child]]
+selected_child_index: int; [[Index of child]]
  }
   }
   child_select @protected {
  [[Adds selection for given child index]]
  params {
-@in child_index: int;
+@in child_index: int; [[Index of child]]
  }
- return: bool;
+ return: bool; [[$true if selection was added, $false otherwise]]
   }
   selected_child_deselect @protected {
  [[Removes selection for given child index]]
  params {
-@in child_index: int;
+@in child_index: int; [[Index of child]]
  }
- return: bool;
+ return: bool; [[$true if selection was removed, $false otherwise]]
   }
   is_child_selected @protected {
  [[Determines if child specified by index is selected]]
  params {
-@in child_index: int;
+@in child_index: int; [[Index of child]]
  }
- return: bool;
+ return: bool; [[$true if child is selected, $false otherwise]]
   }
   all_children_select @protected {
  [[Adds selection for all children]]
- return: bool;
+ return: bool; [[$true if selection was added to all children, $false 
otherwise]]
   }
   clear @protected {
  [[Clears the current selection]]
- return: bool;
+ return: bool; [[$true if selection was cleared, $false otherwise]]
   }
   child_deselect @protected {
  [[Removes selection for given child index]]
  params {
-@in child_index: int;
+@in child_index: int; [[Index of child]]
  }
- return: bool;
+ return: bool; [[$true if selection was removed, $false otherwise]]
   }
}
events {

-- 




Re: [E-devel] Repos sending mails to git@lists

2016-10-21 Thread Bruno Dilly
On Fri, Oct 21, 2016 at 7:17 AM, Tom Hacohen  wrote:

> On 20/10/16 20:50, Bruno Dilly wrote:
> > Hey guys,
> >
> > I realized apparently changes on apps/eruler are not sent to our git
> mails
> > list.
> >
> > How is it managed? Do we have a list of repos with hooks to send emails
> to
> > such list? Could you guys please add eruler to this list?
> >
> > Thanks in advance
> >
>
> All repos send mails unless the commits are already available on the
> server (for example, the commits are in a branch).
>
>

Oh, I see.
I wasn't aware about this detail.
That explains why I've been missing some emails  =)

Thanks, Tom



> --
> Tom.
>
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>



-- 
Bruno Dilly
ProFUSION embedded systems
http://profusion.mobi
--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] EFL cross compilation for Windows

2016-10-21 Thread Vincent Torri
i talk with author of win-builds almost every day...

On Fri, Oct 21, 2016 at 4:44 PM, Andrii Kroitor  wrote:
> Yes, this allows to compile working binaries for Windows from Linux system.
> At least after this patch will be merged:
> https://phab.enlightenment.org/D4357
>
> I have not tried to build python efl yet, but I can check it next week.
>
> It is possible to prepare precompiled packages, but I'm not familiar
> with package maintenance and distribution.
> So I have a few question about this:
> What should be included into package?
> - binaries (for sure)
> - includes and other installed files?
> - some meta info about package?
> - all dependencies or only their list?
> Where can they be hosted? Win-builds are inactive for a long time, so I
> doubt that we can reach their maintainer.
> Should these packages be updated and uploaded manually?
> It would be perfect if someone has working build server able to build
> EFL on Linux so we could add Windows build to it.
>
>
> On 21.10.16 17:01, Jeff Hoogland wrote:
>> Are you successfully building EFL under windows with this? If so any plans
>> to build some precompiled packages for folks? Would love to be able to
>> easily install python efl on windows.
>>
>> On Wed, Oct 19, 2016 at 10:02 AM, Andrii Kroitor 
>> wrote:
>>
>>> Hello
>>>
>>> I would like to share with community my small project, that makes cross
>>> compilation of EFL under Linux for Windows easier.
>>> Here it is: https://git.enlightenment.org/devs/lorddrew/efl-cross-build.
>>> git
>>> Cross compilation is much faster than build under msys. So I hope that
>>> it will save a lot of time for you :)
>>>
>>> --
>>> *Best Regards,
>>> Andrii Kroitor*
>>>
>>> 
>>> --
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
>>> ___
>>> enlightenment-devel mailing list
>>> enlightenment-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>>
>>
>
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/03: efl_net_server_fd: allows custom socket 'read' event handling.

2016-10-21 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit f57316655cf5bc7de0e8278bc48e252296d485ee
Author: Gustavo Sverzut Barbieri 
Date:   Fri Oct 21 09:24:50 2016 -0200

efl_net_server_fd: allows custom socket 'read' event handling.

This allows UDP to reimplement it using recvfrom() instead of
accept().
---
 src/lib/ecore_con/efl_net_server_fd.c  | 75 +-
 src/lib/ecore_con/efl_net_server_fd.eo | 15 +++
 2 files changed, 53 insertions(+), 37 deletions(-)

diff --git a/src/lib/ecore_con/efl_net_server_fd.c 
b/src/lib/ecore_con/efl_net_server_fd.c
index c3e9ee2..a6383f6 100644
--- a/src/lib/ecore_con/efl_net_server_fd.c
+++ b/src/lib/ecore_con/efl_net_server_fd.c
@@ -61,43 +61,7 @@ efl_net_accept4(int fd, struct sockaddr *addr, socklen_t 
*addrlen, Eina_Bool clo
 static void
 _efl_net_server_fd_event_read(void *data EINA_UNUSED, const Efl_Event *event)
 {
-   Eo *o = event->object;
-   unsigned int count, limit;
-   Eina_Bool reject_excess, do_reject = EINA_FALSE;
-   struct sockaddr_storage addr;
-   int client, fd;
-   socklen_t addrlen;
-
-   count = efl_net_server_clients_count_get(o);
-   efl_net_server_clients_limit_get(o, &limit, &reject_excess);
-
-   if ((limit > 0) && (count >= limit))
- {
-if (!reject_excess)
-  {
- // TODO: disconnect 'read' so stops calling?
- return;
-  }
-do_reject = EINA_TRUE;
- }
-
-   fd = efl_loop_fd_get(o);
-
-   addrlen = sizeof(addr);
-   client = efl_net_accept4(fd, (struct sockaddr *)&addr, &addrlen,
-efl_net_server_fd_close_on_exec_get(o));
-   if (client < 0)
- {
-Eina_Error err = errno;
-ERR("accept(%d): %s", fd, strerror(errno));
-efl_event_callback_call(o, EFL_NET_SERVER_EVENT_ERROR, &err);
-return;
- }
-
-   if (do_reject)
- efl_net_server_fd_client_reject(o, client);
-   else
- efl_net_server_fd_client_add(o, client);
+   efl_net_server_fd_process_incoming_data(event->object);
 }
 
 static void
@@ -389,4 +353,41 @@ _efl_net_server_fd_family_get(Eo *o EINA_UNUSED, 
Efl_Net_Server_Fd_Data *pd)
return pd->family;
 }
 
+EOLIAN static void
+_efl_net_server_fd_process_incoming_data(Eo *o, Efl_Net_Server_Fd_Data *pd)
+{
+   Eina_Bool do_reject = EINA_FALSE;
+   struct sockaddr_storage addr;
+   int client, fd;
+   socklen_t addrlen;
+
+   if ((pd->clients_limit > 0) && (pd->clients_count >= pd->clients_limit))
+ {
+if (!pd->clients_reject_excess)
+  {
+ // TODO: disconnect 'read' so stops calling?
+ return;
+  }
+do_reject = EINA_TRUE;
+ }
+
+   fd = efl_loop_fd_get(o);
+
+   addrlen = sizeof(addr);
+   client = efl_net_accept4(fd, (struct sockaddr *)&addr, &addrlen,
+efl_net_server_fd_close_on_exec_get(o));
+   if (client < 0)
+ {
+Eina_Error err = errno;
+ERR("accept(%d): %s", fd, strerror(errno));
+efl_event_callback_call(o, EFL_NET_SERVER_EVENT_ERROR, &err);
+return;
+ }
+
+   if (do_reject)
+ efl_net_server_fd_client_reject(o, client);
+   else
+ efl_net_server_fd_client_add(o, client);
+}
+
 #include "efl_net_server_fd.eo.c"
diff --git a/src/lib/ecore_con/efl_net_server_fd.eo 
b/src/lib/ecore_con/efl_net_server_fd.eo
index 7b082e6..df86c54 100644
--- a/src/lib/ecore_con/efl_net_server_fd.eo
+++ b/src/lib/ecore_con/efl_net_server_fd.eo
@@ -59,6 +59,21 @@ class Efl.Net.Server.Fd (Efl.Loop.Fd, Efl.Net.Server) {
 }
 }
 
+process_incoming_data @protected {
+[[When the socket has data to be read, process it.
+
+  By default this method will call accept() and then
+  decide if @.client_add or @.client_reject must be
+  executed, however it may be replaced with something
+  else, such as in SOCK_DGRAM (UDP) there is no accept(),
+  only recvfrom().
+
+  It is called straight from @Efl.Loop.Fd "read" event
+  handler and is provided as a method to allow easy
+  extending of the class for various purposes.
+]]
+}
+
 client_add @protected @virtual_pure {
 [[Accept a new client, should emit "client,add".
 

-- 




[EGIT] [core/efl] master 03/03: efl_net_server_udp: initial UDP server.

2016-10-21 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 7493368e5412002c4eca3bf651b21e01234da0f9
Author: Gustavo Sverzut Barbieri 
Date:   Fri Oct 21 13:24:02 2016 -0200

efl_net_server_udp: initial UDP server.

This is the initial UDP server that works similarly to the TCP one,
however under the hood it's widely different since the socket is
reused for all "clients", thus needs a new Efl.Net.Server.Udp.Client
(Efl.Net.Socket) as Efl.Net.Socket.Udp exposes the fd and options such
as 'cork', which would interfere in other clients.

The main socket will read the packets and find an existing client to
feed it. If no client exists, then it will create one if not overr
limit. Since there is no kernel-queuing as done by listen()/accept(),
the 'no reject' case will just accept the client anyway.

Next commits will improve UDP server handling with some advanced
features:

 - join multicast groups
 - bind to a specific interface (SO_BINDTODEVICE)
 - block packets going out of local network (SO_DONTROUTE)
 - specify priorities (SO_PRIORITY)
---
 src/Makefile_Ecore_Con.am  |   6 +-
 src/examples/ecore/efl_net_server_example.c|   4 +
 src/lib/ecore_con/Ecore_Con_Eo.h   |   2 +
 src/lib/ecore_con/ecore_con_private.h  |   3 +
 src/lib/ecore_con/efl_net_server_udp.c | 357 +
 src/lib/ecore_con/efl_net_server_udp.eo|  42 +++
 src/lib/ecore_con/efl_net_server_udp_client.c  | 291 
 src/lib/ecore_con/efl_net_server_udp_client.eo |  30 +++
 src/lib/ecore_con/efl_net_socket_udp.eo|   6 +-
 9 files changed, 739 insertions(+), 2 deletions(-)

diff --git a/src/Makefile_Ecore_Con.am b/src/Makefile_Ecore_Con.am
index e5a5cd0..58a73ae 100644
--- a/src/Makefile_Ecore_Con.am
+++ b/src/Makefile_Ecore_Con.am
@@ -18,6 +18,8 @@ ecore_con_eolian_files = \
 lib/ecore_con/efl_net_server.eo \
 lib/ecore_con/efl_net_server_fd.eo \
 lib/ecore_con/efl_net_server_tcp.eo \
+lib/ecore_con/efl_net_server_udp.eo \
+lib/ecore_con/efl_net_server_udp_client.eo \
lib/ecore_con/ecore_con_eet_base.eo \
lib/ecore_con/ecore_con_eet_server_obj.eo \
lib/ecore_con/ecore_con_eet_client_obj.eo \
@@ -83,7 +85,9 @@ lib/ecore_con/efl_net_dialer_http.c \
 lib/ecore_con/efl_net_dialer_websocket.c \
 lib/ecore_con/efl_net_server.c \
 lib/ecore_con/efl_net_server_fd.c \
-lib/ecore_con/efl_net_server_tcp.c
+lib/ecore_con/efl_net_server_tcp.c \
+lib/ecore_con/efl_net_server_udp.c \
+lib/ecore_con/efl_net_server_udp_client.c
 
 EXTRA_DIST2 += lib/ecore_con/ecore_con_legacy.c
 
diff --git a/src/examples/ecore/efl_net_server_example.c 
b/src/examples/ecore/efl_net_server_example.c
index 30c21aa..d5980c1 100644
--- a/src/examples/ecore/efl_net_server_example.c
+++ b/src/examples/ecore/efl_net_server_example.c
@@ -408,6 +408,7 @@ EFL_CALLBACKS_ARRAY_DEFINE(server_cbs,
 
 static const char * protocols[] = {
   "tcp",
+  "udp",
   NULL
 };
 
@@ -501,6 +502,7 @@ main(int argc, char **argv)
  }
 
if (strcmp(protocol, "tcp") == 0) cls = EFL_NET_SERVER_TCP_CLASS;
+   else if (strcmp(protocol, "udp") == 0) cls = EFL_NET_SERVER_UDP_CLASS;
else
  {
 fprintf(stderr, "ERROR: unsupported protocol: %s\n", protocol);
@@ -524,6 +526,8 @@ main(int argc, char **argv)
 
if (cls == EFL_NET_SERVER_TCP_CLASS)
  efl_net_server_tcp_ipv6_only_set(server, ipv6_only);
+   else if (cls == EFL_NET_SERVER_UDP_CLASS)
+ efl_net_server_udp_ipv6_only_set(server, ipv6_only);
 
/* an explicit call to efl_net_server_serve() after the object is
 * constructed allows for more complex setup, such as interacting
diff --git a/src/lib/ecore_con/Ecore_Con_Eo.h b/src/lib/ecore_con/Ecore_Con_Eo.h
index 00245f2..f8198f6 100644
--- a/src/lib/ecore_con/Ecore_Con_Eo.h
+++ b/src/lib/ecore_con/Ecore_Con_Eo.h
@@ -17,6 +17,8 @@
 
 #include "efl_net_socket_udp.eo.h"
 #include "efl_net_dialer_udp.eo.h"
+#include "efl_net_server_udp.eo.h"
+#include "efl_net_server_udp_client.eo.h"
 
 #include "efl_net_http_types.eot.h"
 
diff --git a/src/lib/ecore_con/ecore_con_private.h 
b/src/lib/ecore_con/ecore_con_private.h
index 2f98dd9..e11621f 100644
--- a/src/lib/ecore_con/ecore_con_private.h
+++ b/src/lib/ecore_con/ecore_con_private.h
@@ -380,6 +380,9 @@ void ecore_con_mempool_shutdown(void);
 
 #undef GENERIC_ALLOC_FREE_HEADER
 
+void _efl_net_server_udp_init(Eo *client, int fd, const struct sockaddr *addr, 
socklen_t addrlen, const char *str);
+void _efl_net_server_udp_client_feed(Eo *client, Eina_Rw_Slice slice);
+
 Eina_Bool efl_net_ip_port_fmt(char *buf, int buflen, const struct sockaddr 
*addr);
 
 /**
diff --git a/src/lib/ecore_con/efl_net_server_udp.c 
b/src/lib/ecore_con/efl_net_server_udp.c
new file mode 100644
index 000..bc324bc
--- /dev/null

[EGIT] [core/efl] master 02/03: efl_net_dialer_udp_example: be more 'correct' using events to read/write.

2016-10-21 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 3cb15c17e01bd86220891b3ad4ea755f934e19d6
Author: Gustavo Sverzut Barbieri 
Date:   Fri Oct 21 09:53:17 2016 -0200

efl_net_dialer_udp_example: be more 'correct' using events to read/write.

instead of blindly reading and writing, which can lead to hangs due no
server, let's use can_read and can_write to do the operations, this
won't let us believe we can read when we can't.

it's also the recommended approach, so let's show that in the examples
so users don't copy&paste incorrect stuff :-)
---
 src/examples/ecore/efl_net_dialer_udp_example.c | 115 ++--
 1 file changed, 86 insertions(+), 29 deletions(-)

diff --git a/src/examples/ecore/efl_net_dialer_udp_example.c 
b/src/examples/ecore/efl_net_dialer_udp_example.c
index 4193cc1..6e113a9 100644
--- a/src/examples/ecore/efl_net_dialer_udp_example.c
+++ b/src/examples/ecore/efl_net_dialer_udp_example.c
@@ -7,61 +7,112 @@
 #include 
 
 static int retval = EXIT_SUCCESS;
-static Eina_Bool do_read = EINA_FALSE;
+static int needed_reads = 0;
 
 static void
 _connected(void *data EINA_UNUSED, const Efl_Event *event)
 {
+   fprintf(stderr, "INFO: connected %s\n",
+   efl_net_dialer_address_dial_get(event->object));
+}
+
+static void
+_can_read(void *data EINA_UNUSED, const Efl_Event *event)
+{
char buf[1024];
Eina_Rw_Slice rw_slice = {.mem = buf, .len = sizeof(buf)};
-   Eina_Slice slice = EINA_SLICE_STR_LITERAL("Hello World");
Eina_Error err;
+   Eina_Bool can_read = efl_io_reader_can_read_get(event->object);
 
-   fprintf(stderr, "INFO: connected %s\n",
-   efl_net_dialer_address_dial_get(event->object));
+   /* NOTE: this message may appear with can read=0 BEFORE
+* "read '...'" because efl_io_readr_read() will change the status
+* of can_read to FALSE prior to return so we can print it!
+*/
+   fprintf(stderr, "INFO: can read=%d (needed reads=%d)\n", can_read, 
needed_reads);
+   if (!can_read) return;
 
-   err = efl_io_writer_write(event->object, &slice, NULL);
+   if (!needed_reads) return;
+
+   err = efl_io_reader_read(event->object, &rw_slice);
if (err)
  {
-fprintf(stderr, "ERROR: could not write: %s\n", 
eina_error_msg_get(err));
+fprintf(stderr, "ERROR: could not read: %s\n", 
eina_error_msg_get(err));
 retval = EXIT_FAILURE;
 ecore_main_loop_quit();
 return;
  }
 
-   fprintf(stderr, "INFO: wrote " EINA_SLICE_STR_FMT "\n", 
EINA_SLICE_STR_PRINT(slice));
+   fprintf(stderr, "INFO: read '" EINA_SLICE_STR_FMT "'\n", 
EINA_SLICE_STR_PRINT(rw_slice));
 
-   slice = (Eina_Slice)EINA_SLICE_STR_LITERAL("Second Write");
-   err = efl_io_writer_write(event->object, &slice, NULL);
-   if (err)
+   needed_reads--;
+   if (!needed_reads)
  {
-fprintf(stderr, "ERROR: could not write: %s\n", 
eina_error_msg_get(err));
-retval = EXIT_FAILURE;
+retval = EXIT_SUCCESS;
 ecore_main_loop_quit();
-return;
  }
+}
 
-   fprintf(stderr, "INFO: wrote " EINA_SLICE_STR_FMT "\n", 
EINA_SLICE_STR_PRINT(slice));
-
-   /* if CORK was used, then say we're done to generate the single final 
datagram */
-   efl_net_socket_udp_cork_set(event->object, EINA_FALSE);
+static void
+_can_write(void *data EINA_UNUSED, const Efl_Event *event)
+{
+   static int needed_writes = 2;
+   Eina_Slice slice;
+   Eina_Error err;
+   Eina_Bool can_write = efl_io_writer_can_write_get(event->object);
 
-   if (!do_read) goto end;
+   /* NOTE: this message may appear with can write=0 BEFORE
+* "wrote '...'" because efl_io_writer_write() will change the status
+* of can_write to FALSE prior to return so we can print it!
+*/
+   fprintf(stderr, "INFO: can write=%d (needed writes=%d)\n", can_write, 
needed_writes);
+   if (!can_write) return;
 
-   err = efl_io_reader_read(event->object, &rw_slice);
-   if (err)
+   if (needed_writes == 2)
  {
-fprintf(stderr, "ERROR: could not read: %s\n", 
eina_error_msg_get(err));
-retval = EXIT_FAILURE;
-ecore_main_loop_quit();
+slice = (Eina_Slice)EINA_SLICE_STR_LITERAL("Hello World");
+
+err = efl_io_writer_write(event->object, &slice, NULL);
+if (err)
+  {
+ fprintf(stderr, "ERROR: could not write: %s\n", 
eina_error_msg_get(err));
+ retval = EXIT_FAILURE;
+ ecore_main_loop_quit();
+ return;
+  }
+
+fprintf(stderr, "INFO: wrote '" EINA_SLICE_STR_FMT "'\n", 
EINA_SLICE_STR_PRINT(slice));
+ }
+   else if (needed_writes == 1)
+ {
+slice = (Eina_Slice)EINA_SLICE_STR_LITERAL("Second Write");
+err = efl_io_writer_write(event->object, &slice, NULL);
+if (err)
+  {
+ fprintf(stderr, "ERROR: could not write: %s\n", 
eina_error_msg_get(err));
+ retval = 

[E-devel] Difference between selected_child_deselect and child_deselect on Elm.Interface.Atspi.Selection

2016-10-21 Thread Stefan Schmidt
Hello.

While adding some more docs to elm_interface_atspi_selection.eo I 
stumbled over these two methods and wondered where the difference is. 
Both take the child index as parameter and unselect the child.

Got this functionality somehow duplicated or do I miss something?

regards
Stefan Schmidt

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] EFL cross compilation for Windows

2016-10-21 Thread Andrii Kroitor
Yes, this allows to compile working binaries for Windows from Linux system.
At least after this patch will be merged: 
https://phab.enlightenment.org/D4357

I have not tried to build python efl yet, but I can check it next week.

It is possible to prepare precompiled packages, but I'm not familiar 
with package maintenance and distribution.
So I have a few question about this:
What should be included into package?
- binaries (for sure)
- includes and other installed files?
- some meta info about package?
- all dependencies or only their list?
Where can they be hosted? Win-builds are inactive for a long time, so I 
doubt that we can reach their maintainer.
Should these packages be updated and uploaded manually?
It would be perfect if someone has working build server able to build 
EFL on Linux so we could add Windows build to it.


On 21.10.16 17:01, Jeff Hoogland wrote:
> Are you successfully building EFL under windows with this? If so any plans
> to build some precompiled packages for folks? Would love to be able to
> easily install python efl on windows.
>
> On Wed, Oct 19, 2016 at 10:02 AM, Andrii Kroitor 
> wrote:
>
>> Hello
>>
>> I would like to share with community my small project, that makes cross
>> compilation of EFL under Linux for Windows easier.
>> Here it is: https://git.enlightenment.org/devs/lorddrew/efl-cross-build.
>> git
>> Cross compilation is much faster than build under msys. So I hope that
>> it will save a lot of time for you :)
>>
>> --
>> *Best Regards,
>> Andrii Kroitor*
>>
>> 
>> --
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 02/03: Eo: Fix references of objects

2016-10-21 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 25242e6af9b44ce0b31c66396ba1afbc75bb29a8
Author: Tom Hacohen 
Date:   Fri Oct 21 15:02:27 2016 +0100

Eo: Fix references of objects
---
 src/lib/eo/eo.c  |  8 ++--
 src/lib/eo/eo_base_class.c   | 22 +-
 src/lib/eo/eo_private.h  |  2 ++
 src/tests/eo/suite/eo_test_general.c |  4 ++--
 4 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 8ce82f3..ad8306d 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -850,9 +850,13 @@ _efl_add_end(Eo *eo_id, Eina_Bool is_ref, Eina_Bool 
is_fallback)
Eo *ret = efl_finalize(eo_id);
ret = _efl_add_internal_end(eo_id, ret);
 
-   if (is_ref && efl_parent_get(eo_id))
+   if (is_ref)
  {
-efl_ref(eo_id);
+if (efl_parent_get(eo_id))
+  {
+ efl_ref(eo_id);
+  }
+_efl_object_parent_sink(eo_id);
  }
 
if (is_fallback)
diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index f64ebca..bc85105 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -39,6 +39,7 @@ typedef struct
unsigned short event_freeze_count;
Eina_Bool  deletions_waiting : 1;
Eina_Bool  callback_stopped : 1;
+   Eina_Bool  parent_sunk : 1; // If parent ref has already 
been settled (parent has been set, or we are in add_ref mode
 } Efl_Object_Data;
 
 typedef enum {
@@ -533,9 +534,17 @@ _efl_object_del(const Eo *obj, Efl_Object_Data *pd 
EINA_UNUSED)
  }
 }
 
+void
+_efl_object_parent_sink(Eo *obj)
+{
+   Efl_Object_Data *pd = efl_data_scope_get(obj, EFL_OBJECT_CLASS);
+   pd->parent_sunk = EINA_TRUE;
+}
+
 EOLIAN static void
 _efl_object_parent_set(Eo *obj, Efl_Object_Data *pd, Eo *parent_id)
 {
+   Eo *prev_parent = pd->parent;
if ((pd->parent == parent_id) ||
((parent_id) && (!_eo_id_domain_compatible(parent_id, obj
  return;
@@ -552,10 +561,6 @@ _efl_object_parent_set(Eo *obj, Efl_Object_Data *pd, Eo 
*parent_id)
 // this error is highly unlikely so move it out of the normal
 // instruction path to avoid l1 cache pollution
 else goto err_impossible;
-
-/* Only unref if we don't have a new parent instead and we are not at
- * the process of deleting the object.*/
-if (!parent_id && !eo_obj->del_triggered) efl_unref(obj);
  }
 
/* Set new parent */
@@ -569,16 +574,23 @@ _efl_object_parent_set(Eo *obj, Efl_Object_Data *pd, Eo 
*parent_id)
  pd->parent = parent_id;
  parent_pd->children = eina_inlist_append(parent_pd->children,
   EINA_INLIST_GET(eo_obj));
+ if (!prev_parent && pd->parent_sunk) efl_ref(obj);
+ pd->parent_sunk = EINA_TRUE;
   }
 else
   {
  pd->parent = NULL;
+ if (prev_parent) efl_unref(obj);
  // unlikely this error happens, so move it out of execution path
  // to improve l1 cache efficiency
  goto err_parent;
   }
  }
-   else pd->parent = NULL;
+   else
+ {
+pd->parent = NULL;
+if (prev_parent && !eo_obj->del_triggered) efl_unref(obj);
+ }
 
EO_OBJ_DONE(obj);
return;
diff --git a/src/lib/eo/eo_private.h b/src/lib/eo/eo_private.h
index 54975ff..035d84c 100644
--- a/src/lib/eo/eo_private.h
+++ b/src/lib/eo/eo_private.h
@@ -196,6 +196,8 @@ typedef struct
int line;
 } Eo_Xref_Node;
 
+void _efl_object_parent_sink(Eo *obj);
+
 static inline
 Eo *_eo_header_id_get(const Eo_Header *header)
 {
diff --git a/src/tests/eo/suite/eo_test_general.c 
b/src/tests/eo/suite/eo_test_general.c
index 648f733..e142d67 100644
--- a/src/tests/eo/suite/eo_test_general.c
+++ b/src/tests/eo/suite/eo_test_general.c
@@ -611,8 +611,8 @@ START_TEST(efl_refs)
 
efl_parent_set(obj2, obj);
efl_parent_set(obj3, obj);
-   ck_assert_int_eq(efl_ref_get(obj2), 1);
-   ck_assert_int_eq(efl_ref_get(obj3), 1);
+   ck_assert_int_eq(efl_ref_get(obj2), 2);
+   ck_assert_int_eq(efl_ref_get(obj3), 2);
 
efl_del(obj);
efl_del(obj2);

-- 




[EGIT] [core/efl] master 01/03: Eo test: Fix cleanup of objects.

2016-10-21 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 6c8489c3b76ab1d5548e7786c9b7e6fcfddba581
Author: Tom Hacohen 
Date:   Fri Oct 21 15:18:46 2016 +0100

Eo test: Fix cleanup of objects.
---
 src/tests/eo/suite/eo_test_general.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/tests/eo/suite/eo_test_general.c 
b/src/tests/eo/suite/eo_test_general.c
index f0548d7..648f733 100644
--- a/src/tests/eo/suite/eo_test_general.c
+++ b/src/tests/eo/suite/eo_test_general.c
@@ -589,6 +589,11 @@ START_TEST(efl_refs)
ck_assert_int_eq(efl_ref_get(obj2), 1);
ck_assert_int_eq(efl_ref_get(obj3), 2);
 
+   efl_del(obj);
+   efl_del(obj2);
+   efl_unref(obj3);
+   efl_del(obj3);
+
/* Setting and removing parents. */
obj = efl_add(SIMPLE_CLASS, NULL);
obj2 = efl_ref(efl_add(SIMPLE_CLASS, obj));

-- 




[EGIT] [core/efl] master 03/03: Eo: Add test for refcount in efl_add_ref

2016-10-21 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 047d88caa00db9e9b31c88682703462d0d6fa201
Author: Tom Hacohen 
Date:   Fri Oct 21 15:25:52 2016 +0100

Eo: Add test for refcount in efl_add_ref

This commits adds a regression test to the previous commit.
---
 src/tests/eo/suite/eo_test_general.c | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/src/tests/eo/suite/eo_test_general.c 
b/src/tests/eo/suite/eo_test_general.c
index e142d67..bb34b7d 100644
--- a/src/tests/eo/suite/eo_test_general.c
+++ b/src/tests/eo/suite/eo_test_general.c
@@ -618,6 +618,33 @@ START_TEST(efl_refs)
efl_del(obj2);
efl_del(obj3);
 
+   /* Setting and removing parents for add_ref */
+   obj = efl_add(SIMPLE_CLASS, NULL);
+   obj2 = efl_add_ref(SIMPLE_CLASS, obj);
+   obj3 = efl_add_ref(SIMPLE_CLASS, NULL);
+
+   ck_assert_int_eq(efl_ref_get(obj2), 2);
+   ck_assert_int_eq(efl_ref_get(obj3), 1);
+
+   efl_parent_set(obj2, obj3);
+   efl_parent_set(obj3, obj);
+   ck_assert_int_eq(efl_ref_get(obj2), 2);
+   ck_assert_int_eq(efl_ref_get(obj3), 2);
+
+   efl_parent_set(obj2, NULL);
+   efl_parent_set(obj3, NULL);
+   ck_assert_int_eq(efl_ref_get(obj2), 1);
+   ck_assert_int_eq(efl_ref_get(obj3), 1);
+
+   efl_parent_set(obj2, obj);
+   efl_parent_set(obj3, obj);
+   ck_assert_int_eq(efl_ref_get(obj2), 2);
+   ck_assert_int_eq(efl_ref_get(obj3), 2);
+
+   efl_del(obj);
+   efl_del(obj2);
+   efl_del(obj3);
+
/* Just check it doesn't seg atm. */
obj = efl_add(SIMPLE_CLASS, NULL);
efl_ref(obj);

-- 




[EGIT] [core/enlightenment] master 02/02: trigger zone geometry events when updating zone/desk obstacles

2016-10-21 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 21422fd256919ae6bb67f2a91798483f09739d39
Author: Mike Blumenkrantz 
Date:   Fri Oct 21 10:02:24 2016 -0400

trigger zone geometry events when updating zone/desk obstacles
---
 src/bin/e_zone.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c
index f76b5a4..3d530ec 100644
--- a/src/bin/e_zone.c
+++ b/src/bin/e_zone.c
@@ -1371,12 +1371,12 @@ e_zone_obstacle_add(E_Zone *zone, E_Desk *desk, 
Eina_Rectangle *geom, Eina_Bool
  {
 desk->obstacles = eina_inlist_append(desk->obstacles, 
EINA_INLIST_GET(obs));
 if (desk->visible)
-  desk->zone->useful_geometry_dirty = 1;
+  e_zone_useful_geometry_dirty(desk->zone);
  }
else
  {
 zone->obstacles = eina_inlist_append(zone->obstacles, 
EINA_INLIST_GET(obs));
-zone->useful_geometry_dirty = 1;
+e_zone_useful_geometry_dirty(zone);
  }
return obs;
 }
@@ -1400,12 +1400,12 @@ e_zone_obstacle_modify(E_Zone_Obstacle *obs, 
Eina_Rectangle *geom, Eina_Bool ver
  {
 desk = (E_Desk*)obs->owner;
 if (desk->visible)
-  desk->zone->useful_geometry_dirty = 1;
+  e_zone_useful_geometry_dirty(desk->zone);
  }
else
  {
 zone = (E_Zone*)obs->owner;
-zone->useful_geometry_dirty = 1;
+e_zone_useful_geometry_dirty(zone);
  }
 }
 
@@ -1699,13 +1699,13 @@ _e_zone_obstacle_free(E_Zone_Obstacle *obs)
 desk = (E_Desk*)obs->owner;
 desk->obstacles = eina_inlist_remove(desk->obstacles, 
EINA_INLIST_GET(obs));
 if (desk->visible)
-  desk->zone->useful_geometry_dirty = 1;
+  e_zone_useful_geometry_dirty(desk->zone);
  }
else
  {
 zone = (E_Zone*)obs->owner;
 zone->obstacles = eina_inlist_remove(zone->obstacles, 
EINA_INLIST_GET(obs));
-zone->useful_geometry_dirty = 1;
+e_zone_useful_geometry_dirty(zone);
  }
free(obs);
 }

-- 




[EGIT] [core/enlightenment] master 01/02: reject successive zone_geometry_dirty() calls

2016-10-21 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 3e186b150977573c3c9c182b93652ae0358dc983
Author: Mike Blumenkrantz 
Date:   Fri Oct 21 10:01:50 2016 -0400

reject successive zone_geometry_dirty() calls

no point in thrashing the compositor if events are already pending
---
 src/bin/e_zone.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c
index b3c6660..f76b5a4 100644
--- a/src/bin/e_zone.c
+++ b/src/bin/e_zone.c
@@ -1334,6 +1334,9 @@ e_zone_useful_geometry_dirty(E_Zone *zone)
E_OBJECT_CHECK(zone);
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
 
+   /* ignore if pending event already exists */
+   if (zone->useful_geometry_dirty) return;
+
ev = E_NEW(E_Event_Zone_Move_Resize, 1);
ev->zone = zone;
e_object_ref(E_OBJECT(ev->zone));

-- 




Re: [E-devel] EFL cross compilation for Windows

2016-10-21 Thread Jeff Hoogland
Are you successfully building EFL under windows with this? If so any plans
to build some precompiled packages for folks? Would love to be able to
easily install python efl on windows.

On Wed, Oct 19, 2016 at 10:02 AM, Andrii Kroitor 
wrote:

> Hello
>
> I would like to share with community my small project, that makes cross
> compilation of EFL under Linux for Windows easier.
> Here it is: https://git.enlightenment.org/devs/lorddrew/efl-cross-build.
> git
> Cross compilation is much faster than build under msys. So I hope that
> it will save a lot of time for you :)
>
> --
> *Best Regards,
> Andrii Kroitor*
>
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>



-- 
~Jeff Hoogland 
My Projects on GitHub 
--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: docs: support for documenting variables

2016-10-21 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 6ecd3c040d13fc9ea65045c3cfc4802e070b1834
Author: Daniel Kolesa 
Date:   Fri Oct 21 16:00:45 2016 +0200

docs: support for documenting variables
---
 src/scripts/elua/apps/docgen/doctree.lua | 72 +++-
 src/scripts/elua/apps/gendoc.lua | 12 +-
 2 files changed, 82 insertions(+), 2 deletions(-)

diff --git a/src/scripts/elua/apps/docgen/doctree.lua 
b/src/scripts/elua/apps/docgen/doctree.lua
index c8996c2..699cb1c 100644
--- a/src/scripts/elua/apps/docgen/doctree.lua
+++ b/src/scripts/elua/apps/docgen/doctree.lua
@@ -1118,7 +1118,11 @@ M.Variable = Node:clone {
 end,
 
 value_get = function(self)
-return self.variable:value_get()
+local v = self.variable:value_get()
+if not v then
+return nil
+end
+return M.Expression(v)
 end,
 
 name_get = function(self)
@@ -1141,6 +1145,68 @@ M.Variable = Node:clone {
 return M.Node.nspaces_get(self, self:type_str_get(), root)
 end,
 
+serialize = function(self)
+local buf = {}
+if self:type_get() == self.GLOBAL then
+buf[#buf + 1] = "var "
+else
+buf[#buf + 1] = "const "
+end
+if self:is_extern() then
+buf[#buf + 1] = "@extern "
+end
+buf[#buf + 1] = self:full_name_get()
+buf[#buf + 1] = ": "
+buf[#buf + 1] = self:base_type_get():serialize()
+local val = self:value_get()
+if val then
+buf[#buf + 1] = " = "
+buf[#buf + 1] = val:serialize()
+end
+buf[#buf + 1] = ";"
+return table.concat(buf)
+end,
+
+serialize_c = function(self, ns)
+local buf = {}
+local bt = self:base_type_get()
+local fulln = self:full_name_get():gsub("%.", "_"):upper()
+keyref.add(fulln, ns, "c")
+if self:type_get() == self.GLOBAL then
+local ts = bt:c_type_get()
+buf[#buf + 1] = ts
+if ts:sub(#ts) ~= "*" then
+buf[#buf + 1] = " "
+end
+buf[#buf + 1] = fulln
+local val = self:value_get()
+if val then
+buf[#buf + 1] = " = "
+local vt = val:eval_type(bt)
+local lv = vt:to_literal()
+local sv = val:serialize()
+buf[#buf + 1] = lv
+if lv ~= sv then
+buf[#buf + 1] = "/* " .. sv .. " */"
+end
+end
+buf[#buf + 1] = ";"
+else
+buf[#buf + 1] = "#define "
+buf[#buf + 1] = fulln
+buf[#buf + 1] = " "
+local val = self:value_get()
+local vt = val:eval_type(bt)
+local lv = vt:to_literal()
+local sv = val:serialize()
+buf[#buf + 1] = lv
+if lv ~= sv then
+buf[#buf + 1] = "/* " .. sv .. " */"
+end
+end
+return table.concat(buf)
+end,
+
 -- static getters
 
 all_globals_get = function()
@@ -1202,6 +1268,10 @@ M.Expression = Node:clone {
 return self.expr:eval(eolian.expression_mask.INT)
 end,
 
+eval_type = function(self, tp)
+return self.expr:eval_type(tp.type)
+end,
+
 serialize = function(self)
 return self.expr:serialize()
 end
diff --git a/src/scripts/elua/apps/gendoc.lua b/src/scripts/elua/apps/gendoc.lua
index e882d03..dc1f726 100644
--- a/src/scripts/elua/apps/gendoc.lua
+++ b/src/scripts/elua/apps/gendoc.lua
@@ -840,13 +840,23 @@ local build_enum = function(tp)
 end
 
 local build_variable = function(v, constant)
-local f = writer.Writer(v:nspaces_get(), v:full_name_get())
+local ns = v:nspaces_get()
+local f = writer.Writer(ns, v:full_name_get())
 if constant then
 stats.check_constant(v)
 else
 stats.check_global(v)
 end
 
+write_tsigs(f, v, ns)
+
+f:write_h("Description", 2)
+f:write_raw(v:doc_get():full_get(nil, true))
+f:write_nl(2)
+
+f:write_editable(ns, "description")
+f:write_nl()
+
 f:finish()
 end
 

-- 




[EGIT] [core/efl] master 01/01: Elm_theme: parse theme name ":/file.ext" only on Windows.

2016-10-21 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

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

commit 9266ce4bd5d1e824e4489cf0e34fbfa7e2e865bc
Author: Mykyta Biliavskyi 
Date:   Fri Oct 21 15:46:49 2016 +0300

Elm_theme: parse theme name ":/file.ext" only on Windows.

Commit 86928a430c broke ability to use more than one theme file for
posix compatible systems. For case
ELM_THEME=/home/user/a.edj:/home/user/b.edj string was parsed
incorrectly. The result was a single string
"/home/user/a.edj:/home/user/b.edj", but expected two strings
"/home/user/a.edj" and "/home/user/b.edj"

This commit add additional check of the file paths like
:/filename.ext or :\filename.ext in Windows only.
This avoid wrong parse behaviour on Linux and macOS.
---
 src/lib/elementary/elm_theme.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/elm_theme.c b/src/lib/elementary/elm_theme.c
index de5aea3..e292cbc 100644
--- a/src/lib/elementary/elm_theme.c
+++ b/src/lib/elementary/elm_theme.c
@@ -399,14 +399,17 @@ _elm_theme_parse(Elm_Theme *th, const char *theme)
   eina_strbuf_append_char(buf, ':');
   pe += 2;
}
- else if ((isalpha(pe[0]) && (pe[1] == ':') && pe[2] == '/'))
+#ifdef HAVE_ELEMENTARY_WIN32
+ else if (isalpha(pe[0]) && (pe[1] == ':') &&
+  ((pe[2] == '/') || (pe[2] == '\\')))
{
-  // Correct processing file path on  Windows OS ":/"
+  // Correct processing file path on  Windows OS ":/" or 
":\"
   eina_strbuf_append_char(buf, *pe);
   pe++;
   eina_strbuf_append_char(buf, *pe);
   pe++;
}
+#endif
  else if ((*pe == ':') || (!*pe))
{ // p -> pe == 'name:'
   if (pe > p)

-- 




[EGIT] [core/efl] master 01/01: elm test: correct elm_entry_autocapital_type_set() argument

2016-10-21 Thread Shuhrat Dehkanov
devilhorns pushed a commit to branch master.

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

commit c1df3a99cf629a85e7498ea075309488dae7f848
Author: Shuhrat Dehkanov 
Date:   Fri Oct 21 08:57:15 2016 -0400

elm test: correct elm_entry_autocapital_type_set() argument

Summary: EINA_TRUE translates into ELM_AUTOCAPITAL_TYPE_WORD, so use the 
latter to be consistent with the API.

Reviewers: jpeg, minkyu, devilhorns

Subscribers: stefan_schmidt, devilhorns, cedric

Differential Revision: https://phab.enlightenment.org/D4354
---
 src/bin/elementary/test_entry.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/elementary/test_entry.c b/src/bin/elementary/test_entry.c
index 35180df..edcdd44 100644
--- a/src/bin/elementary/test_entry.c
+++ b/src/bin/elementary/test_entry.c
@@ -2548,7 +2548,7 @@ test_entry8(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_in
elm_object_part_text_set(en4, "guide", "Type in here");
elm_entry_scrollable_set(en4, EINA_TRUE);
elm_scroller_bounce_set(en4, EINA_TRUE, EINA_TRUE);
-   elm_entry_autocapital_type_set(en4, EINA_TRUE);
+   elm_entry_autocapital_type_set(en4, ELM_AUTOCAPITAL_TYPE_WORD);
evas_object_size_hint_weight_set(en4, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en4, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_grid_pack(gd, en4, 5, 65, 90, 20);

-- 




[EGIT] [tools/eflete] master 02/02: tab_home_import_edj: do not show __eflete_internal_group__ on edj import

2016-10-21 Thread Vitalii Vorobiov
rimmed pushed a commit to branch master.

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

commit 3cefbe5814e6fc3c4adea66da4608641101aa6c1
Author: Vitalii Vorobiov 
Date:   Wed Oct 12 18:45:53 2016 +0300

tab_home_import_edj: do not show __eflete_internal_group__ on edj import

Fixes T4596
---
 src/bin/ui/tab_home_import_edj.c | 21 -
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/src/bin/ui/tab_home_import_edj.c b/src/bin/ui/tab_home_import_edj.c
index e6daafb..4f63eb3 100644
--- a/src/bin/ui/tab_home_import_edj.c
+++ b/src/bin/ui/tab_home_import_edj.c
@@ -209,15 +209,18 @@ _edj_changed_cb(void *data __UNUSED__,
  }
EINA_LIST_FREE(groups, group)
  {
-node = mem_calloc(1, sizeof(Node));
-node->name = eina_stringshare_ref(group->common.name);
-elm_genlist_item_append(tab_edj.genlist,
-itc,
-node,
-NULL,
-ELM_GENLIST_ITEM_NONE,
-NULL,
-NULL);
+if (strcmp(group->common.name, EFLETE_INTERNAL_GROUP_NAME))
+  {
+ node = mem_calloc(1, sizeof(Node));
+ node->name = eina_stringshare_ref(group->common.name);
+ elm_genlist_item_append(tab_edj.genlist,
+ itc,
+ node,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ NULL,
+ NULL);
+  }
  }
edje_file_cache_flush();
EINA_LIST_FREE(groups_list, group)

-- 




[EGIT] [tools/eflete] master 01/02: tab_home_import_edj: cleanup groups when different edj was selected

2016-10-21 Thread Vitalii Vorobiov
rimmed pushed a commit to branch master.

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

commit 043deeece962ef02a279f22a4f5a011a08d3
Author: Vitalii Vorobiov 
Date:   Wed Oct 12 18:44:49 2016 +0300

tab_home_import_edj: cleanup groups when different edj was selected

Fixes T4597
---
 src/bin/ui/tab_home_import_edj.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bin/ui/tab_home_import_edj.c b/src/bin/ui/tab_home_import_edj.c
index 3d9b412..e6daafb 100644
--- a/src/bin/ui/tab_home_import_edj.c
+++ b/src/bin/ui/tab_home_import_edj.c
@@ -191,6 +191,8 @@ _edj_changed_cb(void *data __UNUSED__,
  }
edje_file_collection_list_free(collections);
 
+   elm_genlist_clear(tab_edj.genlist);
+
widget_tree_items_get(groups_list, "", &folders, &groups);
EINA_LIST_FREE(folders, prefix)
  {

-- 




Re: [E-devel] Repos sending mails to git@lists

2016-10-21 Thread Tom Hacohen
On 20/10/16 20:50, Bruno Dilly wrote:
> Hey guys,
>
> I realized apparently changes on apps/eruler are not sent to our git mails
> list.
>
> How is it managed? Do we have a list of repos with hooks to send emails to
> such list? Could you guys please add eruler to this list?
>
> Thanks in advance
>

All repos send mails unless the commits are already available on the 
server (for example, the commits are in a branch).

--
Tom.

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [website/www-content] master 01/01: Wiki page osx-start changed with summary [Homebrew ships EFL 1.18.2] by Jean Guyomarc'h

2016-10-21 Thread Jean Guyomarc'h
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=828ff2928177320bf951a5147c4c618893832b45

commit 828ff2928177320bf951a5147c4c618893832b45
Author: Jean Guyomarc'h 
Date:   Fri Oct 21 00:00:42 2016 -0700

Wiki page osx-start changed with summary [Homebrew ships EFL 1.18.2] by 
Jean Guyomarc'h
---
 pages/distros/osx-start.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pages/distros/osx-start.txt b/pages/distros/osx-start.txt
index 1235150..3ca4f8b 100644
--- a/pages/distros/osx-start.txt
+++ b/pages/distros/osx-start.txt
@@ -22,6 +22,7 @@ brew install efl   # To install EFL
 
 
 And that's it! Enjoy your freshly distributed EFL :-).
+The distributed version of EFL is 
[[http://braumeister.org/formula/efl|1.18.2]].
 
 
 == Manual Installation (for EFL DEVELOPERS) ==

--