[EGIT] [core/efl] master 01/01: ecore-animator allow for animator to skip queued animator ticks

2016-10-27 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit da04400c5d22aac0888ceb945c0afe28459af06c
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Oct 28 13:58:56 2016 +0900

ecore-animator allow for animator to skip queued animator ticks

set ECORE_ANIMATOR_SKIP to skip queued animtor ticks if multiple are
in the pipeline. optional and not on by default. i would think its not
a good idea to skip these animator ticks and skipping/deferring is a
job higher up.

@feature
---
 src/lib/ecore/ecore_anim.c   | 24 ++--
 src/lib/ecore_x/xlib/ecore_x_vsync.c | 23 +--
 2 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/src/lib/ecore/ecore_anim.c b/src/lib/ecore/ecore_anim.c
index 70c2f89..c069c96 100644
--- a/src/lib/ecore/ecore_anim.c
+++ b/src/lib/ecore/ecore_anim.c
@@ -69,6 +69,9 @@ static volatile int timer_fd_read = -1;
 static volatile int timer_fd_write = -1;
 static Ecore_Thread *timer_thread = NULL;
 static volatile int timer_event_is_busy = 0;
+static Eina_Spinlock tick_queue_lock;
+static int   tick_queue_count = 0;
+static Eina_Bool tick_skip = EINA_FALSE;
 
 static void
 _tick_send(signed char val)
@@ -88,6 +91,9 @@ _timer_send_time(double t)
  {
 *tim = t;
 DBG("   ... send %1.8f", t);
+eina_spinlock_take(_queue_lock);
+tick_queue_count++;
+eina_spinlock_release(_queue_lock);
 ecore_thread_feedback(timer_thread, tim);
  }
 }
@@ -150,6 +156,12 @@ done:
 static void
 _timer_tick_notify(void *data EINA_UNUSED, Ecore_Thread *thread EINA_UNUSED, 
void *msg)
 {
+   int tick_queued;
+
+   eina_spinlock_take(_queue_lock);
+   tick_queued = tick_queue_count;
+   tick_queue_count--;
+   eina_spinlock_release(_queue_lock);
DBG("notify %3.3f %i", *((double *)msg), timer_event_is_busy);
if (timer_event_is_busy)
  {
@@ -157,8 +169,11 @@ _timer_tick_notify(void *data EINA_UNUSED, Ecore_Thread 
*thread EINA_UNUSED, voi
 static double pt = 0.0;
 
 DBG("VSYNC %1.8f = delt %1.8f", *t, *t - pt);
-ecore_loop_time_set(*t);
-_do_tick();
+if ((!tick_skip) || (tick_queued == 1))
+  {
+ ecore_loop_time_set(*t);
+ _do_tick();
+  }
 pt = *t;
  }
free(msg);
@@ -167,7 +182,9 @@ _timer_tick_notify(void *data EINA_UNUSED, Ecore_Thread 
*thread EINA_UNUSED, voi
 static void
 _timer_tick_finished(void *data EINA_UNUSED, Ecore_Thread *thread EINA_UNUSED)
 {
+   eina_spinlock_free(_queue_lock);
timer_thread = NULL;
+   tick_queue_count = 0;
if (timer_fd_read >= 0)
  {
 pipe_close(timer_fd_read);
@@ -190,6 +207,9 @@ _timer_tick_begin(void)
 if (pipe(fds) != 0) return;
 timer_fd_read = fds[0];
 timer_fd_write = fds[1];
+if (getenv("ECORE_ANIMATOR_SKIP")) tick_skip = EINA_TRUE;
+tick_queue_count = 0;
+eina_spinlock_new(_queue_lock);
 timer_thread = ecore_thread_feedback_run(_timer_tick_core,
  _timer_tick_notify,
  _timer_tick_finished,
diff --git a/src/lib/ecore_x/xlib/ecore_x_vsync.c 
b/src/lib/ecore_x/xlib/ecore_x_vsync.c
index 34eb605..436645e 100644
--- a/src/lib/ecore_x/xlib/ecore_x_vsync.c
+++ b/src/lib/ecore_x/xlib/ecore_x_vsync.c
@@ -147,6 +147,10 @@ static void *drm_lib = NULL;
 
 static Eina_Thread_Queue *thq = NULL;
 static Ecore_Thread *drm_thread = NULL;
+static Eina_Spinlock tick_queue_lock;
+static int   tick_queue_count = 0;
+static Eina_Bool tick_skip = EINA_FALSE;
+
 typedef struct
 {
Eina_Thread_Queue_Msg head;
@@ -208,6 +212,9 @@ _drm_send_time(double t)
 *tim = t;
 DBG("   ... send %1.8f", t);
 D("@%1.5f   ... send %1.8f\n", ecore_time_get(), t);
+eina_spinlock_take(_queue_lock);
+tick_queue_count++;
+eina_spinlock_release(_queue_lock);
 ecore_thread_feedback(drm_thread, tim);
  }
 }
@@ -363,6 +370,12 @@ _drm_tick_core(void *data EINA_UNUSED, Ecore_Thread 
*thread)
 static void
 _drm_tick_notify(void *data EINA_UNUSED, Ecore_Thread *thread EINA_UNUSED, 
void *msg)
 {
+   int tick_queued;
+
+   eina_spinlock_take(_queue_lock);
+   tick_queued = tick_queue_count;
+   tick_queue_count--;
+   eina_spinlock_release(_queue_lock);
DBG("notify %3.3f %i", *((double *)msg), drm_event_is_busy);
D("notify %3.3f %i\n", *((double *)msg), drm_event_is_busy);
if (drm_event_is_busy)
@@ -372,8 +385,11 @@ _drm_tick_notify(void *data EINA_UNUSED, Ecore_Thread 
*thread EINA_UNUSED, void
 
 DBG("VSYNC %1.8f = delt %1.8f", *t, *t - pt);
 D("VSYNC %1.8f = delt %1.8f\n", *t, *t - pt);
-ecore_loop_time_set(*t);
-ecore_animator_custom_tick();
+if ((!tick_skip) || 

[E-devel] aligning wl and x11 more - remove xcb?

2016-10-27 Thread The Rasterman
so some thoughts:

1. wayland is client-side decoration land. let's not argue csd vs ssd (server
side decorations ala traditional x11). one way or another csd is where things
are going and there are good reasons for it being better in many ways. in the
spirit of csd we likely will do what gnome does and use csd on x11 too. it can
be done and thus makes wl themes/display and window layout and features the
same as x11. ultimately this can apply to windows and osx too.

2. given this direction we could be even more crazy and display like wayland by
keeping a set of pixmaps we render to and "sending" the pixmaps to the
compositor rather than doing the std x11 composite way. only for efl apps but
this should also fix bugs like junk content when you resize a window until
client catches up. this borrows wl's solution for this into x11. the sw engine
could switch easily. gl would need a little work, BUT with gl now we don't need
buffer age for partial rendering. hooray! this would also help us unify api's,
display paths and code paths between x11 and wayland too at this lower level.
yes - it needs compositor support which means we still need the alternate path
anyway... but this path could be more optimal... :)

3. xcb was a valiant effort, but it is not even 1:1 feature for feature up to
date with xlib. it's off by default because of this and we need xlib for gl
anyway. we cant dump xlib. it's just a lot of code in our tree that we likely
could remove to clear out some "cruft". not to say work on xcb has been bad.
it's been good. it's a very very large amount of useful code but it just has
never proven to be any real big gains and lack of full featured implementation
(it's 98% there) means it kind of isn't useful. so how about we drop it to
simplify?

thoughts? (#1 likely will happen anyway, #3 is easy and we lose nothing, #2 is
still in the process of being through out).

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


--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] eina_log and threads

2016-10-27 Thread The Rasterman
On Thu, 27 Oct 2016 09:16:02 -0200 Gustavo Sverzut Barbieri
 said:

> Hi all,
> 
> eina_log has a feature to print the thread that generated the log as
> in "[T:XX]" prefix, which is handy during development or debug.
> 
> But that is off by default and the only way to enable is using
> eina_log_threads_enable() call.
> 
> So:
> 
>  1) could we make that an envvar to enable/disable it?

i see no reason why not

>  2) could we default to TRUE if no envvar was used?

hmmm we already putr pid, process, file, line number, function... a T:0x3f
wouldnt really hurt. of an 80 wide terminal 100 chars is just this header
already. may as well start making this multi-line anyway. :)

> 
> -- 
> Gustavo Sverzut Barbieri
> --
> Mobile: +55 (16) 99354-9890
> 
> --
> The Command Line: Reinvented for Modern Developers
> Did the resurgence of CLI tooling catch you by surprise?
> Reconnect with the command line and become more productive. 
> Learn the new .NET and ASP.NET CLI. Get your free copy!
> http://sdm.link/telerik
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


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


--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: efl - fix build after bu5hman broke it with elm.h changes

2016-10-27 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 6fa262cc24a0c44247130a7c1011d013cf040ebe
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Oct 28 09:17:48 2016 +0900

efl - fix build after bu5hman broke it with elm.h changes

fixes break added by d896e3efc542c66a651c1ba0e84f3d692981b89c

dont forget distclean!
---
 Makefile.am | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 2e91197..cf10724 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -519,5 +519,4 @@ DISTCLEANFILES= \
 ./src/lib/evil/Makefile \
 ./src/lib/edje/Makefile \
 ./src/lib/efl/Efl_Config.h \
-./src/lib/eina/eina_config.h \
-./src/lib/elementary/Elementary.h
+./src/lib/eina/eina_config.h

-- 




Re: [E-devel] [EGIT] [core/efl] master 02/02: efl_io_copier: work around efl_future weirdness.

2016-10-27 Thread The Rasterman
On Thu, 27 Oct 2016 09:05:37 -0700 Cedric BAIL  said:

> On Oct 26, 2016 6:19 PM, "Gustavo Sverzut Barbieri" 
> wrote:
> >
> > barbieri pushed a commit to branch master.
> >
> >
> http://git.enlightenment.org/core/efl.git/commit/?id=574e4b8ad56b0cced409417f76e90205fb28fe22
> >
> > commit 574e4b8ad56b0cced409417f76e90205fb28fe22
> > Author: Gustavo Sverzut Barbieri 
> > Date:   Wed Oct 26 23:17:10 2016 -0200
> >
> > efl_io_copier: work around efl_future weirdness.
> >
> > The pointer given to efl_future_use() should be NULL-ified before
> > calling my function, since that pointer has no meaning anymore.
> >
> > The copier relied on pd->job being NULL to avoid useless rescheduling,
> > it was being reached with non-null, but that pointer is no longer
> > useful.
> >
> > Moreover, I'm not sure if the second pointer, with the new future
> > won't be modified to NULL when the efl_future continues :-(
> 
> Yes, this is a problem I am well aware off.due to the use of eo for future,
> weak ref are nulled only after the future is destroyed. But the real
> correct behavior is to have it nulled as soon as it is fulfilled before
> even calling any callback, because weak ref are to be used by cancel only.
> They shouldn't exist when cancel can't be called anymore. I intend to fix
> this when I move future away from eo.

futures should not be moved away from eo. futures are what you cancel and this
discussion is going to go in a circle. because to cancel them you need a handle
to keep around... they MUST be eo. for safety. for reffing. etc.

> > ---
> >  src/lib/ecore/efl_io_copier.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/src/lib/ecore/efl_io_copier.c b/src/lib/ecore/efl_io_copier.c
> > index ab5314a..0b2667c 100644
> > --- a/src/lib/ecore/efl_io_copier.c
> > +++ b/src/lib/ecore/efl_io_copier.c
> > @@ -98,6 +98,8 @@ _efl_io_copier_job(void *data, const Efl_Event *ev
> EINA_UNUSED)
> > uint64_t old_total = pd->progress.total;
> >
> > _COPIER_DBG(o, pd);
> > +   pd->job = NULL; /* XXX TODO this should be NULL-ified by efl_promise
> before calling this function */
> > +
> > efl_ref(o);
> >
> > if (pd->source && efl_io_reader_can_read_get(pd->source))
> >
> > --
> >
> >
> --
> The Command Line: Reinvented for Modern Developers
> Did the resurgence of CLI tooling catch you by surprise?
> Reconnect with the command line and become more productive. 
> Learn the new .NET and ASP.NET CLI. Get your free copy!
> http://sdm.link/telerik
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


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


--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: evas - fix smart clipped if a move happens to recurse within itself

2016-10-27 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit b533f15880c7d51c3bdb499202dca858cf5b037a
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Oct 28 08:17:11 2016 +0900

evas - fix smart clipped if a move happens to recurse within itself

so since this uses new pos - cur pos to move BY x pixels... there is
an issue that if the move of the obj ends up re-moving the current obj
TO the same pos. it moved BY the same delta again thus racing ahead.
not great. because x/y is not stored until the call stack returns to
after the smart move func and the pos set storce the new position in
the object struct. the easiest way atm until we have relative
positioning etc. is to store this in the smart obj and use the delta
at that time of the call then store it immediately so a recursion ends
up with a delta of 0 if its the same pos, so go back to where we were.

this fixes a nasty issue i spotted in fileselector that made filesel
icons race along when scrolling 2x as fast as everything else. oddly i
couldnt see this in any other widget that scrolled when i looked...
which is odd, but... either way a nasty issue... subtle... and now
fixed. never saw this before so this seems new.
---
 src/lib/evas/canvas/evas_object_smart.c | 13 +
 src/lib/evas/canvas/evas_object_smart_clipped.c |  2 +-
 src/lib/evas/include/evas_private.h |  1 +
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/evas_object_smart.c 
b/src/lib/evas/canvas/evas_object_smart.c
index 359fee1..205d494 100644
--- a/src/lib/evas/canvas/evas_object_smart.c
+++ b/src/lib/evas/canvas/evas_object_smart.c
@@ -36,6 +36,8 @@ struct _Evas_Smart_Data
 
Evas_Smart_Cb_Description_Array callbacks_descriptions;
 
+   Evas_Coordx, y;
+
int   walking_list;
int   member_count; /** number of smart member objects */
 
@@ -913,6 +915,17 @@ _evas_canvas_smart_objects_calculate_count_get(Eo *eo_e 
EINA_UNUSED, Evas_Public
return e->smart_calc_count;
 }
 
+void
+_evas_object_smart_xy_update(Eo *eo_obj, Evas_Coord *px, Evas_Coord *py,
+ Evas_Coord x, Evas_Coord y)
+{
+   EVAS_OBJECT_SMART_GET_OR_RETURN(eo_obj);
+   *px = o->x;
+   *py = o->y;
+   o->x = x;
+   o->y = y;
+}
+
 /**
  * Call calculate() on all smart objects that need_recalculate.
  *
diff --git a/src/lib/evas/canvas/evas_object_smart_clipped.c 
b/src/lib/evas/canvas/evas_object_smart_clipped.c
index f9f95dd..8cbc5c5 100644
--- a/src/lib/evas/canvas/evas_object_smart_clipped.c
+++ b/src/lib/evas/canvas/evas_object_smart_clipped.c
@@ -86,7 +86,7 @@ evas_object_smart_clipped_smart_move(Evas_Object *eo_obj, 
Evas_Coord x, Evas_Coo
 {
Evas_Coord orig_x, orig_y;
 
-   efl_gfx_position_get(eo_obj, _x, _y);
+   _evas_object_smart_xy_update(eo_obj, _x, _y, x, y);
evas_object_smart_move_children_relative(eo_obj, x - orig_x, y - orig_y);
 }
 
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index 6dc037b..6b0ff68 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1601,6 +1601,7 @@ void evas_object_smart_member_stack_above(Evas_Object 
*member, Evas_Object *othe
 void evas_object_smart_member_stack_below(Evas_Object *member, Evas_Object 
*other);
 const Eina_Inlist *evas_object_smart_members_get_direct(const Evas_Object 
*obj);
 void _efl_canvas_group_group_members_all_del(Evas_Object *obj);
+void _evas_object_smart_xy_update(Eo *eo_obj, Evas_Coord *px, Evas_Coord *py, 
Evas_Coord x, Evas_Coord y);
 void evas_call_smarts_calculate(Evas *e);
 void evas_object_smart_bounding_box_update(Evas_Object *eo_obj, 
Evas_Object_Protected_Data *obj);
 void evas_object_smart_need_bounding_box_update(Evas_Object *eo_obj, 
Evas_Smart_Data *o, Evas_Object_Protected_Data *obj);

-- 




Re: [E-devel] E17 Theme Text Sizing Issue with EFL 1.18

2016-10-27 Thread Simon Lees


On 10/28/2016 04:37 AM, Eduardo Lima (Etrunko) wrote:
> Hmm, maybe it is related to the issue I reported these days, can you please
> try the steps I and see what  you got?
> 
> https://phab.enlightenment.org/T4730
> 
> On Thu, Oct 27, 2016 at 11:44 AM, Jeff Hoogland 
> wrote:
> 
>> Finally getting with the times and upgrading to the latest EFL in Bodhi
>> since it doesn't cause hard locks with E17 anymore. I am having a much more
>> minor issue with some of our themes though. Text doesn't appear to take
>> space properly any more for certain objects like it did with previous EFL
>> versions.
>>
>> Screenshot:
>> https://cdn.scrot.moe/images/2016/10/27/shot-2016-10-27_13-28-32.jpg
>>
>> The module highlighted in the corner is the clock module. It just displays
>> "..." instead of the time like it did with previous EFL versions I used it
>> with.
>>
>> The everything launcher also displays "..." instead of the text you are
>> searching for once I type more than a single character.
>>
>> Theme source is here -> https://github.com/JeffHoogland/MokshaForum
>>
>> Someone else did the bulk of work on these and I am just trying to patch
>> them up as issues like this appear. Any suggestions on where to look to fix
>> these text sizing issues with EFL 1.18?
>>

At a guess if the clock etc is just a text part (label) you probably
need to add "text.ellipsis: -1;" so that the text doesn't get truncated
with ..., this isn't exactly a new efl change though, its atleast 2
years old from memory and all the newer themes were patched to fix it at
one point or another. My guess is when you compile you get a bunch of
warnings about places where it needs fixing.

-- 

Simon Lees (Simotek)http://simotek.net

Emergency Update Team   keybase.io/simotek
SUSE LinuxAdeliade Australia, UTC+9:30
GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B



signature.asc
Description: OpenPGP digital signature
--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/enlightenment] master 01/01: Revert "mixer: lock up the slider for the case a drag is in progress"

2016-10-27 Thread yoz
yoz pushed a commit to branch master.

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

commit b2d67bd68a848fe4bf80145f2afc8146294f0a8a
Author: Michaël Bouchaud (yoz) 
Date:   Thu Oct 27 22:38:46 2016 +0200

Revert "mixer: lock up the slider for the case a drag is in progress"

This reverts commit eed35d3c4f77f48b6bdb46611e4bba4cabb08c41.

This is a bad workaround, I have fixed the issue so we don't need it
anymore.
---
 src/modules/mixer/e_mod_main.c | 12 +---
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c
index 017c31e..15aa4af 100644
--- a/src/modules/mixer/e_mod_main.c
+++ b/src/modules/mixer/e_mod_main.c
@@ -143,8 +143,7 @@ static void
 _mixer_popup_update(Instance *inst, int mute, int vol)
 {
elm_check_state_set(inst->check, !!mute);
-   if (!evas_object_data_del(inst->slider, "__lock"))
- elm_slider_value_set(inst->slider, vol);
+   elm_slider_value_set(inst->slider, vol);
 }
 
 static void _popup_del(Instance *inst);
@@ -500,14 +499,6 @@ _slider_drag_stop_cb(void *data EINA_UNUSED, Evas_Object 
*obj,
Emix_Sink *s = (Emix_Sink *)mixer_context->sink_default;
int val = s->volume.volumes[0];
elm_slider_value_set(obj, val);
-   evas_object_data_del(obj, "__lock");
-}
-
-static void
-_slider_drag_start_cb(void *data EINA_UNUSED, Evas_Object *obj,
- void *event EINA_UNUSED)
-{
-   evas_object_data_set(obj, "__lock", (void*)1);
 }
 
 static void
@@ -575,7 +566,6 @@ _popup_new(Instance *inst)
elm_slider_min_max_set(slider, 0.0, emix_max_volume_get());
evas_object_smart_callback_add(slider, "changed", _slider_changed_cb, NULL);
evas_object_smart_callback_add(slider, "slider,drag,stop", 
_slider_drag_stop_cb, NULL);
-   evas_object_smart_callback_add(slider, "slider,drag,start", 
_slider_drag_start_cb, NULL);
elm_slider_value_set(slider, volume);
elm_box_pack_end(bx, slider);
evas_object_show(slider);

-- 




[EGIT] [core/enlightenment] master 03/06: mixer: use the new e_client api to export volume control by app.

2016-10-27 Thread yoz
yoz pushed a commit to branch master.

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

commit 307f0831ce0be4d8dd075c14d020dc6106f7aa0f
Author: Michaël Bouchaud (yoz) 
Date:   Fri Oct 14 12:30:57 2016 +0200

mixer: use the new e_client api to export volume control by app.

We use the pulseaudio backend to export volume control by app.
This commit introduce 3 news shortcuts to control the volume with the 
current
focused window.

@features
---
 src/modules/mixer/e_mod_main.c| 219 ++
 src/modules/mixer/emixer.c|  20 --
 src/modules/mixer/lib/backends/pulseaudio/pulse.c |  11 ++
 src/modules/mixer/lib/emix.h  |  21 +++
 4 files changed, 251 insertions(+), 20 deletions(-)

diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c
index ef53d2e..8c7efb1 100644
--- a/src/modules/mixer/e_mod_main.c
+++ b/src/modules/mixer/e_mod_main.c
@@ -14,6 +14,7 @@
 
 int _e_emix_log_domain;
 static Eina_Bool init;
+static Eina_List *_client_sinks = NULL;
 
 /* module requirements */
 E_API E_Module_Api e_modapi =
@@ -62,6 +63,9 @@ struct _Context
   E_Action *incr;
   E_Action *decr;
   E_Action *mute;
+  E_Action *incr_app;
+  E_Action *decr_app;
+  E_Action *mute_app;
} actions;
 };
 
@@ -242,6 +246,42 @@ _volume_mute_cb(E_Object *obj EINA_UNUSED, const char 
*params EINA_UNUSED)
 }
 
 static void
+_volume_increase_app_cb(E_Object *obj EINA_UNUSED, const char *params 
EINA_UNUSED)
+{
+   E_Client *ec;
+
+   ec = e_client_focused_get();
+   if (ec && ec->volume_control_enabled)
+ {
+e_client_volume_set(ec, ec->volume + VOLUME_STEP);
+ }
+}
+
+static void
+_volume_decrease_app_cb(E_Object *obj EINA_UNUSED, const char *params 
EINA_UNUSED)
+{
+   E_Client *ec;
+
+   ec = e_client_focused_get();
+   if (ec && ec->volume_control_enabled)
+ {
+e_client_volume_set(ec, ec->volume - VOLUME_STEP);
+ }
+}
+
+static void
+_volume_mute_app_cb(E_Object *obj EINA_UNUSED, const char *params EINA_UNUSED)
+{
+   E_Client *ec;
+
+   ec = e_client_focused_get();
+   if (ec && ec->volume_control_enabled)
+ {
+e_client_volume_mute_set(ec, !ec->mute);
+ }
+}
+
+static void
 _actions_register(void)
 {
mixer_context->actions.incr = e_action_add("volume_increase");
@@ -267,6 +307,30 @@ _actions_register(void)
 e_action_predef_name_set("Mixer", _("Mute volume"), "volume_mute",
  NULL, NULL, 0);
  }
+   mixer_context->actions.incr_app = e_action_add("volume_increase_app");
+   if (mixer_context->actions.incr_app)
+ {
+mixer_context->actions.incr_app->func.go = _volume_increase_app_cb;
+e_action_predef_name_set("Mixer",
+ _("Increase Volume of Focused Application"),
+ "volume_increase_app", NULL, NULL, 0);
+ }
+   mixer_context->actions.decr_app = e_action_add("volume_decrease_app");
+   if (mixer_context->actions.decr_app)
+ {
+mixer_context->actions.decr_app->func.go = _volume_decrease_app_cb;
+e_action_predef_name_set("Mixer",
+ _("Decrease Volume of Focused Application"),
+ "volume_decrease_app", NULL, NULL, 0);
+ }
+   mixer_context->actions.mute_app = e_action_add("volume_mute_app");
+   if (mixer_context->actions.mute_app)
+ {
+mixer_context->actions.mute_app->func.go = _volume_mute_app_cb;
+e_action_predef_name_set("Mixer",
+ _("Mute Volume of Focused Application"),
+ "volume_mute_app", NULL, NULL, 0);
+ }
 
e_comp_canvas_keys_ungrab();
e_comp_canvas_keys_grab();
@@ -296,6 +360,30 @@ _actions_unregister(void)
 mixer_context->actions.mute = NULL;
  }
 
+   if (mixer_context->actions.incr_app)
+ {
+e_action_predef_name_del("Mixer",
+ _("Increase Volume of Focuse Application"));
+e_action_del("volume_increase_app");
+mixer_context->actions.incr_app = NULL;
+ }
+
+   if (mixer_context->actions.decr_app)
+ {
+e_action_predef_name_del("Mixer",
+ _("Decrease Volume of Focuse Application"));
+e_action_del("volume_decrease_app");
+mixer_context->actions.decr_app = NULL;
+ }
+
+   if (mixer_context->actions.incr_app)
+ {
+e_action_predef_name_del("Mixer",
+ _("Mute Volume of Focuse Application"));
+e_action_del("volume_mute_app");
+mixer_context->actions.mute_app = NULL;
+ }
+
e_comp_canvas_keys_ungrab();
e_comp_canvas_keys_grab();
 }
@@ -759,6 +847,126 @@ _ready(void)
 }
 
 static void
+_sink_input_get(int *volume, Eina_Bool *muted, void *data)
+{
+   

[EGIT] [core/enlightenment] master 06/06: mixer: add volume control to e_client menu

2016-10-27 Thread yoz
yoz pushed a commit to branch master.

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

commit b65cb5df926f442d83557eb60b22e55e5e0bd062
Author: Michaël Bouchaud (yoz) 
Date:   Fri Oct 21 12:52:25 2016 +0200

mixer: add volume control to e_client menu

Add a button to the window menu, when clicked this one make a new window to
control the volume of the app.

@features
---
 src/modules/mixer/e_mod_main.c | 222 +
 1 file changed, 222 insertions(+)

diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c
index 8c7efb1..017c31e 100644
--- a/src/modules/mixer/e_mod_main.c
+++ b/src/modules/mixer/e_mod_main.c
@@ -15,6 +15,9 @@
 int _e_emix_log_domain;
 static Eina_Bool init;
 static Eina_List *_client_sinks = NULL;
+static Eina_List *_client_mixers = NULL;
+static Eina_List *_client_handlers = NULL;
+static E_Client_Menu_Hook *_border_hook = NULL;
 
 /* module requirements */
 E_API E_Module_Api e_modapi =
@@ -85,6 +88,15 @@ struct _Instance
Eina_Bool mute;
 };
 
+typedef struct _Client_Mixer Client_Mixer;
+struct _Client_Mixer
+{
+   Evas_Object *win;
+   Evas_Object *volume;
+   Evas_Object *mute;
+   E_Client *ec;
+};
+
 static Context *mixer_context = NULL;
 
 static void
@@ -1034,6 +1046,195 @@ _backend_changed(const char *backend, void *data 
EINA_UNUSED)
  ERR("Could not load backend: %s", backend);
 }
 
+static void
+_bd_hook_volume_changed(void *data, Evas_Object *obj, void *event_info 
EINA_UNUSED)
+{
+   E_Client *ec;
+
+   ec = data;
+
+   e_client_volume_set(ec, elm_slider_value_get(obj));
+}
+
+static void
+_bd_hook_mute_changed(void *data, Evas_Object *obj, void *event_info 
EINA_UNUSED)
+{
+   E_Client *ec;
+
+   ec = data;
+
+   e_client_volume_mute_set(ec, elm_check_state_get(obj));
+}
+
+static Eina_Bool
+_e_client_volume_changed(void *data EINA_UNUSED, int type, void *event)
+{
+   E_Event_Client *ev;
+   Client_Mixer *cm;
+   Eina_List *l;
+
+   ev = event;
+
+   EINA_LIST_FOREACH(_client_mixers, l, cm)
+ {
+if (cm->ec == ev->ec)
+  {
+ elm_slider_value_set(cm->volume, cm->ec->volume);
+ break;
+  }
+ }
+
+   return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool
+_e_client_mute_changed(void *data EINA_UNUSED, int type, void *event)
+{
+   E_Event_Client *ev;
+   Client_Mixer *cm;
+   Eina_List *l;
+
+   ev = event;
+
+   EINA_LIST_FOREACH(_client_mixers, l, cm)
+ {
+if (cm->ec == ev->ec)
+  {
+ elm_check_state_set(cm->mute, !!cm->ec->mute);
+ break;
+  }
+ }
+
+   return ECORE_CALLBACK_PASS_ON;
+}
+
+static void
+_client_mixer_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+   Client_Mixer *cm;
+
+   cm = data;
+
+   _client_mixers = eina_list_remove(_client_mixers, cm);
+   free(cm);
+}
+
+static Eina_Bool
+_e_client_remove(void *data EINA_UNUSED, int type, void *event)
+{
+   E_Event_Client *ev;
+   Client_Mixer *cm;
+   Eina_List *l;
+
+   ev = event;
+
+   EINA_LIST_FOREACH(_client_mixers, l, cm)
+ {
+if (cm->ec == ev->ec)
+  {
+ evas_object_event_callback_del_full(cm->win, EVAS_CALLBACK_DEL,
+ _client_mixer_del, cm);
+ evas_object_del(cm->win);
+ _client_mixers = eina_list_remove_list(_client_mixers, l);
+ free(cm);
+ break;
+  }
+ }
+
+   return ECORE_CALLBACK_PASS_ON;
+}
+
+static void
+_bd_hook_cb(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *it EINA_UNUSED)
+{
+   E_Client *ec, *c;
+   Client_Mixer *cm;
+   Evas_Object *win, *popup, *bx, *o;
+   Eina_List *l;
+   char buf[4096];
+   int w, h;
+
+   ec = data;
+
+   EINA_LIST_FOREACH(_client_mixers, l, cm)
+ {
+if (cm->ec == ec)
+  return;
+ }
+   cm = E_NEW(Client_Mixer, 1);
+   cm->ec = ec;
+
+   win = elm_popup_add(e_comp->elm);
+   elm_popup_allow_events_set(win, EINA_TRUE);
+
+   bx = elm_box_add(win);
+   elm_box_horizontal_set(bx, EINA_FALSE);
+   elm_object_content_set(win, bx);
+   evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+   o = elm_slider_add(bx);
+   elm_slider_horizontal_set(o, EINA_TRUE);
+   elm_slider_min_max_set(o, ec->volume_min, ec->volume_max);
+   elm_slider_span_size_set(o, ec->volume_max * elm_config_scale_get());
+   elm_slider_unit_format_set(o, "%.0f");
+   elm_slider_indicator_format_set(o, "%.0f");
+   evas_object_size_hint_weight_set(o, 0.0, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_slider_value_set(o, ec->volume);
+   evas_object_smart_callback_add(o, "changed", _bd_hook_volume_changed, ec);
+   elm_box_pack_end(bx, o);
+   evas_object_show(o);
+   cm->volume = o;
+
+   o = elm_check_add(bx);
+   elm_object_text_set(o, 

[EGIT] [core/enlightenment] master 04/06: e_remember: add e_client sound volume support

2016-10-27 Thread yoz
yoz pushed a commit to branch master.

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

commit 6e8070d2261a3986ca2224a831cc954af728a429
Author: Michaël Bouchaud (yoz) 
Date:   Fri Oct 14 20:49:35 2016 +0200

e_remember: add e_client sound volume support

@features
---
 src/bin/e_client_volume.c   |  1 +
 src/bin/e_config.c  |  4 
 src/bin/e_int_client_remember.c | 15 +--
 src/bin/e_remember.c| 27 ++-
 src/bin/e_remember.h|  6 ++
 5 files changed, 50 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_client_volume.c b/src/bin/e_client_volume.c
index af68de3..1d6a9f6 100644
--- a/src/bin/e_client_volume.c
+++ b/src/bin/e_client_volume.c
@@ -64,6 +64,7 @@ e_client_volume_sink_del(E_Client_Volume_Sink *sink)
EINA_LIST_FREE(sink->clients, ec)
  {
 ec->sinks = eina_list_remove(ec->sinks, sink);
+e_comp_object_frame_volume_update(ec->frame);
  }
free(sink);
 }
diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index dcdc8ea..af0494f 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -385,6 +385,10 @@ _e_config_edd_init(Eina_Bool old)
E_CONFIG_VAL(D, T, prop.desktop_file, STR);
E_CONFIG_VAL(D, T, prop.offer_resistance, UCHAR);
E_CONFIG_VAL(D, T, prop.opacity, UCHAR);
+   E_CONFIG_VAL(D, T, prop.volume, INT);
+   E_CONFIG_VAL(D, T, prop.volume_min, INT);
+   E_CONFIG_VAL(D, T, prop.volume_max, INT);
+   E_CONFIG_VAL(D, T, prop.mute, UCHAR);
E_CONFIG_VAL(D, T, uuid, STR);
E_CONFIG_VAL(D, T, pid, INT);
 
diff --git a/src/bin/e_int_client_remember.c b/src/bin/e_int_client_remember.c
index 3de6000..56bfda3 100644
--- a/src/bin/e_int_client_remember.c
+++ b/src/bin/e_int_client_remember.c
@@ -12,6 +12,7 @@ static Evas_Object *_advanced_create_widgets(E_Config_Dialog 
*cfd, Evas *evas, E
 #define MODE_NOTHING0
 #define MODE_GEOMETRY   E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE
 #define MODE_LOCKS  E_REMEMBER_APPLY_LOCKS
+#define MODE_VOLUME E_REMEMBER_APPLY_VOLUME
 #define MODE_GEOMETRY_LOCKS E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE | 
E_REMEMBER_APPLY_LOCKS
 #define MODE_ALLE_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE | 
E_REMEMBER_APPLY_LAYER | \
   E_REMEMBER_APPLY_LOCKS | E_REMEMBER_APPLY_BORDER | E_REMEMBER_APPLY_STICKY | 
 \
@@ -62,6 +63,7 @@ struct _E_Config_Dialog_Data
   int keep_settings;
   int offer_resistance;
   int apply_opacity;
+  int apply_volume;
} remember;
 
int applied;
@@ -279,6 +281,8 @@ _fill_data(E_Config_Dialog_Data *cfdata)
   cfdata->remember.offer_resistance = 1;
 if (rem->apply & E_REMEMBER_APPLY_OPACITY)
   cfdata->remember.apply_opacity = 1;
+if (rem->apply & E_REMEMBER_APPLY_VOLUME)
+  cfdata->remember.apply_volume = 1;
  }
 
if (!rem) cfdata->mode = MODE_NOTHING;
@@ -610,6 +614,8 @@ _advanced_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfd
  rem->apply |= E_REMEMBER_APPLY_OFFER_RESISTANCE;
if (cfdata->remember.apply_opacity)
  rem->apply |= E_REMEMBER_APPLY_OPACITY;
+   if (cfdata->remember.apply_volume)
+ rem->apply |= E_REMEMBER_APPLY_VOLUME;
 
if (ec && (!rem->apply && !rem->prop.desktop_file))
  {
@@ -654,6 +660,8 @@ _basic_create_widgets(E_Config_Dialog *cfd EINA_UNUSED, 
Evas *evas, E_Config_Dia
e_widget_list_object_append(o, ob, 1, 1, 0.5);
ob = e_widget_radio_add(evas, _("Size, Position and Locks"), 
MODE_GEOMETRY_LOCKS, rg);
e_widget_list_object_append(o, ob, 1, 1, 0.5);
+   ob = e_widget_radio_add(evas, _("Volume"), MODE_VOLUME, rg);
+   e_widget_list_object_append(o, ob, 1, 1, 0.5);
ob = e_widget_radio_add(evas, _("All"), MODE_ALL, rg);
e_widget_list_object_append(o, ob, 1, 1, 0.5);
return o;
@@ -789,10 +797,13 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas 
*evas, E_Config_Dialog_Data
e_widget_table_object_append(of, ob, 0, 7, 1, 1, 1, 0, 1, 0);
oc = e_widget_check_add(evas, _("Application file or name (.desktop)"),
&(cfdata->remember.apply_desktop_file));
-   e_widget_table_object_append(of, oc, 0, 8, 1, 1, 1, 0, 1, 0);
+   e_widget_table_object_append(of, ob, 0, 8, 1, 1, 1, 0, 1, 0);
+   oc = e_widget_check_add(evas, _("Volume"),
+   &(cfdata->remember.apply_volume));
+   e_widget_table_object_append(of, oc, 0, 9, 1, 1, 1, 0, 1, 0);
ob = e_widget_entry_add(cfd->dia->win, >desktop, NULL, NULL, NULL);
e_widget_check_widget_disable_on_unchecked_add(oc, ob);
-   e_widget_table_object_append(of, ob, 0, 9, 2, 1, 1, 0, 1, 0);
+   e_widget_table_object_append(of, ob, 0, 10, 2, 1, 1, 0, 1, 0);
e_widget_toolbook_page_append(o, NULL, _("Properties"), of, 1, 1, 1, 1, 
0.5, 0.0);
 
of = e_widget_table_add(e_win_evas_win_get(evas), 0);
diff --git a/src/bin/e_remember.c 

[EGIT] [core/enlightenment] master 05/06: e_client: add a volume control to the window theme

2016-10-27 Thread yoz
yoz pushed a commit to branch master.

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

commit 718ef898d75829448123b28983f3362dc3fa0075
Author: Michaël Bouchaud (yoz) 
Date:   Sat Oct 15 13:38:37 2016 +0200

e_client: add a volume control to the window theme

This commit brings 2 objects to the group 
"e/widgets/border/default/border", an
icon and a slider. If you click the icon the volume is muted.
The slider set the volume level.

Theme part added "e.swallow.volume_icon" and "e.swallow.volume"

@features
---
 src/bin/e_client_volume.c | 141 ++
 src/bin/e_comp_object.c   |  48 +++-
 src/bin/e_comp_object.h   |   1 +
 3 files changed, 189 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_client_volume.c b/src/bin/e_client_volume.c
index 1d6a9f6..f00ca67 100644
--- a/src/bin/e_client_volume.c
+++ b/src/bin/e_client_volume.c
@@ -4,6 +4,13 @@ E_API int E_EVENT_CLIENT_VOLUME = -1;
 E_API int E_EVENT_CLIENT_MUTE = -1;
 E_API int E_EVENT_CLIENT_UNMUTE = -1;
 
+static void _e_client_volume_event_simple_free(void *d, E_Event_Client *ev);
+static void _e_client_volume_event_simple(E_Client *ec, int type);
+static void _e_client_volume_object_mouse_down_cb(void *data, Evas *e, 
Evas_Object *obj, void *event_info);
+static void _e_client_volume_object_volume_changed(void *data, Evas_Object 
*obj, void *event_info);
+static Eina_Bool _e_client_volume_object_changed(void *data, int type, void 
*event);
+static void _e_client_volume_object_del_cb(void *data, Evas *evas, Evas_Object 
*obj, void *event_info);
+
 static void
 _e_client_volume_event_simple_free(void *d EINA_UNUSED, E_Event_Client *ev)
 {
@@ -25,6 +32,76 @@ _e_client_volume_event_simple(E_Client *ec, int type)
(Ecore_End_Cb)_e_client_volume_event_simple_free, NULL);
 }
 
+static void
+_e_client_volume_object_mouse_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+   int val;
+   E_Client *ec;
+
+   ec = data;
+
+   e_client_volume_mute_set(ec, !(ec->mute));
+}
+
+static void
+_e_client_volume_object_volume_changed(void *data, Evas_Object *obj, void 
*event_info EINA_UNUSED)
+{
+   int val;
+   E_Client *ec;
+
+   ec = data;
+
+   e_client_volume_set(ec, elm_slider_value_get(obj));
+}
+
+static Eina_Bool
+_e_client_volume_object_changed(void *data, int type, void *event)
+{
+   E_Event_Client *ev;
+   Evas_Object *o;
+   Evas_Object *bx;
+   Edje_Message_Int_Set *msg;
+
+   ev = event;
+   bx = data;
+
+   o = edje_object_part_swallow_get(bx, "e.swallow.volume_icon");
+   if (o)
+ {
+msg = alloca(sizeof(Edje_Message_Int_Set) + (2 * sizeof(int)));
+msg->count = 3;
+msg->val[0] = ev->ec->mute;
+msg->val[1] = ev->ec->volume;
+msg->val[2] = msg->val[1];
+edje_object_message_send(o, EDJE_MESSAGE_INT_SET, 0, msg);
+edje_object_signal_emit(o,  "e,action,volume,change", "e");
+ }
+   o = edje_object_part_swallow_get(bx, "e.swallow.volume");
+   if (o)
+ {
+elm_slider_value_set(o, ev->ec->volume);
+ }
+
+   return ECORE_CALLBACK_PASS_ON;
+}
+
+static void
+_e_client_volume_object_del_cb(void *data, Evas *evas EINA_UNUSED, Evas_Object 
*obj, void *event_info EINA_UNUSED)
+{
+   Eina_List *handlers;
+   Evas_Object *o;
+
+   handlers = data;
+
+   o = edje_object_part_swallow_get(obj, "e.swallow.volume_icon");
+   if (o) evas_object_del(o);
+   o = edje_object_part_swallow_get(obj, "e.swallow.volume");
+   if (o) evas_object_del(o);
+
+   E_FREE_LIST(handlers, ecore_event_handler_del);
+}
+
+
 
 EINTERN int
 e_client_volume_init(void)
@@ -142,6 +219,7 @@ e_client_volume_sink_append(E_Client *ec, 
E_Client_Volume_Sink *sink)
 ec->mute = !!mute;
 ec->volume_control_enabled = EINA_TRUE;
  }
+   e_comp_object_frame_volume_update(ec->frame);
 }
 
 E_API void
@@ -150,6 +228,7 @@ e_client_volume_sink_remove(E_Client *ec, 
E_Client_Volume_Sink *sink)
EINA_SAFETY_ON_NULL_RETURN(ec);
ec->sinks = eina_list_remove(ec->sinks, sink);
sink->clients = eina_list_remove(sink->clients, ec);
+   e_comp_object_frame_volume_update(ec->frame);
 }
 
 E_API void
@@ -211,3 +290,65 @@ e_client_volume_mute_set(E_Client *ec, Eina_Bool mute)
  _e_client_volume_event_simple(ec, E_EVENT_CLIENT_UNMUTE);
 }
 
+E_API Evas_Object *
+e_client_volume_object_add(E_Client *ec, Evas *evas)
+{
+   Evas_Object *bx, *o;
+   Edje_Message_Int_Set *msg;
+   Eina_List *handlers = NULL;
+
+   bx = edje_object_add(evas);
+   e_theme_edje_object_set(bx,
+   "base/theme/border/volume",
+   "e/widgets/border/volume");
+
+   if (edje_object_part_exists(bx, "e.swallow.volume_icon"))
+ {
+o = edje_object_add(evas);
+e_theme_edje_object_set(o,
+"base/theme/modules/mixer",
+ 

[EGIT] [core/efl] master 01/01: elm theme: Add volume control theme to "e/widgets/border/default/border"

2016-10-27 Thread yoz
yoz pushed a commit to branch master.

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

commit 51eafa137d373cb3e9055c180e6862c8e5bd21d4
Author: Michaël Bouchaud (yoz) 
Date:   Sat Oct 15 14:02:17 2016 +0200

elm theme: Add volume control theme to "e/widgets/border/default/border"
---
 data/elementary/themes/edc/border.edc | 130 +-
 1 file changed, 128 insertions(+), 2 deletions(-)

diff --git a/data/elementary/themes/edc/border.edc 
b/data/elementary/themes/edc/border.edc
index f200d7b..8aea5de 100644
--- a/data/elementary/themes/edc/border.edc
+++ b/data/elementary/themes/edc/border.edc
@@ -1,3 +1,113 @@
+group { name: "e/widgets/border/volume";
+   parts {
+  part { name: "base";
+ type: RECT;
+ description { state: "default" 0.0;
+color: 255 255 255 0;
+ }
+  }
+  part { name: "clip";
+ type: RECT;
+ description { state: "default" 0.0;
+rel1.to: "e.swallow.volume";
+rel1.relative: -1.0 0.0;
+rel2.to: "e.swallow.volume";
+rel2.relative: 0.0 1.0;
+color: 255 255 255 255;
+ }
+ description { state: "show" 0.0;
+rel1.to: "e.swallow.volume";
+rel1.relative: 0.0 0.0;
+rel2.to: "e.swallow.volume";
+rel2.relative: 1.0 1.0;
+ }
+  }
+  part { name: "e.swallow.volume_icon";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+rel1.to: "base";
+rel1.relative: 0.15 0.15;
+rel2.to: "base";
+rel2.relative: 0.85 0.85;
+ }
+  }
+  part { name: "e.swallow.volume";
+ type: SWALLOW;
+ clip_to: "clip";
+ description { state: "default" 0.0;
+fixed: 1 0;
+rel1.relative: 1.0 0.0;
+rel1.offset: 1 0;
+rel1.to_x: "e.swallow.volume_icon";
+rel2.relative: 1.0 1.0;
+rel2.offset: 1 -1;
+rel2.to: "e.swallow.volume_icon";
+align: 0.0 0.5;
+ }
+  }
+  part { name: "event";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+rel1.to: "base";
+rel2.to: "base";
+color: 255 255 255 0;
+ }
+ description { state: "large" 0.0;
+inherit: "default" 0.0;
+rel2.to: "e.swallow.volume";
+rel2.offset: 0 0;
+ }
+  }
+  programs {
+ program {
+signal: "mouse,in";
+source: "event";
+action: ACTION_STOP;
+target: "hide_volume1";
+target: "hide_volume2";
+after: "show_volume1";
+ }
+ program {
+name: "show_volume1";
+action: STATE_SET "large" 0.0;
+target: "event";
+after: "show_volume2";
+ }
+ program {
+name: "show_volume2";
+action: STATE_SET "show" 0.0;
+transition: SIN 0.25;
+target: "clip";
+ }
+
+ program {
+name: "hide_volume";
+signal: "mouse,out";
+source: "event";
+action: ACTION_STOP;
+target: "show_volume1";
+target: "show_volume2";
+after: "hide_volume1";
+ }
+ program {
+name: "hide_volume1";
+action: STATE_SET "default" 0.0;
+transition: SIN 0.25;
+target: "clip";
+after: "hide_volume2";
+ }
+ program {
+name: "hide_volume2";
+action: STATE_SET "default" 0.0;
+target: "event";
+ }
+  }
+   }
+}
+
+
+
 group { name: "e/widgets/border/default/border";
alias: "e/widgets/border/shaped/border";
images.image: "vgrad_med_lighter.png" COMP;
@@ -97,13 +207,14 @@ group { name: "e/widgets/border/default/border";
 fill.smooth: 0;
  }
   }
+
   part { name: "e.text.title"; type: TEXT; mouse_events: 0;
  scale: 1;
  effect: SHADOW BOTTOM;
  description { state: "default" 0.0;
 rel1.relative: 1.0 0.0;
 rel1.offset: 1 3;
-rel1.to_x: "e.event.icon";
+rel1.to_x: "e.swallow.volume";
 rel2.relative: 0.0 0.0;
 rel2.offset: -2 3;
 rel2.to_x: "e.event.minimize";
@@ -128,7 +239,7 @@ group { name: "e/widgets/border/default/border";
  description { state: "default" 0.0;
 rel1.relative: 1.0 0.0;
 rel1.offset: 1 2;
-rel1.to_x: "e.event.icon";
+rel1.to_x: "e.swallow.volume";
 rel2.relative: 0.0 0.0;
 rel2.offset: -1 2;
 rel2.to_x: "e.event.minimize";
@@ -534,6 +645,21 @@ group { name: "e/widgets/border/default/border";
 

[EGIT] [core/enlightenment] master 01/06: mixer: fix the volume conversion calc into pulseaudio backend

2016-10-27 Thread yoz
yoz pushed a commit to branch master.

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

commit 1943cee080e3ebb7a41b6fd47ff3ff0ce7a4b2d7
Author: Michaël Bouchaud (yoz) 
Date:   Fri Oct 14 11:57:25 2016 +0200

mixer: fix the volume conversion calc into pulseaudio backend

a get and a set don't give the same result

@fix
---
 src/modules/mixer/lib/backends/pulseaudio/pulse.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/modules/mixer/lib/backends/pulseaudio/pulse.c 
b/src/modules/mixer/lib/backends/pulseaudio/pulse.c
index f558b5b..5d7ab71 100644
--- a/src/modules/mixer/lib/backends/pulseaudio/pulse.c
+++ b/src/modules/mixer/lib/backends/pulseaudio/pulse.c
@@ -11,11 +11,11 @@
 #define WRN(...)  EINA_LOG_WARN(__VA_ARGS__)
 
 #define PA_VOLUME_TO_INT(_vol) \
-   ((_vol * EMIX_VOLUME_BARRIER) / \
-PA_VOLUME_NORM)
+   (((_vol * EMIX_VOLUME_BARRIER) / \
+(double)PA_VOLUME_NORM) + 0.5)
 #define INT_TO_PA_VOLUME(_vol) \
-   ((PA_VOLUME_NORM * _vol) / \
-EMIX_VOLUME_BARRIER)
+   (((PA_VOLUME_NORM * _vol) / \
+(double)EMIX_VOLUME_BARRIER) + 0.5)
 
 typedef struct _Context
 {

-- 




[EGIT] [core/enlightenment] master 02/06: E_Client: add an abstraction api to control volume by app

2016-10-27 Thread yoz
yoz pushed a commit to branch master.

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

commit 06ea6cadbd9a77dc55165a18120989a9ff912067
Author: Michaël Bouchaud (yoz) 
Date:   Fri Oct 14 12:18:36 2016 +0200

E_Client: add an abstraction api to control volume by app

This api give the possibility to add sink to an E_Client and control the 
volume
or the mute state of the sinks associated with this E_Client.

@features
---
 src/bin/Makefile.mk   |   2 +
 src/bin/e_client.c|   5 ++
 src/bin/e_client.h|   8 ++
 src/bin/e_client_volume.c | 212 ++
 src/bin/e_client_volume.h |  44 ++
 src/bin/e_includes.h  |   1 +
 src/bin/e_main.c  |   3 +
 7 files changed, 275 insertions(+)

diff --git a/src/bin/Makefile.mk b/src/bin/Makefile.mk
index f199ef0..4c91854 100644
--- a/src/bin/Makefile.mk
+++ b/src/bin/Makefile.mk
@@ -72,6 +72,7 @@ src/bin/e_bg.h \
 src/bin/e_bindings.h \
 src/bin/e_bryce.h \
 src/bin/e_client.h \
+src/bin/e_client_volume.h \
 src/bin/e_client.x \
 src/bin/e_color_dialog.h  \
 src/bin/e_color.h \
@@ -243,6 +244,7 @@ src/bin/e_bindings.c \
 src/bin/e_bryce.c \
 src/bin/e_bryce_editor.c \
 src/bin/e_client.c \
+src/bin/e_client_volume.c \
 src/bin/e_color.c \
 src/bin/e_color_dialog.c \
 src/bin/e_comp.c \
diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index b2d76cb..3ed3804 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -578,6 +578,7 @@ static void
 _e_client_del(E_Client *ec)
 {
E_Client *child;
+   E_Client_Volume_Sink *sink;
 
ec->changed = 0;
focus_stack = eina_list_remove(focus_stack, ec);
@@ -661,6 +662,9 @@ _e_client_del(E_Client *ec)
 
e_comp->clients = eina_list_remove(e_comp->clients, ec);
e_comp_object_render_update_del(ec->frame);
+
+   EINA_LIST_FREE(ec->sinks, sink)
+  sink->clients = eina_list_remove(sink->clients, ec);
 }
 
 ///
@@ -5113,3 +5117,4 @@ e_client_layout_cb_set(E_Client_Layout_Cb cb)
  CRI("ATTEMPTING TO OVERWRITE EXISTING CLIENT LAYOUT HOOK!!!");
_e_client_layout_cb = cb;
 }
+
diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index 981cd57..7e6e954 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -689,6 +689,13 @@ struct E_Client
 
Eina_Stringshare *uuid;
 
+   Eina_List *sinks;
+   int volume;
+   int volume_min;
+   int volume_max;
+   unsigned char mute : 1;
+   unsigned char volume_control_enabled : 1;
+
Eina_Bool override : 1;
Eina_Bool input_only : 1;
Eina_Bool dialog : 1;
@@ -747,6 +754,7 @@ E_API extern int E_EVENT_CLIENT_FULLSCREEN;
 E_API extern int E_EVENT_CLIENT_UNFULLSCREEN;
 
 
+
 EINTERN void e_client_idler_before(void);
 EINTERN Eina_Bool e_client_init(void);
 EINTERN void e_client_shutdown(void);
diff --git a/src/bin/e_client_volume.c b/src/bin/e_client_volume.c
new file mode 100644
index 000..af68de3
--- /dev/null
+++ b/src/bin/e_client_volume.c
@@ -0,0 +1,212 @@
+#include "e.h"
+
+E_API int E_EVENT_CLIENT_VOLUME = -1;
+E_API int E_EVENT_CLIENT_MUTE = -1;
+E_API int E_EVENT_CLIENT_UNMUTE = -1;
+
+static void
+_e_client_volume_event_simple_free(void *d EINA_UNUSED, E_Event_Client *ev)
+{
+   UNREFD(ev->ec, 3);
+   e_object_unref(E_OBJECT(ev->ec));
+   free(ev);
+}
+
+static void
+_e_client_volume_event_simple(E_Client *ec, int type)
+{
+   E_Event_Client *ev;
+
+   ev = E_NEW(E_Event_Client, 1);
+   ev->ec = ec;
+   REFD(ec, 3);
+   e_object_ref(E_OBJECT(ec));
+   ecore_event_add(type, ev,
+   (Ecore_End_Cb)_e_client_volume_event_simple_free, NULL);
+}
+
+
+EINTERN int
+e_client_volume_init(void)
+{
+   E_EVENT_CLIENT_VOLUME = ecore_event_type_new();
+   E_EVENT_CLIENT_MUTE = ecore_event_type_new();
+   E_EVENT_CLIENT_UNMUTE = ecore_event_type_new();
+
+   return EINA_TRUE;
+}
+
+EINTERN void
+e_client_volume_shutdown(void)
+{
+}
+
+E_API E_Client_Volume_Sink *
+e_client_volume_sink_new(E_Client_Volume_Sink_Get func_get, 
E_Client_Volume_Sink_Set func_set, E_Client_Volume_Sink_Min_Get func_min_get, 
E_Client_Volume_Sink_Max_Get func_max_get, void *data)
+{
+   E_Client_Volume_Sink *sink;
+
+   sink = E_NEW(E_Client_Volume_Sink, 1);
+   sink->func_set = func_set;
+   sink->func_get = func_get;
+   sink->func_min_get = func_min_get;
+   sink->func_max_get = func_max_get;
+   sink->data = data;
+
+   return sink;
+}
+
+E_API void
+e_client_volume_sink_del(E_Client_Volume_Sink *sink)
+{
+   E_Client *ec;
+
+   EINA_LIST_FREE(sink->clients, ec)
+ {
+ec->sinks = eina_list_remove(ec->sinks, sink);
+ }
+   free(sink);
+}
+
+E_API void
+e_client_volume_sink_set(E_Client_Volume_Sink *sink, int volume, Eina_Bool 
mute)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sink);
+   if (sink->func_set)
+ sink->func_set(volume, mute, sink->data);
+}
+
+E_API void
+e_client_volume_sink_get(const E_Client_Volume_Sink *sink, int *volume, 
Eina_Bool *mute)

Re: [E-devel] E17 Theme Text Sizing Issue with EFL 1.18

2016-10-27 Thread Eduardo Lima (Etrunko)
Hmm, maybe it is related to the issue I reported these days, can you please
try the steps I and see what  you got?

https://phab.enlightenment.org/T4730

On Thu, Oct 27, 2016 at 11:44 AM, Jeff Hoogland 
wrote:

> Finally getting with the times and upgrading to the latest EFL in Bodhi
> since it doesn't cause hard locks with E17 anymore. I am having a much more
> minor issue with some of our themes though. Text doesn't appear to take
> space properly any more for certain objects like it did with previous EFL
> versions.
>
> Screenshot:
> https://cdn.scrot.moe/images/2016/10/27/shot-2016-10-27_13-28-32.jpg
>
> The module highlighted in the corner is the clock module. It just displays
> "..." instead of the time like it did with previous EFL versions I used it
> with.
>
> The everything launcher also displays "..." instead of the text you are
> searching for once I type more than a single character.
>
> Theme source is here -> https://github.com/JeffHoogland/MokshaForum
>
> Someone else did the bulk of work on these and I am just trying to patch
> them up as issues like this appear. Any suggestions on where to look to fix
> these text sizing issues with EFL 1.18?
>
> --
> ~Jeff Hoogland 
> My Projects on GitHub 
> 
> --
> The Command Line: Reinvented for Modern Developers
> Did the resurgence of CLI tooling catch you by surprise?
> Reconnect with the command line and become more productive.
> Learn the new .NET and ASP.NET CLI. Get your free copy!
> http://sdm.link/telerik
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>



-- 
Eduardo de Barros Lima ◤✠◢
ebl...@gmail.com
--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [tools/eflete] master 02/03: tabs.c: invoke tab_close func properly so it cleans up property part of project

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

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

commit 1bf3abd3db7b5681e7f4d06dda991470663f06de
Author: Vitalii Vorobiov 
Date:   Thu Oct 27 20:23:53 2016 +0300

tabs.c: invoke tab_close func properly so it cleans up property part of 
project

Fixes T4618
---
 src/bin/ui/tabs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/ui/tabs.c b/src/bin/ui/tabs.c
index a55276f..82a37d7 100644
--- a/src/bin/ui/tabs.c
+++ b/src/bin/ui/tabs.c
@@ -1260,7 +1260,7 @@ tabs_current_tab_close(void)
Tabs_Item *item;
 
item = elm_object_item_data_get(tabs.selected);
-   _tab_close(item, NULL, NULL, NULL);
+   _tab_close(item, item->toolbar_item, NULL, NULL);
 }
 
 void

-- 




[EGIT] [tools/eflete] master 03/03: tabs.c: do not hide Property block but clean it up instead

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

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

commit d25e49b737927731c38989389ab59757b4dfee16
Author: Vitalii Vorobiov 
Date:   Thu Oct 27 20:48:11 2016 +0300

tabs.c: do not hide Property block but clean it up instead

When all tabs are closed or home tab is clicked

Fixes T4773
---
 src/bin/ui/property/property_group.c | 14 ++
 src/bin/ui/tabs.c| 12 
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/src/bin/ui/property/property_group.c 
b/src/bin/ui/property/property_group.c
index 1469386..a4348ad 100644
--- a/src/bin/ui/property/property_group.c
+++ b/src/bin/ui/property/property_group.c
@@ -338,13 +338,19 @@ _on_group_changed(void *data,
 
assert(pd != NULL);
 
-   resource_name_validator_list_set(group_pd.part_name_validator, 
_pd.group->parts, false);
-   resource_name_validator_list_set(group_pd.group_data_name_validator, 
_pd.group->data_items, true);
-   resource_name_validator_resource_set(group_pd.part_name_validator, 
group_pd.group->current_selected);
-   resource_name_validator_resource_set(group_pd.group_data_name_validator, 
group_pd.group->current_selected);
+   /* in case if no group selected then its clean up and no groups are 
selected */
+   if (event_info)
+ {
+resource_name_validator_list_set(group_pd.part_name_validator, 
_pd.group->parts, false);
+resource_name_validator_list_set(group_pd.group_data_name_validator, 
_pd.group->data_items, true);
+resource_name_validator_resource_set(group_pd.part_name_validator, 
group_pd.group->current_selected);
+
resource_name_validator_resource_set(group_pd.group_data_name_validator, 
group_pd.group->current_selected);
+ }
 
GENLIST_FILTER_APPLY(pd->genlist);
 
+   if (!event_info) return;
+
if (!group_pd.group->current_selected) /* group_only */
  {
 DBG("selected group \"%s\"", group_pd.group ? 
group_pd.group->common.name : NULL);
diff --git a/src/bin/ui/tabs.c b/src/bin/ui/tabs.c
index 82a37d7..95b75d9 100644
--- a/src/bin/ui/tabs.c
+++ b/src/bin/ui/tabs.c
@@ -101,8 +101,10 @@ _content_set(void *data,
   {
  elm_object_part_content_set(ap.panes.left_ver, "right", 
workspace_group_navigator_get(NULL));
  elm_object_part_content_unset(ap.panes.right, "right");
- evas_object_hide(ap.property.group);
- evas_object_hide(ap.property.demo);
+ /* this case for when Property shows something selected in NORMAL 
mode */
+ evas_object_smart_callback_call(ap.win, SIGNAL_GROUP_CHANGED, 
NULL);
+ /* this case for when Property shows something selected in DEMO 
mode */
+ evas_object_smart_callback_call(ap.win, 
SIGNAL_DIFFERENT_TAB_CLICKED, NULL);
  return;
   }
 else
@@ -,8 +1113,10 @@ _tab_close(void *data,
 evas_object_hide(content);
 elm_layout_content_set(ap.panes.left_ver, "right", 
workspace_group_navigator_get(NULL));
 elm_object_part_content_unset(ap.panes.right, "right");
-evas_object_hide(ap.property.group);
-evas_object_hide(ap.property.demo);
+/* this case for when Property shows something selected in NORMAL mode 
*/
+evas_object_smart_callback_call(ap.win, SIGNAL_GROUP_CHANGED, NULL);
+/* this case for when Property shows something selected in DEMO mode */
+evas_object_smart_callback_call(ap.win, SIGNAL_DIFFERENT_TAB_CLICKED, 
NULL);
  }
 }
 

-- 




[EGIT] [tools/eflete] master 01/03: live_widget_common: use NOT that many objects inside of heavy content

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

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

commit 247fe9a13ec28031b24eac6cfc76505dd46b6a20
Author: Vitalii Vorobiov 
Date:   Thu Oct 27 20:06:35 2016 +0300

live_widget_common: use NOT that many objects inside of heavy content

Fixes T4365
---
 src/bin/ui/live_view/elementary/live_widget_common.c | 18 +-
 src/bin/ui/live_view/live_widgets.h  |  1 +
 2 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/src/bin/ui/live_view/elementary/live_widget_common.c 
b/src/bin/ui/live_view/elementary/live_widget_common.c
index bf7a3ff..9ec6f77 100644
--- a/src/bin/ui/live_view/elementary/live_widget_common.c
+++ b/src/bin/ui/live_view/elementary/live_widget_common.c
@@ -270,19 +270,11 @@ object_generate(Demo_Part *part, Evas_Object *object)
   content = elm_scroller_add(object);
   elm_scroller_policy_set(object, ELM_SCROLLER_POLICY_ON,
   ELM_SCROLLER_POLICY_ON);
-  table = elm_table_add(content);
-  for (j = 0; j < ELEMENTS_MID_COUNT; j++)
-{
-   for (i = 0; i < ELEMENTS_MID_COUNT; i++)
- {
-bt = elm_button_add(table);
-elm_object_text_set(bt, _("User Text"));
-elm_table_pack(table, bt, i, j, 1, 1);
-evas_object_show(bt);
- }
-}
-  elm_object_content_set(content, table);
-  evas_object_show(table);
+  bt = evas_object_rectangle_add(object);
+  evas_object_size_hint_min_set(bt, ELEMENT_BIG_SIZE, 
ELEMENT_BIG_SIZE);
+  evas_object_color_set(bt, 0, 0, 0, 0);
+  elm_object_content_set(content, bt);
+  evas_object_show(bt);
   break;
case WIDGET_TOOLBAR:
   content = elm_toolbar_add(object);
diff --git a/src/bin/ui/live_view/live_widgets.h 
b/src/bin/ui/live_view/live_widgets.h
index d12f4fb..d55e303 100644
--- a/src/bin/ui/live_view/live_widgets.h
+++ b/src/bin/ui/live_view/live_widgets.h
@@ -44,6 +44,7 @@
 #define ELEMENTS_SMALL_COUNT 5
 #define ELEMENTS_MID_COUNT   25
 #define ELEMENTS_BIG_COUNT   50
+#define ELEMENT_BIG_SIZE 2000
 
 typedef void (* Swallow_Clean_Func)(const char *, Evas_Object *);
 

-- 




[EGIT] [core/efl] master 02/08: docs: ecore_con: document missing structs

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

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

commit 72f456ee82d5bfcbb5bbb56c8a247804897c4481
Author: Stefan Schmidt 
Date:   Thu Oct 27 16:43:42 2016 +0200

docs: ecore_con: document missing structs
---
 src/lib/ecore_con/ecore_con_eet_base.eo   | 4 ++--
 src/lib/ecore_con/efl_net_dialer_websocket.eo | 4 ++--
 src/lib/ecore_con/efl_net_http_types.eot  | 2 +-
 src/lib/ecore_con/efl_network.eo  | 1 +
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/lib/ecore_con/ecore_con_eet_base.eo 
b/src/lib/ecore_con/ecore_con_eet_base.eo
index 250a785..1b28ef9 100644
--- a/src/lib/ecore_con/ecore_con_eet_base.eo
+++ b/src/lib/ecore_con/ecore_con_eet_base.eo
@@ -3,8 +3,8 @@ import efl_network_server;
 type @extern Ecore_Con_Eet_Data_Cb: __undefined_type; /* FIXME: function 
pointers not supported. */
 type @extern Ecore_Con_Eet_Raw_Data_Cb: __undefined_type; /* FIXME: function 
pointers not supported. */
 
-struct @extern Eet.Data.Descriptor;
-struct Ecore.Con.Reply;
+struct @extern Eet.Data.Descriptor; [[Eet data descriptor data structure]]
+struct Ecore.Con.Reply; [[Ecore connection reply data structure]]
 
 class Ecore.Con.Eet.Base (Efl.Object) {
[[Ecore Connection Eet Base class.
diff --git a/src/lib/ecore_con/efl_net_dialer_websocket.eo 
b/src/lib/ecore_con/efl_net_dialer_websocket.eo
index 914a29f..7dafbd9 100644
--- a/src/lib/ecore_con/efl_net_dialer_websocket.eo
+++ b/src/lib/ecore_con/efl_net_dialer_websocket.eo
@@ -43,8 +43,8 @@ struct Efl.Net.Dialer.Websocket.Closed_Reason {
 
   @since 1.19
 ]]
-reason: Efl.Net.Dialer.Websocket.Close_Reason;
-message: string;
+reason: Efl.Net.Dialer.Websocket.Close_Reason; [[Closing reason]]
+message: string; [[Textual closing reason message]]
 }
 
 class Efl.Net.Dialer.Websocket (Efl.Loop_User, Efl.Net.Dialer) {
diff --git a/src/lib/ecore_con/efl_net_http_types.eot 
b/src/lib/ecore_con/efl_net_http_types.eot
index 328f59d..f2e5aaa 100644
--- a/src/lib/ecore_con/efl_net_http_types.eot
+++ b/src/lib/ecore_con/efl_net_http_types.eot
@@ -123,7 +123,7 @@ struct Efl.Net.Http.Header {
   described in the value "HTTP/1.1 200 Ok".
 ]]
 key: string; [[for response headers this may be null to indicate a new 
request response, then the value will be a line such as 'HTTP/1.1 200 Ok']]
-value: string;
+value: string; [[Header value]]
 }
 
 var Efl.Net.Http.Error.BAD_CONTENT_ENCODING: Eina.Error; [[HTTP error: bad 
content encoding]]
diff --git a/src/lib/ecore_con/efl_network.eo b/src/lib/ecore_con/efl_network.eo
index 88140b1..0d4ec34 100644
--- a/src/lib/ecore_con/efl_network.eo
+++ b/src/lib/ecore_con/efl_network.eo
@@ -184,6 +184,7 @@ abstract Efl.Network (Efl.Object) {
 
 /* FIXME: Should actually be a binbuf. */
 struct Ecore.Con.Event_Data.Received {
+[[Ecore connection event data received data structure]]
 data: void_ptr; [[The data that got sent.]]
 size: int; [[The length of the data sent.]]
 }

-- 




[EGIT] [core/efl] master 06/08: docs: eio: document missing structs

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

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

commit 0fd32899ec7eae7a5a0e11ee0f8f694867aa90e2
Author: Stefan Schmidt 
Date:   Thu Oct 27 16:51:42 2016 +0200

docs: eio: document missing structs
---
 src/lib/eio/efl_io_manager.eo | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/eio/efl_io_manager.eo b/src/lib/eio/efl_io_manager.eo
index 05304c2..0b0724c 100644
--- a/src/lib/eio/efl_io_manager.eo
+++ b/src/lib/eio/efl_io_manager.eo
@@ -3,8 +3,8 @@ import eina_types;
 struct Eio.Data
 {
   [[A structure to handle arbitrary data to be sent over Promises.]]
-  data: void_ptr;
-  size: uint;
+  data: void_ptr; [[Private data pointer]]
+  size: uint; [[Size of private data]]
 }
 
 class Efl.Io.Manager (Efl.Loop_User)

-- 




[EGIT] [core/efl] master 04/08: docs: evas: document missing structs

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

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

commit 21f935c39c90b2f86287359b1c0e71858053c9c8
Author: Stefan Schmidt 
Date:   Thu Oct 27 16:48:36 2016 +0200

docs: evas: document missing structs
---
 src/lib/evas/canvas/efl_canvas_text.eo | 2 +-
 src/lib/evas/canvas/evas_textgrid.eo   | 2 +-
 src/lib/evas/canvas/evas_types.eot | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/lib/evas/canvas/efl_canvas_text.eo 
b/src/lib/evas/canvas/efl_canvas_text.eo
index 4e5dca4..18d90f9 100644
--- a/src/lib/evas/canvas/efl_canvas_text.eo
+++ b/src/lib/evas/canvas/efl_canvas_text.eo
@@ -1,4 +1,4 @@
-struct Efl.Canvas.Text.Style;
+struct Efl.Canvas.Text.Style; [[EFL text style data structure]]
 
 class Efl.Canvas.Text (Efl.Canvas.Object, Efl.Text)
 {
diff --git a/src/lib/evas/canvas/evas_textgrid.eo 
b/src/lib/evas/canvas/evas_textgrid.eo
index 170e880..974fd17 100644
--- a/src/lib/evas/canvas/evas_textgrid.eo
+++ b/src/lib/evas/canvas/evas_textgrid.eo
@@ -18,7 +18,7 @@ enum Evas.Textgrid.Font_Style {
 }
 
 /* XXX: Actual definition is in C. */
-struct Evas.Textgrid.Cell;
+struct Evas.Textgrid.Cell; [[Evas textgrid cell data structure]]
 
 class Evas.Textgrid (Efl.Canvas.Object, Efl.Text.Properties)
 {
diff --git a/src/lib/evas/canvas/evas_types.eot 
b/src/lib/evas/canvas/evas_types.eot
index ba1abdd..6b97bd5 100644
--- a/src/lib/evas/canvas/evas_types.eot
+++ b/src/lib/evas/canvas/evas_types.eot
@@ -1,5 +1,5 @@
 type @extern Evas.Load_Error: int; /* FIXME: Need to migrate emile. */
-struct @extern Evas.Video_Surface; /* FIXME: The structure is full of the 
unsupported func pointers. */
+struct @extern Evas.Video_Surface; [[Evas video surface data structure]]  /* 
FIXME: The structure is full of the unsupported func pointers. */
 
 type Evas.Modifier_Mask: ullong;  [[An Evas modifier mask type]]
 type Evas.Coord: int; [[A type for coordinates]]
@@ -450,4 +450,4 @@ enum Evas.Canvas3D.Material_Attrib
 
 type Evas.Canvas3D.Surface_Func: __undefined_type;
 
-struct Efl.Canvas.Text.Annotation;
+struct Efl.Canvas.Text.Annotation; [[EFL text annotations data structure]]

-- 




[EGIT] [core/efl] master 03/08: docs: elm: document missing structs

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

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

commit 89de3ddd770ca1ab68868fee9746cec014220091
Author: Stefan Schmidt 
Date:   Thu Oct 27 16:45:19 2016 +0200

docs: elm: document missing structs
---
 src/lib/elementary/efl_ui_box_flow.eo  |  8 
 src/lib/elementary/efl_ui_image.eo |  8 
 src/lib/elementary/efl_ui_text.eo  | 13 -
 src/lib/elementary/elm_code_widget.eo  |  4 ++--
 src/lib/elementary/elm_general.eot |  1 +
 src/lib/elementary/elm_toolbar_item.eo | 10 +-
 6 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/src/lib/elementary/efl_ui_box_flow.eo 
b/src/lib/elementary/efl_ui_box_flow.eo
index 6deefe4..7ea9f43 100644
--- a/src/lib/elementary/efl_ui_box_flow.eo
+++ b/src/lib/elementary/efl_ui_box_flow.eo
@@ -1,7 +1,7 @@
 struct Efl.Ui.Box.Flow_Params {
[[Extra parameters for Box_Flow layout. Can be omitted.]]
-   homogenous: bool;
-   max_size: bool;
+   homogenous: bool; [[$true if the box flow layout is homogenous, $false 
otherwise]]
+   max_size: bool; [[$true if the box flow layout has the maximal size, $false 
otherwise]]
 }
 
 class Efl.Ui.Box.Flow (Efl.Ui.Box, Efl.Pack.Layout)
@@ -12,14 +12,14 @@ class Efl.Ui.Box.Flow (Efl.Ui.Box, Efl.Pack.Layout)
  set {}
  get {}
  values {
-val: bool;
+val: bool; [[$true if the box flow layout is homogenous, $false 
otherwise]]
  }
   }
   @property box_flow_max_size {
  set {}
  get {}
  values {
-val: bool;
+val: bool; [[$true if the box flow layout has the maximal size, 
$false otherwise]]
  }
   }
}
diff --git a/src/lib/elementary/efl_ui_image.eo 
b/src/lib/elementary/efl_ui_image.eo
index 8bdf134..ac52194 100644
--- a/src/lib/elementary/efl_ui_image.eo
+++ b/src/lib/elementary/efl_ui_image.eo
@@ -28,8 +28,8 @@ struct Efl.Ui.Image.Progress
  Structure associated with smart callback 'download,progress'.
  @since 1.8
]]
-   now:   double;
-   total: double;
+   now:   double; [[Current percentage]]
+   total: double; [[Total percentage]]
 }
 
 struct Efl.Ui.Image.Error
@@ -38,8 +38,8 @@ struct Efl.Ui.Image.Error
  Structure associated with smart callback 'download,progress'.
  @since 1.8
]]
-   status: int;
-   open_error: bool;
+   status: int; [[Error status of the download]]
+   open_error: bool; [[$true if the error happened when opening the file, 
$false otherwise]]
 }
 
 class Efl.Ui.Image (Elm.Widget, Efl.Ui.Clickable, Efl.Ui.Draggable,
diff --git a/src/lib/elementary/efl_ui_text.eo 
b/src/lib/elementary/efl_ui_text.eo
index 8fe5833..e71948c 100644
--- a/src/lib/elementary/efl_ui_text.eo
+++ b/src/lib/elementary/efl_ui_text.eo
@@ -4,6 +4,7 @@ import elm_entry;
 
 struct Efl.Ui.Text.Anchor_Info
 {
+   [[EFL UI text anchor information]]
name: string; [[The name of the anchor, as stated in its href.]]
button: int; [[The mouse button used to click on it.]]
x: Evas.Coord; [[Anchor geometry, relative to canvas.]]
@@ -14,17 +15,19 @@ struct Efl.Ui.Text.Anchor_Info
 
 struct Efl.Ui.Text.Hover_Parent
 {
-   x: Evas.Coord;
-   y: Evas.Coord;
-   w: Evas.Coord;
-   h: Evas.Coord;
+   [[EFL text hover parent]]
+   x: Evas.Coord; [[Hover parent X coordinate]]
+   y: Evas.Coord; [[Hover parent Y coordinate]]
+   w: Evas.Coord; [[Hover parent width]]
+   h: Evas.Coord; [[Hover parent height]]
 }
 
 struct Efl.Ui.Text.Anchor_Hover_Info
 {
+   [[EFL text anchor hover information]]
anchor_info: const(Efl.Ui.Text.Anchor_Info)*; [[The actual anchor info.]]
hover: Elm.Hover; [[The hover object to use for the popup.]]
-   hover_parent: Efl.Ui.Text.Hover_Parent;
+   hover_parent: Efl.Ui.Text.Hover_Parent; [[Hover parent widget]]
hover_left : bool; [[Hint indicating if there's space
  for content on the left side of
  the hover. Before calling the
diff --git a/src/lib/elementary/elm_code_widget.eo 
b/src/lib/elementary/elm_code_widget.eo
index b23a073..08d09bb 100644
--- a/src/lib/elementary/elm_code_widget.eo
+++ b/src/lib/elementary/elm_code_widget.eo
@@ -3,8 +3,8 @@ import edje_types;
 import elm_interface_scrollable;
 import elm_general;
 
-struct @extern Elm_Code; /* The main interface currently defined in code */
-struct @extern Elm_Code_Line; /* Parts of the interface currently defined in 
code */
+struct @extern Elm_Code; [[Elementary code main data structure]] /* The main 
interface currently defined in code */
+struct @extern Elm_Code_Line; [[Elementary code line data structure]] /* Parts 
of the interface currently defined in code */
 
 class Elm.Code_Widget (Elm.Layout, Elm.Interface.Atspi.Text)
 {
diff --git a/src/lib/elementary/elm_general.eot 
b/src/lib/elementary/elm_general.eot
index 5598732..5e2fb0d 100644
--- a/src/lib/elementary/elm_general.eot
+++ 

[EGIT] [core/efl] master 08/08: examples: ecore: add ecore_evas_vnc example binary to .gitignore

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

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

commit c3d1cb9116e9943712032a5f7ebc0a208bf51ff5
Author: Stefan Schmidt 
Date:   Thu Oct 27 16:53:17 2016 +0200

examples: ecore: add ecore_evas_vnc example binary to .gitignore
---
 src/examples/ecore/.gitignore | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/examples/ecore/.gitignore b/src/examples/ecore/.gitignore
index fd2d749..0568bce 100644
--- a/src/examples/ecore/.gitignore
+++ b/src/examples/ecore/.gitignore
@@ -56,3 +56,4 @@
 /efl_net_dialer_websocket_autobahntestee
 /efl_net_dialer_udp_example
 /efl_net_dialer_unix_example
+/ecore_evas_vnc

-- 




[EGIT] [core/efl] master 01/08: docs: ecore: document missing structs

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

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

commit b889beb0fc22a588425828b1e86940ab15a01217
Author: Stefan Schmidt 
Date:   Thu Oct 27 16:43:11 2016 +0200

docs: ecore: document missing structs
---
 src/lib/ecore/ecore_exe.eo | 1 +
 src/lib/ecore/efl_loop.eo  | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore/ecore_exe.eo b/src/lib/ecore/ecore_exe.eo
index 6d7fab1..18e6502 100644
--- a/src/lib/ecore/ecore_exe.eo
+++ b/src/lib/ecore/ecore_exe.eo
@@ -13,6 +13,7 @@ struct Ecore.Exe.Event_Data.Line
  */
 struct Ecore.Exe.Event_Data
 {
+   [[Ecore exe event data structure]]
exe: Efl.Object;  [[The handle to the process. FIXME: should actually be 
Ecore.Exe, workaround cyclic]]
data: void_ptr; [[the raw binary data from the child process that was 
received]]
size: int; [[the size of this data in bytes]]
diff --git a/src/lib/ecore/efl_loop.eo b/src/lib/ecore/efl_loop.eo
index 2cd3e24..2ea90f2 100644
--- a/src/lib/ecore/efl_loop.eo
+++ b/src/lib/ecore/efl_loop.eo
@@ -1,7 +1,8 @@
 import efl_types;
 
 struct Efl.Loop.Arguments {
-   argv: const(array);
+   [[EFL loop arguments data structure]]
+   argv: const(array); [[Array with loop arguments]]
initialization: bool; [[Set to $true when the program should initialize its 
internal state. This happen once per process instance.]]
 }
 

-- 




[EGIT] [core/efl] master 07/08: docs: eo: document last missing structs

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

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

commit a41fe1bea69ec42908d73a3815f3fdfb233756eb
Author: Stefan Schmidt 
Date:   Thu Oct 27 16:52:00 2016 +0200

docs: eo: document last missing structs

With this commits we reach 100% eo docs coverage for structs.
---
 src/lib/eo/eina_types.eot | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/lib/eo/eina_types.eot b/src/lib/eo/eina_types.eot
index 99c61af..fcc0c81 100644
--- a/src/lib/eo/eina_types.eot
+++ b/src/lib/eo/eina_types.eot
@@ -6,7 +6,8 @@ struct @extern Eina.Rectangle {
 w: int; [[Width of the rectangle]]
 h: int; [[Height of the rectangle]]
 }
-struct @extern Eina.File;
+
+struct @extern Eina.File; [[Eina file data structure]]
 
 struct @extern Eina.Matrix3 {
[[Eina 3x3 Matrix]]
@@ -23,11 +24,11 @@ struct @extern Eina.Matrix3 {
zz: double; [[ZZ matrix value]]
 }
 
-struct @extern Eina.Inarray;
+struct @extern Eina.Inarray; [[Eina inarray data structure]]
 
 type @extern Eina.Unicode: uint32;
 
-struct @extern Eina.File.Direct.Info;
+struct @extern Eina.File.Direct.Info; [[Eina file direct information data 
structure]]
 /*{
path_lenght:size_t;  [[Size of the whole path]]
name_length:size_t;  [[Size of the filename/basename 
component]]
@@ -45,7 +46,7 @@ enum @extern Eina.Xattr.Flags {
 
 type @extern Eina.Error: int;
 
-struct @extern @free(eina_binbuf_free) Eina.Binbuf;
+struct @extern @free(eina_binbuf_free) Eina.Binbuf; [[Eina binbuf data 
structure]]
 
 struct @extern Eina.Slice {
 [[A linear, read-only, memory segment]]

-- 




[EGIT] [core/efl] master 05/08: docs: efl: document missing structs

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

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

commit 72dbf4a60aab857be424764978de932a0f1329d0
Author: Stefan Schmidt 
Date:   Thu Oct 27 16:49:05 2016 +0200

docs: efl: document missing structs
---
 src/lib/efl/interfaces/efl_animator.eo | 1 +
 src/lib/efl/interfaces/efl_model.eo| 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/lib/efl/interfaces/efl_animator.eo 
b/src/lib/efl/interfaces/efl_animator.eo
index f451f8a..4eea0af 100644
--- a/src/lib/efl/interfaces/efl_animator.eo
+++ b/src/lib/efl/interfaces/efl_animator.eo
@@ -1,6 +1,7 @@
 import eina_types;
 
 struct Efl.Event.Animator_Tick {
+   [[EFL event animator tick data structure]]
update_area: Eina.Rectangle; [[Area of the canvas that will be pushed to 
screen.]]
 }
 
diff --git a/src/lib/efl/interfaces/efl_model.eo 
b/src/lib/efl/interfaces/efl_model.eo
index 688e927..546e690 100644
--- a/src/lib/efl/interfaces/efl_model.eo
+++ b/src/lib/efl/interfaces/efl_model.eo
@@ -1,4 +1,5 @@
 struct Efl.Model.Property_Event {
+ [[EFL model property event data structure]]
  changed_properties: array; [[List of changed properties]]
  invalidated_properties: array; [[Removed properties identified by 
name]]
 }

-- 




Re: [E-devel] [EGIT] [core/efl] master 02/02: efl_io_copier: work around efl_future weirdness.

2016-10-27 Thread Cedric BAIL
On Oct 26, 2016 6:19 PM, "Gustavo Sverzut Barbieri" 
wrote:
>
> barbieri pushed a commit to branch master.
>
>
http://git.enlightenment.org/core/efl.git/commit/?id=574e4b8ad56b0cced409417f76e90205fb28fe22
>
> commit 574e4b8ad56b0cced409417f76e90205fb28fe22
> Author: Gustavo Sverzut Barbieri 
> Date:   Wed Oct 26 23:17:10 2016 -0200
>
> efl_io_copier: work around efl_future weirdness.
>
> The pointer given to efl_future_use() should be NULL-ified before
> calling my function, since that pointer has no meaning anymore.
>
> The copier relied on pd->job being NULL to avoid useless rescheduling,
> it was being reached with non-null, but that pointer is no longer
> useful.
>
> Moreover, I'm not sure if the second pointer, with the new future
> won't be modified to NULL when the efl_future continues :-(

Yes, this is a problem I am well aware off.due to the use of eo for future,
weak ref are nulled only after the future is destroyed. But the real
correct behavior is to have it nulled as soon as it is fulfilled before
even calling any callback, because weak ref are to be used by cancel only.
They shouldn't exist when cancel can't be called anymore. I intend to fix
this when I move future away from eo.

> ---
>  src/lib/ecore/efl_io_copier.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/src/lib/ecore/efl_io_copier.c b/src/lib/ecore/efl_io_copier.c
> index ab5314a..0b2667c 100644
> --- a/src/lib/ecore/efl_io_copier.c
> +++ b/src/lib/ecore/efl_io_copier.c
> @@ -98,6 +98,8 @@ _efl_io_copier_job(void *data, const Efl_Event *ev
EINA_UNUSED)
> uint64_t old_total = pd->progress.total;
>
> _COPIER_DBG(o, pd);
> +   pd->job = NULL; /* XXX TODO this should be NULL-ified by efl_promise
before calling this function */
> +
> efl_ref(o);
>
> if (pd->source && efl_io_reader_can_read_get(pd->source))
>
> --
>
>
--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/enlightenment] master 03/05: Revert "update secondary remembers when a session recovery remember is updated"

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

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

commit 6b7631d20469dde649bf393dacbb47395cdb2811
Author: Mike Blumenkrantz 
Date:   Thu Oct 27 10:34:27 2016 -0400

Revert "update secondary remembers when a session recovery remember is 
updated"

This reverts commit 10eb06b377b966f9d6797fd262b14c6a6b7c7567.
---
 src/bin/e_remember.c | 5 -
 1 file changed, 5 deletions(-)

diff --git a/src/bin/e_remember.c b/src/bin/e_remember.c
index 2190354..081bff2 100644
--- a/src/bin/e_remember.c
+++ b/src/bin/e_remember.c
@@ -669,11 +669,6 @@ e_remember_update(E_Client *ec)
if (!ec->remember) return;
if (ec->remember->keep_settings) return;
_e_remember_update(ec, ec->remember);
-   if (ec->remember->apply & E_REMEMBER_APPLY_UUID)
- {
-E_Remember *rem = e_remember_find_usable(ec);
-if (rem) _e_remember_update(ec, rem);
- }
e_config_save_queue();
 }
 

-- 




[EGIT] [core/enlightenment] master 02/05: Revert "only find the session recovery remember if ec->remember is not it"

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

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

commit b640872edfeb713bb0d61b945b70f4b1ba6629f1
Author: Mike Blumenkrantz 
Date:   Thu Oct 27 10:34:14 2016 -0400

Revert "only find the session recovery remember if ec->remember is not it"

This reverts commit 8e6188933651408f1822b1c5c9ef2cce8e19709f.
---
 src/bin/e_remember.c | 14 --
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/src/bin/e_remember.c b/src/bin/e_remember.c
index 6f5b60a..2190354 100644
--- a/src/bin/e_remember.c
+++ b/src/bin/e_remember.c
@@ -867,17 +867,11 @@ _e_remember_find(E_Client *ec, int check_usable)
 if ((check_usable) && (!e_remember_usable_get(rem)))
   continue;
 
-if (ec->uuid)
+if (!eina_streq(rem->uuid, ec->uuid)) continue;
+if (rem->uuid)
   {
- if ((!ec->remember) || (!(ec->remember->apply & 
E_REMEMBER_APPLY_UUID)))
-   {
-  if (!eina_streq(rem->uuid, ec->uuid)) continue;
-  if (rem->uuid)
-{
-   if (rem->pid != ec->netwm.pid) continue;
-   return rem;
-}
-   }
+ if (rem->pid != ec->netwm.pid) continue;
+ return rem;
   }
 
 if (ec->netwm.name) title = ec->netwm.name;

-- 




[EGIT] [core/enlightenment] master 01/05: Revert "correctly handle applying of non-SR remember in remember config"

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

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

commit 98bc594299c0b2a3e56b143acaf2dfa4a6218518
Author: Mike Blumenkrantz 
Date:   Thu Oct 27 10:34:05 2016 -0400

Revert "correctly handle applying of non-SR remember in remember config"

This reverts commit 62068912e95600ab5db60cc616acc4c5fb89b8cd.
---
 src/bin/e_int_client_remember.c | 17 +
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/bin/e_int_client_remember.c b/src/bin/e_int_client_remember.c
index f87a74a..5a63a30 100644
--- a/src/bin/e_int_client_remember.c
+++ b/src/bin/e_int_client_remember.c
@@ -418,10 +418,7 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata
 {
/* Actually take our cfdata settings and apply them in real life */
E_Client *ec = cfdata->client;
-   E_Remember *rem = ec->remember;
-
-   if (rem && (rem->apply & E_REMEMBER_APPLY_UUID))
- rem = cfdata->backup_rem;
+   E_Remember *rem = cfdata->backup_rem ?: ec->remember;
 
if (cfdata->mode == MODE_NOTHING)
  {
@@ -437,10 +434,14 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata
if (!rem)
  {
 rem = e_remember_new();
-if (!rem) return 0;
-cfdata->applied = 0;
-if (ec->remember && (ec->remember->apply & E_REMEMBER_APPLY_UUID))
-  cfdata->backup_rem = rem;
+if (rem)
+  {
+ if ((!ec->remember) || (!(ec->remember->apply & 
E_REMEMBER_APPLY_UUID)))
+   ec->remember = rem;
+ cfdata->applied = 0;
+  }
+else
+  return 0;
  }
 
e_remember_default_match_set(rem, cfdata->client);

-- 




[EGIT] [core/enlightenment] master 04/05: Revert "prevent editing of session recovery remembers"

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

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

commit 653e671bf52fe1832ad45214067a65df93321b2c
Author: Mike Blumenkrantz 
Date:   Thu Oct 27 10:35:01 2016 -0400

Revert "prevent editing of session recovery remembers"

This reverts commit 890008cdf2357be069e7cff44e3b030c7e67f2aa.
---
 src/bin/e_int_client_remember.c | 28 ++--
 1 file changed, 10 insertions(+), 18 deletions(-)

diff --git a/src/bin/e_int_client_remember.c b/src/bin/e_int_client_remember.c
index 5a63a30..3de6000 100644
--- a/src/bin/e_int_client_remember.c
+++ b/src/bin/e_int_client_remember.c
@@ -23,7 +23,6 @@ struct _E_Config_Dialog_Data
 {
E_Client *client;
E_Remember *rem;
-   E_Remember *backup_rem;
/*- BASIC -*/
int   mode;
int   warned;
@@ -142,9 +141,6 @@ _fill_data(E_Config_Dialog_Data *cfdata)
else
  rem = cfdata->rem;
 
-   if (ec && rem && (rem->apply & E_REMEMBER_APPLY_UUID))
- cfdata->backup_rem = rem = e_remember_find_usable(ec);
-
if (rem)
  {
 if (rem->name && rem->name[0])
@@ -320,11 +316,10 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata)
 
if (cfdata->client)
  {
-E_Remember *rem = cfdata->backup_rem ?: cfdata->client->remember;
-if (!cfdata->applied && rem)
+if (!cfdata->applied && cfdata->client->remember)
   {
- e_remember_unuse(rem);
- e_remember_del(rem);
+ e_remember_unuse(cfdata->client->remember);
+ e_remember_del(cfdata->client->remember);
  e_config_save_queue();
   }
 
@@ -418,7 +413,7 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata
 {
/* Actually take our cfdata settings and apply them in real life */
E_Client *ec = cfdata->client;
-   E_Remember *rem = cfdata->backup_rem ?: ec->remember;
+   E_Remember *rem = ec->remember;
 
if (cfdata->mode == MODE_NOTHING)
  {
@@ -426,8 +421,8 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata
   {
  e_remember_unuse(rem);
  e_remember_del(rem);
- e_config_save_queue();
   }
+e_config_save_queue();
 return 1;
  }
 
@@ -436,8 +431,7 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata
 rem = e_remember_new();
 if (rem)
   {
- if ((!ec->remember) || (!(ec->remember->apply & 
E_REMEMBER_APPLY_UUID)))
-   ec->remember = rem;
+ ec->remember = rem;
  cfdata->applied = 0;
   }
 else
@@ -456,8 +450,7 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata
rem->apply = cfdata->mode;
rem->apply_first_only = 0;
 
-   if (ec->remember == rem)
- e_remember_use(rem);
+   e_remember_use(rem);
e_remember_update(ec);
cfdata->applied = 1;
e_config_save_queue();
@@ -470,7 +463,7 @@ _advanced_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfd
E_Client *ec = cfdata->client;
E_Remember *rem;
 
-   if (ec) rem = cfdata->backup_rem ?: ec->remember;
+   if (ec) rem = ec->remember;
else rem = cfdata->rem;
 
if (!rem)
@@ -631,9 +624,8 @@ _advanced_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfd
  {
 _check_matches(rem, 1);
 rem->keep_settings = 0;
-if ((!ec->remember) || (!(ec->remember->apply & 
E_REMEMBER_APPLY_UUID)))
-  ec->remember = rem;
-e_remember_update(ec);
+cfdata->client->remember = rem;
+e_remember_update(cfdata->client);
 cfdata->applied = 1;
  }
rem->keep_settings = cfdata->remember.keep_settings;

-- 




[EGIT] [core/enlightenment] master 05/05: redo session recovery handling to use separate E_Remember

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

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

commit f43489113746ee1b6c566e853f276419e49b3691
Author: Mike Blumenkrantz 
Date:   Thu Oct 27 11:22:27 2016 -0400

redo session recovery handling to use separate E_Remember

I tried to be too clever with the initial implementation of this and it was
a lot more complex and nonfunctional than expected
---
 src/bin/e_client.h |  1 +
 src/bin/e_comp_wl_extensions.c | 42 +-
 src/bin/e_remember.c   | 31 ---
 src/bin/e_remember.h   |  1 +
 4 files changed, 43 insertions(+), 32 deletions(-)

diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index 1508e27..981cd57 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -671,6 +671,7 @@ struct E_Client
Ecore_Timer   *raise_timer;
E_Client_Move_Intercept_Cb move_intercept_cb;
E_Remember*remember;
+   E_Remember*sr_remember;
 
Efreet_Desktop*desktop;
E_Exec_Instance   *exe_inst;
diff --git a/src/bin/e_comp_wl_extensions.c b/src/bin/e_comp_wl_extensions.c
index fb5b18f..ea9833d 100644
--- a/src/bin/e_comp_wl_extensions.c
+++ b/src/bin/e_comp_wl_extensions.c
@@ -38,18 +38,15 @@ _e_comp_wl_session_recovery_get_uuid(struct wl_client 
*client EINA_UNUSED, struc
uuid_generate(u);
uuid_unparse_lower(u, uuid);
zwp_e_session_recovery_send_create_uuid(resource, surface, uuid);
-   if (ec->remember)
- e_remember_unuse(ec->remember);
-   else
+   if (ec->sr_remember)
  {
-ec->remember = e_remember_find_usable(ec);
-if (ec->remember)
-  e_remember_apply(ec->remember, ec);
+e_remember_unuse(ec->sr_remember);
+e_remember_del(ec->sr_remember);
  }
eina_stringshare_replace(>uuid, uuid);
-   ec->remember = e_remember_new();
-   e_remember_use(ec->remember);
-   ec->remember->apply = E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE | 
E_REMEMBER_APPLY_DESKTOP |
+   ec->sr_remember = e_remember_new();
+   e_remember_use(ec->sr_remember);
+   ec->sr_remember->apply = E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE | 
E_REMEMBER_APPLY_DESKTOP |
  E_REMEMBER_APPLY_LAYER | E_REMEMBER_APPLY_ZONE | 
E_REMEMBER_APPLY_UUID;
e_remember_update(ec);
 }
@@ -64,11 +61,14 @@ _e_comp_wl_session_recovery_set_uuid(struct wl_client 
*client EINA_UNUSED, struc
if (e_object_is_del(E_OBJECT(ec))) return;
if (ec->internal || ec->uuid) return; //FIXME: error
eina_stringshare_replace(>uuid, uuid);
-   rem = e_remember_find_usable(ec);
-   if ((!rem) || (rem == ec->remember)) return;
-   if (ec->remember)
- e_remember_unuse(ec->remember);
-   ec->remember = rem;
+   rem = e_remember_sr_find(ec);
+   if ((!rem) || (rem == ec->sr_remember)) return;
+   if (ec->sr_remember)
+ {
+e_remember_unuse(ec->sr_remember);
+e_remember_del(ec->sr_remember);
+ }
+   ec->sr_remember = rem;
e_remember_use(rem);
e_remember_apply(rem, ec);
ec->re_manage = 1;
@@ -82,15 +82,15 @@ _e_comp_wl_session_recovery_destroy_uuid(struct wl_client 
*client EINA_UNUSED, s
ec = wl_resource_get_user_data(surface);
if (!eina_streq(ec->uuid, uuid)) return; //FIXME: error
eina_stringshare_replace(>uuid, NULL);
-   if (ec->remember)
+   if (ec->sr_remember)
  {
-e_remember_unuse(ec->remember);
-e_remember_del(ec->remember);
+e_remember_unuse(ec->sr_remember);
+e_remember_del(ec->sr_remember);
  }
-   ec->remember = e_remember_find_usable(ec);
-   if (!ec->remember) return;
-   e_remember_use(ec->remember);
-   e_remember_apply(ec->remember, ec);
+   ec->sr_remember = e_remember_sr_find(ec);
+   if (!ec->sr_remember) return;
+   e_remember_use(ec->sr_remember);
+   e_remember_apply(ec->sr_remember, ec);
 }
 
 static void
diff --git a/src/bin/e_remember.c b/src/bin/e_remember.c
index 081bff2..409348b 100644
--- a/src/bin/e_remember.c
+++ b/src/bin/e_remember.c
@@ -16,7 +16,7 @@ struct _E_Remember_List
 /* local subsystem functions */
 static void_e_remember_free(E_Remember *rem);
 static void_e_remember_update(E_Client *ec, E_Remember *rem);
-static E_Remember *_e_remember_find(E_Client *ec, int check_usable);
+static E_Remember *_e_remember_find(E_Client *ec, int check_usable, Eina_Bool 
sr);
 static void_e_remember_cb_hook_pre_post_fetch(void *data, E_Client 
*ec);
 static void_e_remember_cb_hook_eval_post_new_client(void *data, 
E_Client *ec);
 static void_e_remember_init_edd(void);
@@ -562,7 +562,7 @@ e_remember_find_usable(E_Client *ec)
 {
E_Remember *rem;
 
-   rem = _e_remember_find(ec, 1);
+   rem = _e_remember_find(ec, 1, 0);
return rem;
 }
 
@@ -571,10 +571,16 @@ e_remember_find(E_Client *ec)
 {
E_Remember *rem;
 
-   rem = 

[EGIT] [tools/eflete] master 01/01: property_demo: use correct program's action description

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

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

commit 9551e8d28c595f6d06af2ab7bc4565c135a22f7d
Author: Vitalii Vorobiov 
Date:   Thu Oct 27 16:41:45 2016 +0300

property_demo: use correct program's action description

Fixes T4606
---
 src/bin/ui/property/property_demo.c | 34 +-
 1 file changed, 25 insertions(+), 9 deletions(-)

diff --git a/src/bin/ui/property/property_demo.c 
b/src/bin/ui/property/property_demo.c
index 84d1d52..7dd4936 100644
--- a/src/bin/ui/property/property_demo.c
+++ b/src/bin/ui/property/property_demo.c
@@ -49,17 +49,33 @@ typedef struct _Property_Demo_Update_Info 
Property_Demo_Update_Info;
 
 static const char *program_actions[] = {
  "NONE",
- "STATE SET",
- "SIGNAL EMIT",
- "DRAG VALUE SET",
- "DRAG VALUE STEP",
- "DRAG VALUE PAGE",
- "PLAY SAMPLE",
- "PLAY TONE",
- "ACTION STOP",
- NULL
+ "STATE_SET",
+ "ACTION_STOP",
+ "SIGNAL_EMIT",
+ "DRAG_VAL_SET",
+ "DRAG_VAL_STEP",
+ "DRAG_VAL_PAGE",
+ "SCRIPT",
+ "FOCUS_SET",
+ "[NOT SUPPORTED] RESERVED00",
+ "FOCUS_OBJECT",
+ "[NOT SUPPORTED] PARAM_COPY",
+ "[NOT SUPPORTED] PARAM_SET",
+ "SOUND_SAMPLE",
+ "SOUND_TONE",
+ "[NOT SUPPORTED] PHYSICS_IMPULSE",
+ "[NOT SUPPORTED] PHYSICS_TORQUE_IMPULSE",
+ "[NOT SUPPORTED] PHYSICS_FORCE",
+ "[NOT SUPPORTED] PHYSICS_TORQUE",
+ "[NOT SUPPORTED] PHYSICS_FORCES_CLEAR",
+ "[NOT SUPPORTED] PHYSICS_VEL_SET",
+ "[NOT SUPPORTED] PHYSICS_ANG_VEL_SET",
+ "[NOT SUPPORTED] PHYSICS_STOP",
+ "[NOT SUPPORTED] PHYSICS_ROT_SET",
+ "[NOT SUPPORTED] VIBRATION_SAMPLE"
 };
 
+
 static const char *swallow_content_type[] = {
  "None",
  "Rectangle",

-- 




[E-devel] E17 Theme Text Sizing Issue with EFL 1.18

2016-10-27 Thread Jeff Hoogland
Finally getting with the times and upgrading to the latest EFL in Bodhi
since it doesn't cause hard locks with E17 anymore. I am having a much more
minor issue with some of our themes though. Text doesn't appear to take
space properly any more for certain objects like it did with previous EFL
versions.

Screenshot:
https://cdn.scrot.moe/images/2016/10/27/shot-2016-10-27_13-28-32.jpg

The module highlighted in the corner is the clock module. It just displays
"..." instead of the time like it did with previous EFL versions I used it
with.

The everything launcher also displays "..." instead of the text you are
searching for once I type more than a single character.

Theme source is here -> https://github.com/JeffHoogland/MokshaForum

Someone else did the bulk of work on these and I am just trying to patch
them up as issues like this appear. Any suggestions on where to look to fix
these text sizing issues with EFL 1.18?

-- 
~Jeff Hoogland 
My Projects on GitHub 
--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] eina_log and threads

2016-10-27 Thread Jean Guyomarc'h
Hi,

I like the env var method (1) very much.
It will be much more convenient than recompiling everything, but I
think it should be left disabled by default. I'm afraid logs would
become a bit cryptic with the TID information.

Best regards,
Jean


On Thu, Oct 27, 2016 at 1:16 PM, Gustavo Sverzut Barbieri
 wrote:
> Hi all,
>
> eina_log has a feature to print the thread that generated the log as
> in "[T:XX]" prefix, which is handy during development or debug.
>
> But that is off by default and the only way to enable is using
> eina_log_threads_enable() call.
>
> So:
>
>  1) could we make that an envvar to enable/disable it?
>
>  2) could we default to TRUE if no envvar was used?
>
>
> --
> Gustavo Sverzut Barbieri
> --
> Mobile: +55 (16) 99354-9890
>
> --
> The Command Line: Reinvented for Modern Developers
> Did the resurgence of CLI tooling catch you by surprise?
> Reconnect with the command line and become more productive.
> Learn the new .NET and ASP.NET CLI. Get your free copy!
> http://sdm.link/telerik
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] RFC: Removal of draw_frame (ecore_evas)

2016-10-27 Thread Christopher Michael
On 10/27/2016 01:13 AM, Jean-Philippe André wrote:
> On 27 October 2016 at 14:01, Jean-Philippe André  wrote:
>
>> Hi,
>>
>> Wayland devs in particular.
>>
>>
>> An old and most likely unused feature in wayland shm/egl is the ability to
>> draw a window frame with a simple title bar and some borders. This works
>> when using ecore_evas directly and not elm_win.
>>
>> I see a few problems with it:
>> 1. It's absolutely ugly (no theme, not pretty visually)
>> 2. The code requires some if() here and there and some hardoded values
>> 3. The EAPI to set the draw_frame flag can not work as the flag is checked
>> at creation time
>>
>
> Oh btw if you wonder what it looks like, here's a screenshot:
>
> http://i.imgur.com/6DBmDqw.png
>
> Would anyone mind if I got completely rid of this feature?
>>
>> The patch is ready at:
>> https://git.enlightenment.org/core/efl.git/commit/?h=devs/jpeg/work=
>> c5be09cd99b71d1a2b390446ffee5c1b325992a7
>>
>

I don't see a problem with removing this tbh. Yes, they are simple 
(hence why they are ugly lol).

dh



--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: eina: documment envvars at eina_init().

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

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

commit 2f2bb1fc45ae1f01783f45f820706a903312977d
Author: Gustavo Sverzut Barbieri 
Date:   Thu Oct 27 10:31:29 2016 -0200

eina: documment envvars at eina_init().

following my commit for ecore_init(), do that for eina_init() as well,
sometimes it's hard to find the vars and their meaning without looking
at the code.
---
 src/lib/eina/eina_main.h | 92 
 1 file changed, 92 insertions(+)

diff --git a/src/lib/eina/eina_main.h b/src/lib/eina/eina_main.h
index d7a7f0b..9905ebf 100644
--- a/src/lib/eina/eina_main.h
+++ b/src/lib/eina/eina_main.h
@@ -80,6 +80,98 @@ EAPI extern Eina_Version *eina_version;
  *
  * When Eina is not used anymore, call eina_shutdown() to shut down
  * the Eina library.
+ *
+ * This function is affected by the following environment variables.
+ *
+ * Logging environment variables:
+ *
+ *  @li @c EINA_LOG_ABORT=1 will cause abort(3) if @c
+ *  EINA_LOG_ABORT_LEVEL, which defaults to 0 (critical), is
+ *  reached.
+ *
+ *  @li @c EINA_LOG_ABORT_LEVEL=LEVEL, where level is an integer such
+ *  as 0 (critical) to 4 (debug). This will cause any messages at
+ *  that level or less (ie: if 4, then messages at level 0 also
+ *  apply) to abort(3) the application if @c EINA_LOG_ABORT=1 was
+ *  defined.
+ *
+ *  @li @c EINA_LOG_BACKTRACE=LEVEL, where level is an integer such as
+ *  0 (critical) to 4 (debug). This will cause any messages at
+ *  that level or less (ie: if 4, then messages at level 0 also
+ *  apply) to dump a backtrace. Note that if systemd-journal is
+ *  used, it's going to the journal as well.
+ *
+ *  @li @c EINA_LOG_COLOR_DISABLE=[0|1] if @c 1 it will disable color
+ *  in log output. If it's @c 0, it will keep colors. By default
+ *  it will use colors if it's a TTY, disabling colors if it's
+ *  printing to a file.
+ *
+ *  @li @c EINA_LOG_FILE_DISABLE=[0|1] if @c 1 it will disable showing
+ *  the source file name and line that generated the message. If
+ *  @c 0, the default, it will show the source file and line.
+ *
+ *  @li @c EINA_LOG_FUNCTION_DISABLE=[0|1] if @c 1 it will disable
+ *  showing the source function name that generated the
+ *  message. If @c 0, the default, it will show the function name.
+ *
+ *  @li @c EINA_LOG_LEVEL=LEVEL, where level is an integer such as 0
+ *  (critical) to 4 (debug), where the number is the the highest
+ *  level to print, that is, using level=4 will lead to messages
+ *  of level 1, 2 and 3 to be displayed as well, but not level
+ *  5. This will control all log domains at once and has lower
+ *  priority than @c EINA_LOG_LEVELS, that defines per-domain.
+ *
+ *  @li @c EINA_LOG_LEVELS=DOMAIN1:LEVEL1,DOMAIN2:LEVEL2 is a comma
+ *  separated list of tuples of DOMAIN and LEVEL values separated
+ *  by a colon. Level is an integer such as 0 (critical) to 4
+ *  (debug), where the number is the the highest level to print,
+ *  that is, using level=4 will lead to messages of level 1, 2 and
+ *  3 to be displayed as well, but not level 5. This offers fine
+ *  grained control, allowing a single domain to be printed at
+ *  debug (4) while keeping others at error (1) only. For instance
+ *  @c EINA_LOG_LEVELS=eina:2,eina_binshare:4 will change eina's
+ *  general purpose logging domain to warning (2) while will make
+ *  the specific eina_binshare debug (4).
+ *
+ *  @li @c EINA_LOG_LEVELS_GLOB=PATTERN1:LEVEL1,PATTERN2:LEVEL2 is a
+ *  comma separated list of tuples of domain PATTERN and LEVEL
+ *  values separated by a colon. PATTERN is a fnmatch(3) pattern
+ *  that will try to match the domain name. Level is an integer
+ *  such as 0 (critical) to 4 (debug), where the number is the the
+ *  highest level to print, that is, using level=4 will lead to
+ *  messages of level 1, 2 and 3 to be displayed as well, but not
+ *  level 5. This offers fine grained control, allowing a single
+ *  domain to be printed at debug (4) while keeping others at
+ *  error (1) only. For instance @c EINA_LOG_LEVELS_GLOB=eina*:4
+ *  will change all domain names starting with "eina", such as
+ *  "eina" (general purpose log domain) and "eina_binshare".
+ *
+ * Memory allocator environment variables:
+ *
+ *  @li @c EINA_MEMPOOL=mempool_allocator will choose another memory
+ *  allocator to use. Commonly this is given @c pass_through as
+ *  the @c mempool_allocator to allow valgrind and other tools to
+ *  debug it more easily.
+ *
+ *  @li @c EINA_MEMPOOL_PASS=1 has the almost the same effect of @c
+ *  EINA_MEMPOOL=pass_through, but if pass_through allocator
+ *  wasn't built, it will use the original allocator.
+ *
+ *  @li @c 

[EGIT] [tools/eflete] master 02/02: popup: make assert not agressive

2016-10-27 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

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

commit f168d25b56a064cc2dcd205cbfc78780102a44db
Author: Vyacheslav Reutskiy 
Date:   Thu Oct 27 14:15:23 2016 +0300

popup: make assert not agressive

Change-Id: I1a4f32465cae55ae244d4893c2af1afbb0bee7b8
---
 src/bin/ui/popup.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/ui/popup.c b/src/bin/ui/popup.c
index 06a0c80..5bb0032 100644
--- a/src/bin/ui/popup.c
+++ b/src/bin/ui/popup.c
@@ -111,12 +111,13 @@ _button_add(Popup_Data *pd, int *btn_pos, const char 
*text, Popup_Button pb)
 
assert(pd != NULL);
assert(btn_pos != NULL);
-   assert(*btn_pos < 3); /* maximum buttons count */
assert(text != NULL);
 
if (pb == BTN_NONE)
  return NULL;
 
+   assert(*btn_pos < 3); /* maximum buttons count */
+
BUTTON_ADD(pd->popup, btn, text);
evas_object_data_set(btn, POPUP_DATA, pd);
evas_object_smart_callback_add(btn, signals.elm.button.clicked, 
_popup_btn_cb, (void *)pb);

-- 




[EGIT] [tools/eflete] master 01/02: popup: remove unused enum value

2016-10-27 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

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

commit a34fb79e4ebed2d062d6dc301b716abd98493456
Author: Vyacheslav Reutskiy 
Date:   Thu Oct 27 13:38:03 2016 +0300

popup: remove unused enum value

Change-Id: I649b0396a9f66d659efb23aab588c0cbb2255965
---
 src/bin/ui/main_window.h | 3 +--
 src/bin/ui/popup.c   | 6 +-
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/src/bin/ui/main_window.h b/src/bin/ui/main_window.h
index 5dd57ee..ea893b8 100644
--- a/src/bin/ui/main_window.h
+++ b/src/bin/ui/main_window.h
@@ -147,8 +147,7 @@ typedef enum _Popup_Button
BTN_SAVE   = (1 << 2),
BTN_DONT_SAVE  = (1 << 3),
BTN_REPLACE= (1 << 4),
-   BTN_APPEND = (1 << 5),
-   BTN_RESET  = (1 << 6)
+   BTN_RESET  = (1 << 5)
 } Popup_Button;
 
 typedef enum _Popup_Current
diff --git a/src/bin/ui/popup.c b/src/bin/ui/popup.c
index f666d2f..06a0c80 100644
--- a/src/bin/ui/popup.c
+++ b/src/bin/ui/popup.c
@@ -149,11 +149,10 @@ popup_add(const char *title,
int bt_num = 0;
pd->button.ok= _button_add(pd, _num, _("Ok"), popup_btns 
& BTN_OK);
pd->button.save  = _button_add(pd, _num, _("Save"),   popup_btns 
& BTN_SAVE);
-   pd->button.append= _button_add(pd, _num, _("Append"), popup_btns 
& BTN_APPEND);
pd->button.replace   = _button_add(pd, _num, _("Replace"),popup_btns 
& BTN_REPLACE);
pd->button.dont_save = _button_add(pd, _num, _("Don't save"), popup_btns 
& BTN_DONT_SAVE);
pd->button.cancel= _button_add(pd, _num, _("Cancel"), popup_btns 
& BTN_CANCEL);
-   pd->button.reset= _button_add(pd, _num, _("Reset"), popup_btns & 
BTN_RESET);
+   pd->button.reset = _button_add(pd, _num, _("Reset"),  popup_btns 
& BTN_RESET);
 
if (msg)
  elm_object_text_set(pd->popup, msg);
@@ -190,9 +189,6 @@ popup_button_disabled_set(Evas_Object *popup, Popup_Button 
btn, Eina_Bool disabl
   case BTN_SAVE:
  elm_object_disabled_set(pd->button.save, disabled);
  break;
-  case BTN_APPEND:
- elm_object_disabled_set(pd->button.append, disabled);
- break;
   case BTN_REPLACE:
  elm_object_disabled_set(pd->button.replace, disabled);
  break;

-- 




[EGIT] [core/efl] master 01/01: ecore_init() use getenv(ECORE_NO_SYSTEM_MODULES) and disable those.

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

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

commit 564e499467aef67073a2eb9eeccc75bb73e59d99
Author: Gustavo Sverzut Barbieri 
Date:   Thu Oct 27 09:30:31 2016 -0200

ecore_init() use getenv(ECORE_NO_SYSTEM_MODULES) and disable those.

Sometimes during debug of efl_net we get some "extra" sockets from
DBus to talk to upower, localed, timedated... which are helpful in
real life, but pollutes debugging.

Since I don't want to contaminate examples with
ecore_app_no_system_modules(), which could lead users to naively copy
those and end without the system modules features, add an envvar that
I can define in my tests when I need them.
---
 src/lib/ecore/Ecore_Common.h | 19 +++
 src/lib/ecore/ecore.c|  9 -
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore/Ecore_Common.h b/src/lib/ecore/Ecore_Common.h
index 7b6b377..a95087f 100644
--- a/src/lib/ecore/Ecore_Common.h
+++ b/src/lib/ecore/Ecore_Common.h
@@ -34,6 +34,22 @@ extern "C" {
  *   ecore_shutdown();
  * }
  * @endcode
+ *
+ * This function is affected by some environment variables:
+ *
+ *  @li @c ECORE_NO_SYSTEM_MODULES=1 may be used to temporarily
+ *  disable system modules, often useful for debug.
+ *
+ *  @li @c ECORE_FPS_DEBUG=1 prints frames per second, usefult to
+ *  detect lags and blocking calls.
+ *
+ *  @li @c ECORE_MEM_STAT=1 will generate @c ecore_mem_stat.${PID}
+ *  file with memory statistics.
+ *
+ *  @li @c ECORE_ERROR_ABORT=1 will abort on errors.
+ *
+ * This function will call eina_init(), so other environment variables
+ * may apply.
  */
 EAPI int ecore_init(void);
 
@@ -2499,6 +2515,9 @@ EAPI void ecore_app_restart(void);
  * This may be useful to some command-line utilities, hardly will be
  * useful for end-user applications.
  *
+ * The environment variable ECORE_NO_SYSTEM_MODULES=1 may be used
+ * to temporarily disable system modules, often useful for debug.
+ *
  * @since 1.8
  */
 EAPI void ecore_app_no_system_modules(void);
diff --git a/src/lib/ecore/ecore.c b/src/lib/ecore/ecore.c
index 6cca015..07a1304 100644
--- a/src/lib/ecore/ecore.c
+++ b/src/lib/ecore/ecore.c
@@ -57,7 +57,7 @@ static FILE *_ecore_memory_statistic_file = NULL;
 #endif
 #endif
 
-static Eina_Bool _no_system_modules = EINA_FALSE;
+static Eina_Bool _no_system_modules = 0xff;
 
 static const char *_ecore_magic_string_get(Ecore_Magic m);
 static int _ecore_init_count = 0;
@@ -308,6 +308,13 @@ ecore_init(void)
  }
 #endif
 
+   if (_no_system_modules == 0xff)
+ {
+const char *s = getenv("ECORE_NO_SYSTEM_MODULES");
+if (s) _no_system_modules = atoi(s);
+else _no_system_modules = EINA_FALSE;
+ }
+
if (!_no_system_modules)
  ecore_system_modules_load();
 

-- 




Re: [E-devel] [EGIT] [core/efl] master 02/02: elementary: split up the build options from the main header

2016-10-27 Thread marcel-hollerbach
While doing this, i noticed that there is ELM_EMAP, which is statically
disabled. What is this? And is it still needed?

Greetings
   bu5hm4n

On Thu, Oct 27, 2016 at 04:27:51AM -0700, Marcel Hollerbach wrote:
> bu5hm4n pushed a commit to branch master.
> 
> http://git.enlightenment.org/core/efl.git/commit/?id=d896e3efc542c66a651c1ba0e84f3d692981b89c
> 
> commit d896e3efc542c66a651c1ba0e84f3d692981b89c
> Author: Marcel Hollerbach 
> Date:   Thu Oct 27 12:49:55 2016 +0200
> 
> elementary: split up the build options from the main header
> 
> This splits up the definitions from the buildtool into a seperated file
> called Elementary_Options.h.
> Reason for that is, that every single time when someone adds or changes
> something in Elementary.h.in you need to rerun configure, to get the new
> up to date Elementary.h file. With this commit you have a static none
> generated Elementary.h file and the Elementary_Options.h file, which
> will be regenerated when platform things are changing.
> 
> The version of elementary is now defined as the version of efl, since
> they are always the same. So we dont need to generate a seperated
> version field.
> ---
>  configure.ac   |  2 +-
>  src/Makefile_Elementary.am |  3 ++-
>  src/lib/elementary/.gitignore  |  2 +-
>  .../elementary/{Elementary.h.in => Elementary.h}   | 22 
> +-
>  src/lib/elementary/Elementary_Options.h.in | 20 
>  5 files changed, 29 insertions(+), 20 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index d90b516..1a85080 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -5790,7 +5790,7 @@ src/examples/elementary/Makefile
>  src/lib/eina/eina_config.h
>  src/lib/ecore_x/ecore_x_version.h
>  src/lib/efl/Efl_Config.h
> -src/lib/elementary/Elementary.h
> +src/lib/elementary/Elementary_Options.h
>  src/scripts/eo/eo_debug
>  elm_intro.h
>  spec/efl.spec
> diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
> index 44d344c..fec21c2 100644
> --- a/src/Makefile_Elementary.am
> +++ b/src/Makefile_Elementary.am
> @@ -188,6 +188,7 @@ lib_LTLIBRARIES += lib/elementary/libelementary.la
>  
>  includes_HEADERS = \
>  lib/elementary/Elementary.h \
> +lib/elementary/Elementary_Options.h \
>  lib/elementary/Elementary_Cursor.h
>  includesdir = $(includedir)/elementary-@VMAJ@
>  
> @@ -1359,7 +1360,7 @@ endif
>  EXTRA_DIST2 += \
>  tests/elementary/elm_suite.h \
>  tests/elementary/elm_test_helper.h \
> -lib/elementary/Elementary.h.in \
> +lib/elementary/Elementary_Options.h.in \
>  lib/elementary/elm_code_widget_text.c \
>  lib/elementary/elm_code_widget_undo.c
>  
> diff --git a/src/lib/elementary/.gitignore b/src/lib/elementary/.gitignore
> index 0015d39..089c32d 100644
> --- a/src/lib/elementary/.gitignore
> +++ b/src/lib/elementary/.gitignore
> @@ -1,5 +1,5 @@
> -/Elementary.h
>  /Elementary.hh
> +/Elementary_Options.h
>  /elm_intro.h
>  /*.eo.c
>  /*.eo.h
> diff --git a/src/lib/elementary/Elementary.h.in 
> b/src/lib/elementary/Elementary.h
> similarity index 93%
> rename from src/lib/elementary/Elementary.h.in
> rename to src/lib/elementary/Elementary.h
> index 9438641..9de8202 100644
> --- a/src/lib/elementary/Elementary.h.in
> +++ b/src/lib/elementary/Elementary.h
> @@ -7,21 +7,8 @@
>  #ifndef ELEMENTARY_H
>  #define ELEMENTARY_H
>  
> -#define ELM_ELDBUS
> -#define ELM_EFREET
> -#define ELM_ETHUMB
> -
> -@ELM_UNIX_DEF@ ELM_UNIX
> -@ELM_WIN32_DEF@ ELM_WIN32
> -#undef ELM_EMAP
> -@ELM_DEBUG_DEF@ ELM_DEBUG
> -@ELM_ALLOCA_H_DEF@ ELM_ALLOCA_H
> -@ELM_LIBINTL_H_DEF@ ELM_LIBINTL_H
> -@ELM_DIRENT_H_DEF@ ELM_DIRENT_H
> -
> -#ifdef EFL_BETA_API_SUPPORT
> -# define ELM_ELOCATION
> -#endif
> +/* Options which can be enabled or disabled by the buildtool */
> +#include "Elementary_Options.h"
>  
>  /* Standard headers for standard system calls etc. */
>  #include 
> @@ -83,6 +70,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  
>  #ifdef ELM_ELOCATION
>  #include 
> @@ -135,8 +123,8 @@ extern "C"
>  #include 
>  #include 
>  
> -#define ELM_VERSION_MAJOR @EFL_VERSION_MAJOR@
> -#define ELM_VERSION_MINOR @EFL_VERSION_MINOR@
> +#define ELM_VERSION_MAJOR EFL_VERSION_MAJOR
> +#define ELM_VERSION_MINOR EFL_VERSION_MINOR
>  
>  typedef struct _Elm_Version
>  {
> diff --git a/src/lib/elementary/Elementary_Options.h.in 
> b/src/lib/elementary/Elementary_Options.h.in
> new file mode 100644
> index 000..a52444d
> --- /dev/null
> +++ b/src/lib/elementary/Elementary_Options.h.in
> @@ -0,0 +1,20 @@
> +#ifndef ELEMENTARY_OPTIONS_H
> +#define ELEMENTARY_OPTIONS_H
> +
> +#define ELM_ELDBUS
> +#define ELM_EFREET
> +#define ELM_ETHUMB
> +
> +@ELM_UNIX_DEF@ ELM_UNIX
> +@ELM_WIN32_DEF@ ELM_WIN32
> +#undef ELM_EMAP
> +@ELM_DEBUG_DEF@ ELM_DEBUG
> +@ELM_ALLOCA_H_DEF@ ELM_ALLOCA_H
> +@ELM_LIBINTL_H_DEF@ ELM_LIBINTL_H
> +@ELM_DIRENT_H_DEF@ 

[EGIT] [core/efl] master 02/02: elementary: split up the build options from the main header

2016-10-27 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit d896e3efc542c66a651c1ba0e84f3d692981b89c
Author: Marcel Hollerbach 
Date:   Thu Oct 27 12:49:55 2016 +0200

elementary: split up the build options from the main header

This splits up the definitions from the buildtool into a seperated file
called Elementary_Options.h.
Reason for that is, that every single time when someone adds or changes
something in Elementary.h.in you need to rerun configure, to get the new
up to date Elementary.h file. With this commit you have a static none
generated Elementary.h file and the Elementary_Options.h file, which
will be regenerated when platform things are changing.

The version of elementary is now defined as the version of efl, since
they are always the same. So we dont need to generate a seperated
version field.
---
 configure.ac   |  2 +-
 src/Makefile_Elementary.am |  3 ++-
 src/lib/elementary/.gitignore  |  2 +-
 .../elementary/{Elementary.h.in => Elementary.h}   | 22 +-
 src/lib/elementary/Elementary_Options.h.in | 20 
 5 files changed, 29 insertions(+), 20 deletions(-)

diff --git a/configure.ac b/configure.ac
index d90b516..1a85080 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5790,7 +5790,7 @@ src/examples/elementary/Makefile
 src/lib/eina/eina_config.h
 src/lib/ecore_x/ecore_x_version.h
 src/lib/efl/Efl_Config.h
-src/lib/elementary/Elementary.h
+src/lib/elementary/Elementary_Options.h
 src/scripts/eo/eo_debug
 elm_intro.h
 spec/efl.spec
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index 44d344c..fec21c2 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -188,6 +188,7 @@ lib_LTLIBRARIES += lib/elementary/libelementary.la
 
 includes_HEADERS = \
 lib/elementary/Elementary.h \
+lib/elementary/Elementary_Options.h \
 lib/elementary/Elementary_Cursor.h
 includesdir = $(includedir)/elementary-@VMAJ@
 
@@ -1359,7 +1360,7 @@ endif
 EXTRA_DIST2 += \
 tests/elementary/elm_suite.h \
 tests/elementary/elm_test_helper.h \
-lib/elementary/Elementary.h.in \
+lib/elementary/Elementary_Options.h.in \
 lib/elementary/elm_code_widget_text.c \
 lib/elementary/elm_code_widget_undo.c
 
diff --git a/src/lib/elementary/.gitignore b/src/lib/elementary/.gitignore
index 0015d39..089c32d 100644
--- a/src/lib/elementary/.gitignore
+++ b/src/lib/elementary/.gitignore
@@ -1,5 +1,5 @@
-/Elementary.h
 /Elementary.hh
+/Elementary_Options.h
 /elm_intro.h
 /*.eo.c
 /*.eo.h
diff --git a/src/lib/elementary/Elementary.h.in 
b/src/lib/elementary/Elementary.h
similarity index 93%
rename from src/lib/elementary/Elementary.h.in
rename to src/lib/elementary/Elementary.h
index 9438641..9de8202 100644
--- a/src/lib/elementary/Elementary.h.in
+++ b/src/lib/elementary/Elementary.h
@@ -7,21 +7,8 @@
 #ifndef ELEMENTARY_H
 #define ELEMENTARY_H
 
-#define ELM_ELDBUS
-#define ELM_EFREET
-#define ELM_ETHUMB
-
-@ELM_UNIX_DEF@ ELM_UNIX
-@ELM_WIN32_DEF@ ELM_WIN32
-#undef ELM_EMAP
-@ELM_DEBUG_DEF@ ELM_DEBUG
-@ELM_ALLOCA_H_DEF@ ELM_ALLOCA_H
-@ELM_LIBINTL_H_DEF@ ELM_LIBINTL_H
-@ELM_DIRENT_H_DEF@ ELM_DIRENT_H
-
-#ifdef EFL_BETA_API_SUPPORT
-# define ELM_ELOCATION
-#endif
+/* Options which can be enabled or disabled by the buildtool */
+#include "Elementary_Options.h"
 
 /* Standard headers for standard system calls etc. */
 #include 
@@ -83,6 +70,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #ifdef ELM_ELOCATION
 #include 
@@ -135,8 +123,8 @@ extern "C"
 #include 
 #include 
 
-#define ELM_VERSION_MAJOR @EFL_VERSION_MAJOR@
-#define ELM_VERSION_MINOR @EFL_VERSION_MINOR@
+#define ELM_VERSION_MAJOR EFL_VERSION_MAJOR
+#define ELM_VERSION_MINOR EFL_VERSION_MINOR
 
 typedef struct _Elm_Version
 {
diff --git a/src/lib/elementary/Elementary_Options.h.in 
b/src/lib/elementary/Elementary_Options.h.in
new file mode 100644
index 000..a52444d
--- /dev/null
+++ b/src/lib/elementary/Elementary_Options.h.in
@@ -0,0 +1,20 @@
+#ifndef ELEMENTARY_OPTIONS_H
+#define ELEMENTARY_OPTIONS_H
+
+#define ELM_ELDBUS
+#define ELM_EFREET
+#define ELM_ETHUMB
+
+@ELM_UNIX_DEF@ ELM_UNIX
+@ELM_WIN32_DEF@ ELM_WIN32
+#undef ELM_EMAP
+@ELM_DEBUG_DEF@ ELM_DEBUG
+@ELM_ALLOCA_H_DEF@ ELM_ALLOCA_H
+@ELM_LIBINTL_H_DEF@ ELM_LIBINTL_H
+@ELM_DIRENT_H_DEF@ ELM_DIRENT_H
+
+#ifdef EFL_BETA_API_SUPPORT
+# define ELM_ELOCATION
+#endif
+
+#endif

-- 




[EGIT] [core/efl] master 01/02: elm_multibuttonentry: Apply focus UI feature for the item.

2016-10-27 Thread Woochan Lee
bu5hm4n pushed a commit to branch master.

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

commit 986264c55670da521ee960bea7adb7cfddf686cc
Author: Woochan Lee 
Date:   Thu Oct 27 11:44:44 2016 +0200

elm_multibuttonentry: Apply focus UI feature for the item.

Summary:
It was not implemented.

Add focus_direct to give the internal box for focus UI feature.
- Item will be deleted when got a focus highlighted then user press delete 
button.
- Focus UI will not work if MBE shrunk.

@feature

Test Plan:
Run elementary_test.
multibuttonentry sample.

Reviewers: woohyun, Hermet, bu5hm4n

Subscribers: bu5hm4n, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4360
---
 src/lib/elementary/elc_multibuttonentry.c  | 43 +++---
 src/lib/elementary/elm_multibuttonentry.eo |  1 +
 2 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/src/lib/elementary/elc_multibuttonentry.c 
b/src/lib/elementary/elc_multibuttonentry.c
index 472b71e..45773ab 100644
--- a/src/lib/elementary/elc_multibuttonentry.c
+++ b/src/lib/elementary/elc_multibuttonentry.c
@@ -45,6 +45,9 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
{NULL, NULL}
 };
 
+static Eina_Bool _elm_multibuttonentry_smart_focus_next_enable = EINA_FALSE;
+static Eina_Bool _elm_multibuttonentry_smart_focus_direction_enable = 
EINA_TRUE;
+
 static void _entry_changed_cb(void *data, const Efl_Event *event);
 static void _entry_focus_in_cb(void *data, const Efl_Event *event);
 static void _entry_focus_out_cb(void *data, const Efl_Event *event);
@@ -301,6 +304,11 @@ _shrink_mode_set(Evas_Object *obj,
   (obj, ELM_MULTIBUTTONENTRY_EVENT_EXPAND_STATE_CHANGED, (void 
*)(uintptr_t)sd->shrink);
  }
 
+   if (sd->view_state == MULTIBUTTONENTRY_VIEW_SHRINK)
+ _elm_multibuttonentry_smart_focus_direction_enable = EINA_FALSE;
+   else
+ _elm_multibuttonentry_smart_focus_direction_enable = EINA_TRUE;
+
if (sd->view_state != MULTIBUTTONENTRY_VIEW_SHRINK)
  _visual_guide_text_set(obj);
 }
@@ -538,13 +546,27 @@ _on_item_deleted(void *data,
 }
 
 static void
+_on_item_focused(void *data,
+ Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+   Elm_Multibuttonentry_Item_Data *it = data;
+   ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(WIDGET(it), sd);
+
+   if (!it) return;
+   sd->selected_it = it;
+}
+
+static void
 _on_item_unfocused(void *data,
Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
 {
Elm_Multibuttonentry_Item_Data *it = data;
+   ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(WIDGET(it), sd);
 
if (!it) return;
+   sd->selected_it = NULL;
elm_layout_signal_emit(VIEW(it), "elm,state,unfocused", "elm");
 }
 
@@ -768,6 +790,8 @@ _item_new(Elm_Multibuttonentry_Data *sd,
elm_layout_signal_callback_add
  (VIEW(item), "elm,deleted", "elm", _on_item_deleted, EO_OBJ(item));
evas_object_smart_callback_add
+ (VIEW(item), "focused", _on_item_focused, item);
+   evas_object_smart_callback_add
  (VIEW(item), "unfocused", _on_item_unfocused, item);
evas_object_event_callback_add
   (VIEW(item),
@@ -1602,12 +1626,25 @@ _elm_multibuttonentry_efl_canvas_group_group_del(Eo 
*obj, Elm_Multibuttonentry_D
efl_canvas_group_del(efl_super(obj, MY_CLASS));
 }
 
-static Eina_Bool _elm_multibuttonentry_smart_focus_next_enable = EINA_FALSE;
-
 EOLIAN static Eina_Bool
 _elm_multibuttonentry_elm_widget_focus_direction_manager_is(Eo *obj 
EINA_UNUSED, Elm_Multibuttonentry_Data *sd EINA_UNUSED)
 {
-   return EINA_FALSE;
+   return _elm_multibuttonentry_smart_focus_direction_enable;
+}
+
+EOLIAN static Eina_Bool
+_elm_multibuttonentry_elm_widget_focus_direction(Eo *obj EINA_UNUSED, 
Elm_Multibuttonentry_Data *sd, const Evas_Object *base, double degree, 
Evas_Object **direction, Elm_Object_Item **direction_item, double *weight)
+{
+   Eina_Bool ret;
+   Eina_List *items = NULL;
+
+   items = eina_list_append(items, sd->box);
+
+   ret = elm_widget_focus_list_direction_get
+  (obj, base, items, eina_list_data_get, degree, direction, 
direction_item, weight);
+   eina_list_free(items);
+
+   return ret;
 }
 
 EOLIAN static Eina_Bool
diff --git a/src/lib/elementary/elm_multibuttonentry.eo 
b/src/lib/elementary/elm_multibuttonentry.eo
index d99662b..61492e9 100644
--- a/src/lib/elementary/elm_multibuttonentry.eo
+++ b/src/lib/elementary/elm_multibuttonentry.eo
@@ -182,6 +182,7 @@ class Elm.Multibuttonentry (Elm.Layout)
   Elm.Widget.focus_next_manager_is;
   Elm.Widget.focus_direction_manager_is;
   Elm.Widget.access;
+  Elm.Widget.focus_direction;
   Elm.Widget.focus_next;
   Elm.Widget.on_focus;
   Elm.Widget.translate;

-- 




[E-devel] eina_log and threads

2016-10-27 Thread Gustavo Sverzut Barbieri
Hi all,

eina_log has a feature to print the thread that generated the log as
in "[T:XX]" prefix, which is handy during development or debug.

But that is off by default and the only way to enable is using
eina_log_threads_enable() call.

So:

 1) could we make that an envvar to enable/disable it?

 2) could we default to TRUE if no envvar was used?


-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890

--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: UNIX socket doesn't exist on Windows.

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

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

commit 48fb9e72df77b11c76256eb640e55f6ed07679c6
Author: Gustavo Sverzut Barbieri 
Date:   Thu Oct 27 09:01:19 2016 -0200

UNIX socket doesn't exist on Windows.

thanks to vtorri & Kuri to spot that one.
---
 src/lib/ecore_con/ecore_con.c | 4 
 src/lib/ecore_con/ecore_con_private.h | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c
index 9bc3388..0e2086a 100644
--- a/src/lib/ecore_con/ecore_con.c
+++ b/src/lib/ecore_con/ecore_con.c
@@ -3026,6 +3026,7 @@ _ecore_con_lookup_done(void *data,
 #include "efl_network_server.eo.c"
 #include "efl_network_connector.eo.c"
 
+#ifndef _WIN32
 Eina_Bool
 efl_net_unix_fmt(char *buf, size_t buflen, SOCKET fd, const struct sockaddr_un 
*addr, socklen_t addrlen)
 {
@@ -3078,6 +3079,7 @@ efl_net_unix_fmt(char *buf, size_t buflen, SOCKET fd, 
const struct sockaddr_un *
buf[pathlen] = '\0';
return EINA_TRUE;
 }
+#endif
 
 Eina_Bool
 efl_net_ip_port_fmt(char *buf, size_t buflen, const struct sockaddr *addr)
@@ -3373,9 +3375,11 @@ _efl_net_connect_async_run(void *data, Ecore_Thread 
*thread EINA_UNUSED)
 
if (eina_log_domain_level_check(_ecore_con_log_dom, EINA_LOG_LEVEL_DBG))
  {
+#ifndef _WIN32
 if (d->addr->sa_family == AF_UNIX)
   efl_net_unix_fmt(buf, sizeof(buf), d->sockfd, (const struct 
sockaddr_un *)d->addr, d->addrlen);
 else
+#endif
   efl_net_ip_port_fmt(buf, sizeof(buf), d->addr);
  }
 
diff --git a/src/lib/ecore_con/ecore_con_private.h 
b/src/lib/ecore_con/ecore_con_private.h
index ef78f96..a7cd143 100644
--- a/src/lib/ecore_con/ecore_con_private.h
+++ b/src/lib/ecore_con/ecore_con_private.h
@@ -402,7 +402,9 @@ void _efl_net_server_udp_client_feed(Eo *client, 
Eina_Rw_Slice slice);
 
 void _efl_net_socket_udp_init(Eo *o, const struct sockaddr *addr, socklen_t 
addrlen, const char *str);
 
+#ifndef _WIN32
 Eina_Bool efl_net_unix_fmt(char *buf, size_t buflen, SOCKET fd, const struct 
sockaddr_un *addr, socklen_t addrlen);
+#endif
 Eina_Bool efl_net_ip_port_fmt(char *buf, size_t buflen, const struct sockaddr 
*addr);
 
 /**

-- 




[EGIT] [tools/eflete] master 01/01: project_close: rework save feature

2016-10-27 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

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

commit 88ee00e180771183705195751fbb7ef980d41d09
Author: Vyacheslav Reutskiy 
Date:   Thu Oct 27 10:47:20 2016 +0300

project_close: rework save feature

Early was added the two options --export-edj and --export-edc for
Eflete. But this feature was not compleated, and was exported edj and
edc on save only if application configured with --enable-tizen.

This patch is complete this feature for both modes: normal and tizen.
Now if set --export-edj or --export-edc project data will be exported
by given path.

Change-Id: Ic00f9922e84161dd5b5565e07a53504105a8a4d7
---
 src/bin/main.c  | 26 -
 src/bin/ui/project_close.c  | 89 -
 src/bin/ui/project_export.c | 46 +++
 3 files changed, 85 insertions(+), 76 deletions(-)

diff --git a/src/bin/main.c b/src/bin/main.c
index 62761d8..8592581 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -340,10 +340,32 @@ elm_main(int argc, char **argv)
  else if (widgets)
_ERR_EXIT(_("widgets can be added only to new project."));
   }
+if (export_edj)
+  {
+ if (!eina_str_has_suffix(file, ".edj"))
+   _ERR_EXIT(_("--export-edj value have not extension '.edj'. 
Wrong value."));
+  }
 
 run:
-ap.path.export_edj = export_edj;
-ap.path.export_edc = export_edc;
+if (export_edj)
+  {
+ int i;
+ char *name = NULL;
+ char buf[BUFF_MAX];
+
+ char **arr = eina_str_split(export_edj, "/", 0);
+ for(i = 0; arr[i] != NULL; i++)
+   name = arr[i];
+ strncpy(buf, export_edj, strlen(export_edj) - strlen(name));
+ ecore_file_mkpath(buf);
+
+ ap.path.export_edj = eina_stringshare_add(export_edj);
+  }
+if (export_edc)
+  {
+ ecore_file_mkpath(export_edc);
+ ap.path.export_edc = eina_stringshare_add(export_edc);
+  }
 evas_object_show(ap.win);
 elm_run();
 exit:
diff --git a/src/bin/ui/project_close.c b/src/bin/ui/project_close.c
index c16494c..146f004 100644
--- a/src/bin/ui/project_close.c
+++ b/src/bin/ui/project_close.c
@@ -21,8 +21,8 @@
 #include "tabs.h"
 #include "project_manager2.h"
 #include "project_navigator.h"
+#include "project_common.h"
 
-#ifndef HAVE_TIZEN
 static Eina_Bool
 _progress_print(void *data __UNUSED__, Eina_Stringshare *progress_string)
 {
@@ -32,35 +32,64 @@ _progress_print(void *data __UNUSED__, Eina_Stringshare 
*progress_string)
 }
 
 static void
-_progress_end(void *data __UNUSED__, PM_Project_Result result, Project 
*project __UNUSED__)
+_progress_export_edj_end(void *data __UNUSED__, PM_Project_Result result, 
Project *project __UNUSED__)
 {
+   char buf[BUFF_MAX];
 
-   switch (result)
+   if (ap.path.export_edc)
  {
-  case PM_PROJECT_ERROR:
-{
-   ERR(_("Error: project not saved."));
-   break;
-}
-  case PM_PROJECT_CANCEL:
-{
-   INFO(_("Saving canceled."));
-   break;
-}
-  case PM_PROJECT_SUCCESS:
-{
-   ap.project->changed = false;
-   break;
-}
-  default:
-{
-   ERR("Wrong result");
-   abort();
-}
+Eina_List *groups = tabs_open_groups_get();
+result = pm_group_source_code_export(ap.project, groups, 
ap.path.export_edc,
+ _progress_print, progress_end, 
NULL);
+eina_list_free(groups);
+if (PM_PROJECT_SUCCESS != result)
+  {
+ snprintf(buf, sizeof(buf), "Warning: %s", 
pm_project_result_string_get(result));
+ popup_add(_("Export source code"), NULL, BTN_CANCEL, NULL, NULL);
+  }
+return;
  }
+   progress_end(NULL, result, NULL);
+}
 
-   splash_del(ap.splash);
-   ap.splash = NULL;
+static void
+_progress_save_end(void *data __UNUSED__, PM_Project_Result result, Project 
*project __UNUSED__)
+{
+   char buf[BUFF_MAX];
+
+   if (PM_PROJECT_SUCCESS == result)
+ {
+ap.project->changed = false;
+if (ap.path.export_edj)
+  {
+ Eina_List *groups = tabs_open_groups_get();
+ result = pm_project_develop_export(ap.project, 
ap.path.export_edj, groups,
+_progress_print, 
_progress_export_edj_end, NULL);
+ eina_list_free(groups);
+ if (PM_PROJECT_SUCCESS != result)
+   {
+  snprintf(buf, sizeof(buf), "Warning: %s", 
pm_project_result_string_get(result));
+  popup_add(_("Export develop edj"), NULL, BTN_CANCEL, NULL, 
NULL);
+   }
+

Re: [E-devel] RFC: Removal of draw_frame (ecore_evas)

2016-10-27 Thread Gustavo Sverzut Barbieri
ugh

On Thu, Oct 27, 2016 at 3:13 AM, Jean-Philippe André  wrote:
> On 27 October 2016 at 14:01, Jean-Philippe André  wrote:
>
>> Hi,
>>
>> Wayland devs in particular.
>>
>>
>> An old and most likely unused feature in wayland shm/egl is the ability to
>> draw a window frame with a simple title bar and some borders. This works
>> when using ecore_evas directly and not elm_win.
>>
>> I see a few problems with it:
>> 1. It's absolutely ugly (no theme, not pretty visually)
>> 2. The code requires some if() here and there and some hardoded values
>> 3. The EAPI to set the draw_frame flag can not work as the flag is checked
>> at creation time
>>
>
> Oh btw if you wonder what it looks like, here's a screenshot:
>
> http://i.imgur.com/6DBmDqw.png
>
> Would anyone mind if I got completely rid of this feature?
>>
>> The patch is ready at:
>> https://git.enlightenment.org/core/efl.git/commit/?h=devs/jpeg/work=
>> c5be09cd99b71d1a2b390446ffee5c1b325992a7
>>
>
> --
> Jean-Philippe André
> --
> The Command Line: Reinvented for Modern Developers
> Did the resurgence of CLI tooling catch you by surprise?
> Reconnect with the command line and become more productive.
> Learn the new .NET and ASP.NET CLI. Get your free copy!
> http://sdm.link/telerik
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890

--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [tools/eflete] master 01/01: property_textblock: add + so tags will be used properly as tags

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

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

commit e8ec421277d40504541eceae32b96569bacc8b23
Author: Vitalii Vorobiov 
Date:   Wed Oct 26 19:01:00 2016 +0300

property_textblock: add + so tags will be used properly as tags

Fixes T4520
---
 src/bin/ui/property/property_textblock.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/ui/property/property_textblock.c 
b/src/bin/ui/property/property_textblock.c
index c51f4dc..8f60d1f 100644
--- a/src/bin/ui/property/property_textblock.c
+++ b/src/bin/ui/property/property_textblock.c
@@ -340,6 +340,9 @@ _update_style()
TODO("Implement or think about next params in a comment below")
/* "font_fallback" "font_source" "font_style" "lang" "outline_color"
   "linegap" "linerelgap" "item" "linefill" */
+   if (strcmp(tpd.current_style.st_tag, "DEFAULT"))
+ eina_strbuf_append(tag, " + ");
+
_print_string(, " font=", tpd.font);
 
_print_data_string(, " font_size=", tpd.font_size);

-- 




[EGIT] [core/efl] master 01/01: elm hoversel: restore focus to the button when hover end

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

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

commit 9c1b0e346ea2d576388f9ce97bc017fe96484041
Author: WooHyun Jung 
Date:   Thu Oct 27 15:26:41 2016 +0900

elm hoversel: restore focus to the button when hover end
---
 src/lib/elementary/elc_hoversel.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/elementary/elc_hoversel.c 
b/src/lib/elementary/elc_hoversel.c
index 28ada3b..22331b4 100644
--- a/src/lib/elementary/elc_hoversel.c
+++ b/src/lib/elementary/elc_hoversel.c
@@ -764,6 +764,7 @@ _elm_hoversel_hover_end(Eo *obj, Elm_Hoversel_Data *sd)
  {
 _hover_del(obj);
  } // for backward compatibility
+   elm_object_focus_set(obj, EINA_TRUE);
 }
 
 EOLIAN static Eina_Bool

-- 




[EGIT] [admin/devs] master 01/01: fix newlines in ssh id of jaq

2016-10-27 Thread Carsten Haitzler (Rasterman)
raster pushed a commit to branch master.

http://git.enlightenment.org/admin/devs.git/commit/?id=8701abca20d0b5e619da068e3004b775168dbafd

commit 8701abca20d0b5e619da068e3004b775168dbafd
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Oct 27 15:16:42 2016 +0900

fix newlines in ssh id of jaq
---
 developers/jaquilina/id_rsa.pub | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/developers/jaquilina/id_rsa.pub b/developers/jaquilina/id_rsa.pub
index 7b2d255..4ff33bb 100644
--- a/developers/jaquilina/id_rsa.pub
+++ b/developers/jaquilina/id_rsa.pub
@@ -1,3 +1 @@
-ssh-rsa
-B3NzaC1yc2EBIwAABAEAutJuwkHaVU0SXRAT4BEQNRO8mGCG/FFiPHf/SkJCbpVNvBRz0Ml3DFtKBnNbOjeO69jLO0v5cut9aRrzh7g/pqIpkdKfFXzrDgfDRDwroy+s7viOQDisHQu7zNL/OWhhKH8idauAAeWYg+q1IjWiO8lOwjcxDnZhvkmHR1TqDC736cCfHfmI4imBIZxba7YISFPEUJGoHqrRPCFkbGXqhtAZRp7iaygvpsXJn36EwJ3YQ13oGqmWO+r6RMEuCYXUzUTQzYZF7TJ5e957d8LZXearsRzWcr22ih3L5YG+oKI+NAEVsf3fdWOZsgtnGgh2uaUaBLbLL3MiX2ojumvGeftXjPkWbGCV+wVqvNmig8BRqeBbeEtkdZkZ3PdF9dDJ13mZkRsmp/q0v2Lqiyunk68zsQF6PMBt+hasspxucwdBjskBZojO3Q92GwOti7z4Ob9bzHsAj6AXbdRi
 [...]
-MJWpZbGbldwW8zwcG2tE0hXIy/DIdhwr7nD6DiIJNVUJnFpuNoALFfJZq0IpIWMNCANhMsN3sjXtM+c3UKx2Lffl6qdnCw4rGgCtpdYS04iOo+u2FyMqXVjp8Q/algDxIvwkLpEEvMTM8/PlO4MwjmomDacvYIbrWeOcRhub1YX/aGdXLIVKljEWhKPtAPzXKFqozjGrNpeMjmRoYd3/4dJM/yPbYEXroREG/daHPR0QW+Ix5x3Dg1SF//yGTKrlph6DXFw2tegc2bi+Ve748xdKtbQBE/tuKm3FXzeGFBdh88fu8x/9DbJdsZYzdICQUCXe4QLLuOGdJNKnMoTGWd9mMhDHZt0qhE4LONLRvPz//KHlBfm+IOj1ikdpGCA7Y77GF5+9PgcQ==
+ssh-rsa 
B3NzaC1yc2EBIwAABAEAutJuwkHaVU0SXRAT4BEQNRO8mGCG/FFiPHf/SkJCbpVNvBRz0Ml3DFtKBnNbOjeO69jLO0v5cut9aRrzh7g/pqIpkdKfFXzrDgfDRDwroy+s7viOQDisHQu7zNL/OWhhKH8idauAAeWYg+q1IjWiO8lOwjcxDnZhvkmHR1TqDC736cCfHfmI4imBIZxba7YISFPEUJGoHqrRPCFkbGXqhtAZRp7iaygvpsXJn36EwJ3YQ13oGqmWO+r6RMEuCYXUzUTQzYZF7TJ5e957d8LZXearsRzWcr22ih3L5YG+oKI+NAEVsf3fdWOZsgtnGgh2uaUaBLbLL3MiX2ojumvGeftXjPkWbGCV+wVqvNmig8BRqeBbeEtkdZkZ3PdF9dDJ13mZkRsmp/q0v2Lqiyunk68zsQF6PMBt+hasspxucwdBjskBZojO3Q92GwOti7z4Ob9bzHsA
 [...]

-- 




[EGIT] [admin/devs] master 01/01: add jonh ad user so he can help beber out with admin work

2016-10-27 Thread Carsten Haitzler (Rasterman)
raster pushed a commit to branch master.

http://git.enlightenment.org/admin/devs.git/commit/?id=4aea148c43e26d9bfc534562e2d3ecf872ef2e53

commit 4aea148c43e26d9bfc534562e2d3ecf872ef2e53
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Oct 27 15:13:54 2016 +0900

add jonh ad user so he can help beber out with admin work
---
 developers/jaquilina/id_rsa.pub | 3 +++
 developers/jaquilina/info.txt   | 7 +++
 2 files changed, 10 insertions(+)

diff --git a/developers/jaquilina/id_rsa.pub b/developers/jaquilina/id_rsa.pub
new file mode 100644
index 000..7b2d255
--- /dev/null
+++ b/developers/jaquilina/id_rsa.pub
@@ -0,0 +1,3 @@
+ssh-rsa
+B3NzaC1yc2EBIwAABAEAutJuwkHaVU0SXRAT4BEQNRO8mGCG/FFiPHf/SkJCbpVNvBRz0Ml3DFtKBnNbOjeO69jLO0v5cut9aRrzh7g/pqIpkdKfFXzrDgfDRDwroy+s7viOQDisHQu7zNL/OWhhKH8idauAAeWYg+q1IjWiO8lOwjcxDnZhvkmHR1TqDC736cCfHfmI4imBIZxba7YISFPEUJGoHqrRPCFkbGXqhtAZRp7iaygvpsXJn36EwJ3YQ13oGqmWO+r6RMEuCYXUzUTQzYZF7TJ5e957d8LZXearsRzWcr22ih3L5YG+oKI+NAEVsf3fdWOZsgtnGgh2uaUaBLbLL3MiX2ojumvGeftXjPkWbGCV+wVqvNmig8BRqeBbeEtkdZkZ3PdF9dDJ13mZkRsmp/q0v2Lqiyunk68zsQF6PMBt+hasspxucwdBjskBZojO3Q92GwOti7z4Ob9bzHsAj6AXbdRi
 [...]
+MJWpZbGbldwW8zwcG2tE0hXIy/DIdhwr7nD6DiIJNVUJnFpuNoALFfJZq0IpIWMNCANhMsN3sjXtM+c3UKx2Lffl6qdnCw4rGgCtpdYS04iOo+u2FyMqXVjp8Q/algDxIvwkLpEEvMTM8/PlO4MwjmomDacvYIbrWeOcRhub1YX/aGdXLIVKljEWhKPtAPzXKFqozjGrNpeMjmRoYd3/4dJM/yPbYEXroREG/daHPR0QW+Ix5x3Dg1SF//yGTKrlph6DXFw2tegc2bi+Ve748xdKtbQBE/tuKm3FXzeGFBdh88fu8x/9DbJdsZYzdICQUCXe4QLLuOGdJNKnMoTGWd9mMhDHZt0qhE4LONLRvPz//KHlBfm+IOj1ikdpGCA7Y77GF5+9PgcQ==
diff --git a/developers/jaquilina/info.txt b/developers/jaquilina/info.txt
new file mode 100644
index 000..26099c8
--- /dev/null
+++ b/developers/jaquilina/info.txt
@@ -0,0 +1,7 @@
+Login:jaquilina
+IRC Nick: eagles0513875|2
+Name: Jonathan Aquilina
+Location: Malta
+E-Mail:   jaquil...@eagleeyet.net
+Managing: servers
+Group:admin

--