Re: [E-devel] promises...

2016-06-13 Thread The Rasterman
On Wed, 8 Jun 2016 10:07:33 -0700 Cedric BAIL  said:

> On Wed, Jun 8, 2016 at 8:10 AM,   wrote:
> > On Wed, Jun 08, 2016 at 08:16:20PM +0900, Carsten Haitzler wrote:
> >>
> >  [...]
> >> they should be eo objects.
> >
> > I wondered in the beginning why promises are not a eo object, comparing the
> > two models shows that it can be dangerous moving promises to a Eo.Base
> > class.
> >
> > Take a look at the events, when in a promise the then callback is
> > called the callback is unsubscribed, and never called again. When a then
> > callback is attached after the value is set the then callback is called
> > while beeing added. So this is a completly different sematic compared to
> > Eo.Base. Of course a implementation can be treated to do smth. like
> > that, but i think its confusing to users of a api, if objects behave
> > differently under the same base api.
> >
> > Also when attaching a then_cb you will get a ref of the promise, so as
> > long as your then_cb is not called the promise will not be freed. This
> > is also something which does not play with the ref/unref system of
> > Eo.Base.
> >
> > Basically you can say, after the then_cb you just have to nuke your
> > reference to your promise, at the best dont keep a reference to it.
> >
> > So all in all the concept of A Promise inheriting from Eo.Base doesnt
> > sound sane to me, and looks like a huge confusion you can get in. So I
> > would prefer to keep the promises as they are, exept the idea of using
> > Eo_Id to make the pointer more secure.
> 
> Good point. It should have been a generic infrastructure anyway. Will
> work on that.

Don't do this.. because it shouldn't! promises should be eo objects! don't go
duplicating this in eina just because you can't see that eina promises are
objects.


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


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] promises...

2016-06-13 Thread The Rasterman
On Wed, 8 Jun 2016 22:37:55 +1000 David Seikel  said:

> I'm just gonna pipe in here a little bit.
> 
> On Wed, 8 Jun 2016 20:16:20 +0900 Carsten Haitzler (The Rasterman)
>  wrote:
> 
> > > If history tell us, our existing solution is not usable, but prove
> > > me wrong and show me how amazing our current limited set of
> > > asynchronous API is used by so many people. Now just think that we
> > > are expanding  
> > 
> > as above. ecore_con. ecore_con_url, preload, timer, job,
> > animator,  all used.
> 
> I use ecore_con, timer, job, and animator in a couple of my projects.
> The first two I use a lot in my huge project.  ecore_con_url and
> preload I just haven't bothered to try out yet.  I also use EFL
> threads and ecore fd handler for some async stuff.
> 
> There was one thing I was thinking that I might try promises on, once
> the API and arguments are settled, replacing timer and job for
> sequencing some async startup stuff.  That would still leave ecore_con,
> timer, and threads heavily used in that project, but I think that's the
> only place I use job.  Promises as initially described to me seems like
> a slightly better fit than timers and jobs for this startup stuff.
> 
> I've not actually looked at promises yet though, but I agree in
> principle with Raster when he says that things should be consistent and
> use the same infrastructure.  Having said that, now I'm wondering why we
> can't just extend jobs?

actually jobs in current efl are promises, so it's kind of inverted. but
promises are objects. a job is now a promise. you want to track it and
cancel/unref/whatever it hwne you no longer need it. this is why i keep saying
they are objects thus should be eo.

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


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] promises...

2016-06-13 Thread The Rasterman
On Wed, 8 Jun 2016 17:10:07 +0200 marcel-hollerb...@t-online.de said:

> Hello,
> 
> On Wed, Jun 08, 2016 at 08:16:20PM +0900, Carsten Haitzler wrote:
> >
>  [...]
> > they should be eo objects.
> 
> I wondered in the beginning why promises are not a eo object, comparing the 
> two models shows that it can be dangerous moving promises to a Eo.Base class.

how so?

> Take a look at the events, when in a promise the then callback is
> called the callback is unsubscribed, and never called again. When a then
> callback is attached after the value is set the then callback is called
> while beeing added. So this is a completly different sematic compared to
> Eo.Base. Of course a implementation can be treated to do smth. like
> that, but i think its confusing to users of a api, if objects behave
> differently under the same base api.

i disagree. having eina_promise_ref in addition to eo_ref, having yet another
copy of the oi id indirection to make promise i'ds safe etc. is worse than
making a promise live within eo api. as i keep saying - the solution is worse
than the disease.

we dont HAVE to use eo event callbacks though. we could special case then/else
in eo promises and of course require those to be hand bound specifically. eo
objects that delete after their task is done can be tagged in eo as such
specific objects, just like proxy objects delete themselves after use. it isnt
confusing when its tagged. it's just a PAIN to have eina_promise vs eo_* in c.
in c++, js, lua promises are normal objects with all normal object operations
of referencing, gc'ing, deletion etc. just like eo is for c. in other langs they
use the SAME object api as all other objects, why are they so special in c
where they should not? all they do is cause pain in c. in other langs they are
full blown normal objects as i am saying they should be in c.

we can do:

eo_promise_then(promise, done_cb, err_cb, data);

it's a special manually bound method that has the 2 cb's. all the eina_promise
progress stuff can be dropped and done as eo event extensions. any events until
the done/err can be extended as much as desired via eo callbaks. it nukes a
huge amount of the eina promise api. no need for the progress_cb stuff and only
extend where needed and use normal inheritance/classes for this. have a promise
progress class for anything needing to extend promises to do progress that
inherits from the promise class. and so on...

> Also when attaching a then_cb you will get a ref of the promise, so as
> long as your then_cb is not called the promise will not be freed. This
> is also something which does not play with the ref/unref system of
> Eo.Base.

see above. and we already define proxy objects to specially delete themselves
after their furst use. is this no different to the promise deleting itself
after the then/error cb? it's aproprty of the object. it's specific to
promises. you have to learn this behaviour with eina_promise objects anyway and
in c++, js and lua you have normal "regular objects" that are hiding the
eina_promises that behave exactly this way... so the argument that promises are
somehow special and cant be eo objects falls apart the moment you are in c++,
js or lua where they ARE such objects. so i call the argument "bogus" on the
best of days.

> Basically you can say, after the then_cb you just have to nuke your
> reference to your promise, at the best dont keep a reference to it.

we don't need to tell people to nuke their reference. the obj class just does
an eo_del on itself after calling the then/error cb. you don't need to. if
someone as an extra eo_ref on the obj then it stays alive until that ref is
released - this is exactly how eina promises work now. there is nothing weird
or wrong with eo objects working this way too. they already do - proxy objects
for parts.

> So all in all the concept of A Promise inheriting from Eo.Base doesnt
> sound sane to me, and looks like a huge confusion you can get in. So I
> would prefer to keep the promises as they are, exept the idea of using
> Eo_Id to make the pointer more secure.

i disagree. think of operator overloading in c++. a + may not mean a
mathematical +. i can ave a string lass that makes + append the strings. this
is common. it makes a common tool work appropriately for the task. people seem
to be able to deal with this.

same with eo promise objects. they are objects with a specific behaviour. they
delete after their then/error cb is called. they only allow a single then/error
cb. you CAN add event cb's to listen for their deletion with del events, or you
can extend them with progress cb's etc.

there is no reason the then/else cb's have to be a different cb prototype to eo
event callbacks. the return value can go unused as there are no more cb's to
skip after this so its just a dummy return value. it saves a lot of mental
effort to remember the different callback types. the return doesn't hurt as it
has no effect. the value stuff can be passed in the event info 

Re: [E-devel] promises...

2016-06-13 Thread The Rasterman
On Sun, 12 Jun 2016 11:02:37 -0700 Cedric BAIL  said:

> On Wed, Jun 8, 2016 at 4:16 AM, Carsten Haitzler  wrote:
> > On Mon, 6 Jun 2016 06:01:13 +0200 Cedric BAIL  said:
> 
> 
> 
> >> >> You just can't do with eo event what promise do. Eo event are a
> >> >
> >> > it's not NECESSARY to do anything new. timeout can be an eo obj that
> >> > deletes itself after the one-shot callback. it doesn't need a promise.
> >> > same as job. i can't add promises as children to an obj and make sure
> >> > they get autodeleted when parent is. i have to do this all by hand now.
> >>
> >> It is a terrible mistake to override eo object lifecycle. This is an
> >> absolute no go as a solution. Anything that bypass the refcounting and
> >> ownership of an eo object lead to massive issue and trouble. We can
> >> not implement auto deletion of eo object outside of the reference
> >> count system.
> >
> > this doesn't bypass it. it USES it. the object unrefs/del's itself. when
> > done. when an evas canvas is deleted it deletes all child objects. no code
> > is explicitly in the app deleting the objects. it's done internally.
> 
> That's exactly what I mean by bypass. Evas canvas delete object
> because the parent die. Now, in the case of a promise eo object, there
> is no parent that will disapear to do the unref/del, it is when all
> the listener have received the value, that the promise disapear. If
> you want to use normal eo lifecycle for that, it means that the object
> has to delete itself. And this is bad. This is exactly what
> ecore_timer where historically doing. They were not linked to any
> parent and would just vanish under your feet. This is what tricked you
> into thinking the bug was in the timeout promise while it was in the
> handling of the lifecycle of the timer itself.

and for promises its the "parent action" the download, the async property
fetch, the file load etc. that is the parent conceptually and it deletes the
promise representing it in the wild.

> Reading what you say, you are advocating for using the normal eo
> lifecycle and not letting itself commit succide, which is the proper
> way to handle eo object. Now how can that work with promise ? No idea.

YES I AM. as jp already said. we have proxy objects that self-delete on first
use in another function. promises self-delete when the action is done - same
idea. of course it can work. it works just fine. we do it already. there is no
"proper way" to handle eo deletion other than objects ARE deleted. the
convention is parents del children. del otherwise can happen anywhere by
anything. there is no magical rule otherwise.



> Promise are a promise to deliver something in the future. In themself
> they have no propery and no function. They aren't object, they are

of course they are an object. they old a success/error callback. they HOLD the
value content until suhc a cb can be set to get the value. they can be ref'd
and unref'd and kept around for along as desired. in js, c++ and lua they are
actual objects because these languages ONLY have an object, or a basic
variable. so they are objects there. you keep the object around so you can
cancel it. they are objects. they are as much objects as eo objects are.

> delivering object. Their lifecycle is that they either deliver or
> fail, they never "die" before that. It is a guaranty that they deliver
> a callback whatever happen to everyone that registered to listen them.
> This doesn't match at all eo object lifecycle.

proxy objects. need i say more. they die after first use in another func. and
either way this is a lifecycle SPECIFIED by the promise object. it is HOW they
are meant to work. they are MEANT to delete themselves when done (after calling
success/err callbacks). self deletion isn't something eo forbids at all.

> > you are totally inconsistent thinking promises are some kind of magically
> > special thing that is not an object... yet in all ways it works *IS* an
> > object.
> 
> If you stretch the definition of an object outside of what Eo is, yes,
> but by that standard everything could be an object. If you limit your
> definition to what Eo is and I mean by that Eo lifecycle and events,
> it doesn't. Oh, and there is plenty of stuff in an Eo object that are
> useless for promise.

eo doesn't define an object cannot self delete. so it matches. eo events are
not useless for callbacks - its how you can extend progress etc. it makes far
more sense than what eina_promise has now. it allows inheritance and extension.
eina_promise is totally fixed in stone. and so what if key/value data is not
useful. it doesnt cost anything except a ptr to have as a feature and all eo
objects have it and its not useful on every single object BUT... it's useful
ENOUGH to be in the base class. so what then? a promise uses a bit more ram.
this isnt about ram or efficiency but of usability and eina _promises are FAr
LESS USABLE than if they were eo 

Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc

2016-06-13 Thread Jean-Philippe André
Hi,

On 14 June 2016 at 03:48, Cedric BAIL  wrote:

> Hello,
>
> On Mon, Jun 13, 2016 at 7:01 AM, Stefan Schmidt 
> wrote:
> > On 13/06/16 14:18, Stefan Schmidt wrote:
> >> On 13/06/16 13:16, Tom Hacohen wrote:
> >>> As part of the development process of the new Eo API we marked all of
> >>> the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I
> >>> think we maybe also use EFL_BETA_API_SUPPORT, need to verify that.
> >>>
> >>> Anyhow, now is time to remove these tags (where appropriate), so these
> >>> APIs are released.
> >>>
> >>> I guess we can just remove all of the occurrences of the EO one, but we
> >>> need to be more careful with the other one.
> >>>
> >>> Is there anyone who has time to take care of this? Stefan? Or should I
> >>> try to tackle it on Thursday when I'm done with travel and other stuff
> I
> >>> need to deal with?
> >>>
> >> I will have a look at it.
> >>
> >> Are we really sure that all APIs behind  the EFL_EO_API_SUPPORT are
> >> really finsalised?
> >>
> >> We might need to come up with a list of them and brign them up here for
> >> the audience.
> >>
> >
> > After removal of the EFL_EO_API_SUPPORT ifdef we have the following new
> > APIs that we need to support. (git grep "ifdef EFL_EO_API_SUPPORT")
> > I did only list areas here as listing every single new function, struct,
> > event, etc would just be to big.
> >
> > Ecore:
> > o ecore_poller
> > o ecore_loop_timer
>
> I can't find that one. Do you have a pointer ?
>
> > o ecore_exe
>
> All the ecore one should stay under BETA for now.
>
> > o efl_loop
> > o efl_loop_args
> > o efl_loop_user
> > o efl_loop_fd
> >
> > Ecore_Con:
> > o efl_network
> > o efl_network_server
> > o efl_network_connector
> > o efl_network_client
> > o efl_network_url
>
> All Ecore_Con/Efl_Network need to stay under BETA we haven't had the
> time to take care of them.
>
> > Edje:
> > o edje_object
>
> Will need to be renamed and cleaned as Efl.Canvas.Layout.
>
> > o edje_edit
>
> Shouldn't be an Eo object.
>
> > Eio:
> > o eio_job
> > o eio_sentry
> > o eio_model
>
> Some rename are still going to happen with those, but otherwise that
> is fine for now.
>
> > Emotion:
> > o emotion_object
>
> This should have been renamed with Efl.Canvas.Video. I did think the
> patch did land for that, will have to look at it.
>
> > Evas:
> > o canvas/efl_ui_draggable
> > o canvas/efl_ui_clickable
> > o canvas/efl_ui_scrollable
> > o canvas/efl_ui_selectable
> > o canvas/efl_ui_zoomable
> > o canvas/evas_canvas
>

Evas.Canvas will not be installed. The only canvas API (evas, ecore_evas,
elm_win) should be Efl.Ui.Window.



> > o canvas/efl_canvas_rectangle
> > o canvas/evas_textblock
>

Efl.Canvas.Text? tasn and herdsman are on it.



> > o canvas/efl_canvas_polygon
> > o canvas/evas_object_smart
> > o canvas/evas_smart_clipped
>

These two (esp. smart object) are a problem. Hard to get rid of (we need
the inheritance),
I would go for this solution:
1. rename to Efl.Canvas.Group.Internal (or smart, or whatever)
2. rename all functions to group_ something, or smart_ something to avoid
method clashes
3. mark all functions @protected

Most functions are actually clashing with basic evas object functions
(clip, hide, no_render, ...). Not sure if we can simply just make evas
object smart implement the basic methods.
We should also probably mark everything as @beta (meaning unstable, do not
use).



> > o canvas/evas_common_interface
>

This is a bit a of a problem. It returns the Evas which we don't really
want to expose. But use it extensively inside EFL, and it's hard to
implement as legacy-only.
Make its single property just @protected and @beta?



> > o canvas/evas_object
>

Rename to Efl.Canvas.Object - not a big deal
But many methods might need some cleanup.



> > o canvas/evas_canvas3d_object
> > o canvas/evas_canvas3d_texture
> > o canvas/evas_canvas3d_material
> > o canvas/evas_canvas3d_light
> > o canvas/evas_canvas3d_primitive
> > o canvas/evas_canvas3d_mesh
> > o canvas/evas_canvas3d_node
> > o canvas/evas_canvas3d_camera
> > o canvas/evas_canvas3d_scene
>
> All the canvas 3d stay a BETA API.
>
> > o canvas/efl_canvas_image_internal
> > o canvas/efl_canvas_image
> > o canvas/efl_canvas_snapshot
> > o canvas/efl_canvas_proxy
> > o canvas/efl_canvas_scene3d
> > o canvas/evas_vg
> > o canvas/efl_vg
> > o canvas/efl_vg_container
> > o canvas/efl_vg_shape
> > o canvas/efl_vg_gradient
> > o canvas/efl_vg_gradient_linear
> > o canvas/efl_vg_gradient_radial
>
> All the VG API should also stay as a BETA API for now.
>
> > o canvas/efl_event_input
> > o canvas/efl_event_pointer
> > o canvas/efl_event_key
> >
> > Elementary:
> > o efl_ui_box
> > o efl_ui_box_flow
> > o efl_ui_grid
> > o efl_ui_grid static
> > o efl_ui_image
> > o efl_ui_win
> > o efl_ui_win_standard
> > o efl_ui_nstate
> > o elc_combobox
> > o elc_ctxpopup
> > o elc_fileselector
> > o elc_fileselector_button
> > o elc_fileselector_entry
> > o 

Re: [E-devel] promises...

2016-06-13 Thread Jean-Philippe André
Hi Felipe & Cedric,


Thanks for explaining the lifecycle in detail, ... but I'm still not
convinced :)


On 14 June 2016 at 02:28, Felipe Magno de Almeida <
felipe.m.alme...@gmail.com> wrote:

> Sorry for top-posting. But let me summarize the Promise lifetime:
>
> A Promise when created starts with a ref-count of 1.
> If the promise is not needed anymore, it should be
> unref'ed (if no eina_promise_then is made, either
> directly or by eina_promise_all/eina_promise_race).
>
> The first eina_promise_then _steals_ the first
> reference, the others eina_promise_then
> increments the reference count.
>
> When the promise is fulfilled (by value_set or error_set),
> then each call to a eina_promise_then decrements
> the reference count by 1.
>
> When the reference count reaches 0 _and_ the
> promise is fulfilled the promise is deleted (both
> conditions must be true, if just one is true it
> continues to exist).
>
> So, valid cases:
>
> Eina_Promise* p = ..;
> eina_promise_then(p, ...);
> // promise will be deleted
> // when callback for the then is called
>
> Eina_Promise* p = ...;
> eina_promise_unref(p);
> // Promise will be freed when promise is fulfilled
> // by error_set or value_set
>
> Eina_Promise* p = ...;
> eina_promise_then(p, ...);
> eina_promise_then(p, ...);
> // promise will be deleted
> // when callback for the then is called
>
> Eina_Promise* p = ...;
> eina_promise_all(p, ...);
> eina_promise_then(p, ...);
> // promise will be deleted
> // when callback for the then is called
>
> Eina_Promise* p = ...;
> eina_promise_all(p, ...);
> // promise will be deleted
> // when callback for the then is called
>
>
So my understanding here is that this can work because a promise can not
ever be synchronous.
In other words, eina_promise_then can never trigger the success/error
callback to be called synchronously, otherwise the above reference count
system falls apart.

While this approach is convenient, it means that we can use an object
(promise) we don't hold any reference on (after first _then).
This is weird :)



> Etc..
>
> Regards,
> --
> Felipe Magno de Almeida
>
>
> On Mon, Jun 13, 2016 at 2:17 PM, Cedric BAIL  wrote:
> > Hello,
> >
> > On Sun, Jun 12, 2016 at 10:13 PM, Jean-Philippe André 
> wrote:
> >> On 13 June 2016 at 03:02, Cedric BAIL  wrote:
> >>> On Wed, Jun 8, 2016 at 4:16 AM, Carsten Haitzler  >
> >>> wrote:
> >>> > On Mon, 6 Jun 2016 06:01:13 +0200 Cedric BAIL 
> >>> said:
> >>> > and you can do the same with eo - you can store the result until cb's
> >>> added or
> >>> > until a go/done/whatever api is called. but that on;y matters if you
> >>> want a
> >>> > specific cb for that specific action. in general if you want that hen
> >>> you want
> >>> > a real object to be returned so you can manage it like other objects.
> >>>
> >>> As said before, basically what you want is an Eo object which doesn't
> >>> behave like a normal eo object. Having its own meaning for ref/unref,
> >>> for events and life cycle. At this point, I don't see how it will be
> >>> easier for people and not more confusing ?
> >>
> >> Efl.Part are EO objects that die after a single function call.
> >> So, we already have objects with a different lifecycle.
> >
> > Yes, but you are not supposed to interact with that said object more
> > than with just one function. What happen if someone do an
> > eo_ref/eo_unref on it ?
>

You can eo_ref() before calling a function, this gives you a "strong" ref
that you then need to eo_unref() manually as well.
This means you can do:

func(efl_part(obj, "a"))

and:

part = eo_ref(efl_part(obj, "a"))
func1(part)
func2(part)
func3(part)
eo_unref(part)

Only func1() will unref the part object implicitely. An internal flag
insures that func2 and func3 don't also trigger an unref.

The same model could be used for promises that we want to stuff into more
than one _then, _race or _all.


>> Events are the same: they call a callback function with a user data and
> an
> >> event info (promise value).
> >
> > No. Event in promise will keep their value until all the reference to
> > the promise exist and each time that a callback is triggered that
> > reference count goes down by one. There is also an absolute guaranty
> > that you can not destroy a promise without having all the reference
> > receiving either a succeed or a fail. Also the returned value of an
> > event handler for then or cancel should be ignored as you can not stop
> > notifying anyone in the chain and the state should stay either success
> > or failure once it has been decided.
>

It is actually a good question whether the return bool is a good idea or
not.
If you return false in evas callbacks, you're gonna be in trouble.

The ON_HOLD flag, now called efl_event_processed_get/set() is a better
approach to stop processing events.



> >> For how long is a promise handle valid?
> >> Is it valid up until 

[EGIT] [apps/ephoto] master 01/01: Ephoto: Add Sobel Edge Detection Filter.

2016-06-13 Thread Stephen Houston
okra pushed a commit to branch master.

http://git.enlightenment.org/apps/ephoto.git/commit/?id=6ce5ec32778ac06c33f3d946ee5dd7a912a11a1a

commit 6ce5ec32778ac06c33f3d946ee5dd7a912a11a1a
Author: Stephen Houston 
Date:   Mon Jun 13 21:20:14 2016 -0500

Ephoto: Add Sobel Edge Detection Filter.
---
 src/bin/ephoto.h|  1 +
 src/bin/ephoto_filters.c| 84 +++--
 src/bin/ephoto_single_browser.c | 17 +
 3 files changed, 99 insertions(+), 3 deletions(-)

diff --git a/src/bin/ephoto.h b/src/bin/ephoto.h
index c5a7dc8..0ef3efe 100644
--- a/src/bin/ephoto.h
+++ b/src/bin/ephoto.h
@@ -149,6 +149,7 @@ void ephoto_filter_cartoon(Evas_Object *main, Evas_Object 
*image);
 void ephoto_filter_posterize(Evas_Object *main, Evas_Object *image);
 void ephoto_filter_sketch(Evas_Object *main, Evas_Object *image);
 void ephoto_filter_invert(Evas_Object *main, Evas_Object *image);
+void ephoto_filter_edge(Evas_Object *main, Evas_Object *image);
 void ephoto_filter_histogram_eq(Evas_Object *main, Evas_Object *image);
 
 /*file functions*/
diff --git a/src/bin/ephoto_filters.c b/src/bin/ephoto_filters.c
index 4758a59..3f73c1d 100644
--- a/src/bin/ephoto_filters.c
+++ b/src/bin/ephoto_filters.c
@@ -13,7 +13,8 @@ enum _Ephoto_Image_Filter
EPHOTO_IMAGE_FILTER_POSTERIZE,
EPHOTO_IMAGE_FILTER_SEPIA,
EPHOTO_IMAGE_FILTER_SHARPEN,
-   EPHOTO_IMAGE_FILTER_SKETCH
+   EPHOTO_IMAGE_FILTER_SKETCH,
+   EPHOTO_IMAGE_FILTER_SOBEL
 };
 
 struct _Ephoto_Filter
@@ -45,6 +46,7 @@ static Eina_Bool _sepia(void *data);
 static Eina_Bool _negative(void *data);
 static Eina_Bool _posterize(void *data);
 static Eina_Bool _dodge(void *data);
+static Eina_Bool _sobel(void *data);
 static Eina_Bool _histogram_eq(void *data);
 
 static Ephoto_Filter *
@@ -511,7 +513,6 @@ _posterize(void *data)
  return EINA_TRUE;
   }
  }
-
_idler_finishing_cb(ef, EINA_FALSE);
 
return EINA_FALSE;
@@ -610,6 +611,69 @@ _dodge(void *data)
 }
 
 static Eina_Bool
+_sobel(void *data)
+{
+   Ephoto_Filter *ef = data;
+   Evas_Coord x, y, w, h;
+   int i, j, passes = 0;
+   unsigned int *p;
+   float sobx[3][3] = {{-1, 0, 1},
+   {-2, 0, 2},
+   {-1, 0, 1}};
+   float soby[3][3] = {{-1, -2, -1},
+   {0, 0, 0},
+   {1, 2, 1}};
+
+   w = ef->w;
+   h = ef->h;
+   for (y = ef->pos; y < h; y++)
+ {
+p = ef->im_data_new + (y * w);
+for (x = 0; x < w; x++)
+  {
+ int pval = 0, a, r, g, b;
+ double hpval = 0.0, vpval = 0.0;
+ if (y > 0 && x > 0 && y < (h - 2) && x < (w - 2))
+   {
+  for (i = -1; i <= 1; i++)
+{
+   for (j = -1; j <= 1; j++)
+ {
+int index, pix;
+ 
+index = (y + i) * w + x + j;
+pix = ef->im_data[index];
+hpval += pix * sobx[i+1][j+1];
+vpval += pix * soby[i+1][j+1];
+ }
+}
+   }
+ pval = abs(hpval) + abs(vpval);
+ *p = pval;
+ b = (int) ((*p) & 0xff);
+ g = (int) ((*p >> 8) & 0xff);
+ r = (int) ((*p >> 16) & 0xff);
+ a = (int) ((*p >> 24) & 0xff);
+ b = _normalize_color(b);
+ g = _normalize_color(g);
+ r = _normalize_color(r);
+ a = _normalize_color(a);
+ *p = (a << 24) | (r << 16) | (g << 8) | b;
+ p++;
+  }
+passes++;
+if (passes == 500)
+  {
+ ef->pos = y++;
+ return EINA_TRUE;
+  }
+ }
+   _idler_finishing_cb(ef, EINA_FALSE);
+
+   return EINA_FALSE;
+}
+
+static Eina_Bool
 _histogram_eq(void *data)
 {
Ephoto_Filter *ef = data;
@@ -760,7 +824,7 @@ ephoto_filter_cartoon(Evas_Object *main, Evas_Object *image)
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_CARTOON,
main, image);
 
-   ef->rad = 5;
+   ef->rad = 9;
ef->drad = 5.0;
ef->qpos = 0;
ef->qcount = 1;
@@ -793,6 +857,20 @@ void ephoto_filter_sketch(Evas_Object *main, Evas_Object 
*image)
ef->idler = ecore_idler_add(_grayscale, ef);  
 }
 
+void ephoto_filter_edge(Evas_Object *main, Evas_Object *image)
+{
+   Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_SOBEL,
+   main, image);
+
+   ef->rad = 3;
+   ef->qpos = 0;
+   ef->qcount = 2;
+   ef->queue = eina_list_append(ef->queue, _grayscale);
+   ef->queue = eina_list_append(ef->queue, _sobel);
+   ef->popup = _processing(main);
+   ef->idler = ecore_idler_add(_blur, ef);
+}
+
 void
 ephoto_filter_histogram_eq(Evas_Object *main, Evas_Object *image)
 {
diff --git a/src/bin/ephoto_single_browser.c b/src/bin/ephoto_single_browser.c
index 

[EGIT] [core/efl] master 01/01: efl readme - add platfomr support info there and openbsd not supported

2016-06-13 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit d8eae1a1aac6fd29c5c6fda029f9383dbff6f2f8
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Jun 14 10:46:44 2016 +0900

efl readme - add platfomr support info there and openbsd not supported

add some info on platform support in readme and note than openbsd is
not supported.
---
 README | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/README b/README
index 52c8426..fc874b3 100644
--- a/README
+++ b/README
@@ -26,6 +26,17 @@ For more documentation please see:
 
 http://www.enlightenment.org/p.php?p=docs
 
+PLATFORMS
+-
+
+EFL is primarily developerd on Linux (GNU/Linux) and should work on
+most distributions as long as dependencies are provided. It has been
+compiled and run also on Windows (using MINGW32 - please see
+http://www.winbuilds.org ), Mac OS X, FreeBSD and NetBSD. Due to
+serious bugs in OpenBSD, EFL cannot be compiled ro used there. Please
+see:
+
+https://www.mail-archive.com/search?l=m...@openbsd.org=subject:%22SIGCHLD+and+libpthread.so%22=newest=1
 
 
 COMPONENTS

-- 




[E-devel] efl + openbsd == not supported

2016-06-13 Thread The Rasterman
so after some debugging with al poole regarding openbsd it has come to my
attention (thanks al!) that:

https://www.mail-archive.com/search?l=m...@openbsd.org=subject:%22SIGCHLD+and+libpthread.so%22=newest=1

basiclly put we can't use sigchld AND threads on openbsd in the same process...
which basically rules out EFL.

it seems openbsd is just broken using SIGCHLD at least as a real posix +
pthread implementation of unix:

https://www.openbsd.org/papers/eurobsd2012/guenther-rthreads/slide002.html

so ... in general it seems openbsd still suffers from this (al poole has found
that we just are missing sigchlds in both edje_cc from the embryo_cc processes
as well as in enlightenment e.g. with tempget and other slave processes)

so i'm going to take the step of declaring openbsd "not supported" until such a
time as it no longer exhibits such bugs. feel free to point out that this
feedback is incorrect and the bug has been fixed. i can only find traces of the
bug being reported and no information on it being fixed.

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


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] promises...

2016-06-13 Thread Cedric BAIL
On Mon, Jun 13, 2016 at 10:17 AM, Cedric BAIL  wrote:
> On Sun, Jun 12, 2016 at 10:13 PM, Jean-Philippe André  
> wrote:
>> On 13 June 2016 at 03:02, Cedric BAIL  wrote:
>>> On Wed, Jun 8, 2016 at 4:16 AM, Carsten Haitzler 
>>> wrote:
>>> > On Mon, 6 Jun 2016 06:01:13 +0200 Cedric BAIL 
>>> said:
>>> > and you can do the same with eo - you can store the result until cb's
>>> added or
>>> > until a go/done/whatever api is called. but that on;y matters if you
>>> want a
>>> > specific cb for that specific action. in general if you want that hen
>>> you want
>>> > a real object to be returned so you can manage it like other objects.
>>>
>>> As said before, basically what you want is an Eo object which doesn't
>>> behave like a normal eo object. Having its own meaning for ref/unref,
>>> for events and life cycle. At this point, I don't see how it will be
>>> easier for people and not more confusing ?
>>
>> Efl.Part are EO objects that die after a single function call.
>> So, we already have objects with a different lifecycle.
>
> Yes, but you are not supposed to interact with that said object more
> than with just one function. What happen if someone do an
> eo_ref/eo_unref on it ?
>
>> Events are the same: they call a callback function with a user data and an
>> event info (promise value).
>
> No. Event in promise will keep their value until all the reference to
> the promise exist and each time that a callback is triggered that
> reference count goes down by one. There is also an absolute guaranty
> that you can not destroy a promise without having all the reference
> receiving either a succeed or a fail. Also the returned value of an
> event handler for then or cancel should be ignored as you can not stop
> notifying anyone in the chain and the state should stay either success
> or failure once it has been decided.
>
>> For how long is a promise handle valid?
>> Is it valid up until eina_promise_then? What if you just stuff the promise
>> in a _race or _all?
>
> A promise is expecting one couple of cancel/then to be registered.
> Once it is, that promise can still be cancelled by the user if it has
> not triggered any of the callback it registered for, any other use
> will be illegal. If it give it to a _race or _all, he obviously loose
> his chance to register callbacks, so if he want to register them, he
> need to increase the ref count.
>
>> Can you ignore a promise handle altogether? (I guess it would leak)
>
> Will leak inded and make no sense as it is delivering something at the
> end of the pipe. If you do not want it, well, why did you ask for it ?
> :-)
>
>> Anyway it seems the only difference here is that a promise starts the
>> action as soon as possible, while an eo object would have to explicitely be
>> marked as ready (which is very similar to starting the action during
>> eina_promise_then).
>
> No, the main difference is that the life cycle is linked to the
> callbacks and that their should not be any way to bypass it. eo_del
> should also be forbidden for example on a promise as only a cancel
> make sense. Of course we could alias it, and make sure that cancel
> don't destroy the parent. We can also override all eo event API and
> make sure they do what we want, but we can't at the moment override
> eo_ref and eo_unref. The alternative would be to create an Eo_Promise
> which doesn't inherit from Eo_Base (Or make an Eo_Light that both
> would inherit from) and would kind of make clear that it is not an Eo
> object, but a promise object (Given that eo_ref and eo_unref become
> virtual function).

After talking with Felipe, we do not need to override ref/unref. It
will just be slightly more verbose to use than current implementation.
Still below question apply.

> Also at which point do you think user are going to be confused by an
> Eo object where every single function call on it has its own
> documentation and doesn't behave like a normal eo object ?
-- 
Cedric BAIL

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [apps/terminology] master 01/01: options_keys: use an edje layout

2016-06-13 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=37e92063307effe8682998a62ad4e8a69b74bb10

commit 37e92063307effe8682998a62ad4e8a69b74bb10
Author: Boris Faure 
Date:   Fri Jun 10 03:31:10 2016 +0200

options_keys: use an edje layout
---
 data/themes/default.edc | 31 -
 src/bin/options_keys.c  | 71 +
 2 files changed, 66 insertions(+), 36 deletions(-)

diff --git a/data/themes/default.edc b/data/themes/default.edc
index 7b5cc26..5bc66e4 100644
--- a/data/themes/default.edc
+++ b/data/themes/default.edc
@@ -7,6 +7,36 @@ color_classes {
 
 collections {
 
+   group { name: "terminology/keybinding";
+  parts {
+ part { name: "shadow"; type: RECT;
+description { state: "default" 0.0;
+   color: 0 0 0 196;
+}
+ }
+ part { name: "label"; type: TEXT;
+mouse_events: 0;
+effect: SOFT_SHADOW BOTTOM;
+scale: 1;
+description { state: "default" 0.0;
+   fixed: 1 1;
+   rel1.to: "shadow";
+   rel2.to: "shadow";
+   rel1.relative: 0.5 0.5;
+   rel1.offset: 0 0;
+   rel2.relative: 0.5 0.5;
+   rel2.offset: 0 0;
+   color: 255 255 255 255;
+   color3: 0 0 0 18;
+   align: 0.5 0.5;
+   text { font: "Sans"; size: 12;
+  min: 1 1;
+  ellipsis: 0;
+   }
+}
+ }
+  };
+   };
group { name: "terminology/miniview";
   images {
 image: "icon_close.png" COMP;
@@ -1110,7 +1140,6 @@ collections {
  part { name: "tabtitle"; type: TEXT; mouse_events: 0;
 scale: 1;
 effect: SOFT_SHADOW BOTTOM;
-mouse_events: 0;
 description { state: "default" 0.0;
color: 255 255 255 255;
color3: 0 0 0 18;
diff --git a/src/bin/options_keys.c b/src/bin/options_keys.c
index b70035f..d74089c 100644
--- a/src/bin/options_keys.c
+++ b/src/bin/options_keys.c
@@ -10,7 +10,7 @@
 /*XXX: can have only one widget at a time… */
 static Config *_config;
 static Evas_Object *_fr;
-static Evas_Object *_rect, *_bg, *_lbl;
+static Evas_Object *_layout;
 
 static void _hover_del(Evas_Object *o);
 
@@ -154,22 +154,10 @@ _hover_sizing_eval(void)
Evas_Coord x = 0, y = 0, w = 0, h = 0, min_w, min_h, new_x, new_y;
evas_object_geometry_get(_fr, , , , );
 #if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
-   evas_object_geometry_set(_rect, x, y, w, h);
+   evas_object_geometry_set(_layout, x, y, w, h);
 #else
-   evas_object_move(_rect, x, y);
-   evas_object_resize(_rect, w, h);
-#endif
-   evas_object_size_hint_min_get(_lbl, _w, _h);
-   new_x = x + w/2 - min_w/2;
-   new_y = y + h/2 - min_h/2;
-#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
-   evas_object_geometry_set(_lbl, new_x, new_y, min_w, min_h);
-   evas_object_geometry_set(_bg, new_x - 1, new_y - 1, min_w + 2, min_h + 2);
-#else
-   evas_object_move(_lbl, new_x, new_y);
-   evas_object_resize(_lbl, min_w, min_h);
-   evas_object_move(_bg, new_x - 1, new_y - 1);
-   evas_object_resize(_bg, min_w + 2, min_h + 2);
+   evas_object_move(_layout, x, y);
+   evas_object_resize(_layout, w, h);
 #endif
 }
 
@@ -210,7 +198,6 @@ _parent_del_cb(void *data,
 static void
 _hover_del(Evas_Object *o)
 {
-   elm_object_focus_set(o, EINA_FALSE);
evas_object_event_callback_del(o, EVAS_CALLBACK_KEY_UP,
   _cb_key_up);
evas_object_event_callback_del(o, EVAS_CALLBACK_MOUSE_DOWN,
@@ -223,35 +210,49 @@ _hover_del(Evas_Object *o)
   _parent_hide_cb);
evas_object_event_callback_del(_fr, EVAS_CALLBACK_DEL,
   _parent_del_cb);
-   evas_object_del(_bg);
-   _bg = NULL;
-   evas_object_del(_lbl);
-   _lbl = NULL;
evas_object_del(o);
-   _rect = NULL;
+   _layout = NULL;
+}
+
+static void
+_cb_focused(void *data EINA_UNUSED,
+Evas_Object *obj EINA_UNUSED,
+void *event EINA_UNUSED)
+{
+DBG("focused");
+}
+static void
+_cb_unfocused(void *data EINA_UNUSED,
+  Evas_Object *obj EINA_UNUSED,
+  void *event EINA_UNUSED)
+{
+DBG("unfocused");
+if (_layout)
+elm_object_focus_set(_layout, EINA_TRUE);
 }
 
 static void
 on_shortcut_add(void *data,
-Evas_Object *obj,
+Evas_Object *bt,
 void *event_info EINA_UNUSED)
 {
-   Evas_Object *o, *bx;
-
-   bx = data;
+   Evas_Object *o, *oe;
+   Evas_Object *bx = data;
 
-   _rect = o = evas_object_rectangle_add(evas_object_evas_get(obj));
-   evas_object_repeat_events_set(o, EINA_TRUE);
-   evas_object_color_set(o, 0, 0, 0, 127);
-   elm_object_focus_set(o, EINA_TRUE);
+   _layout = o = elm_layout_add(bt);
+   oe = 

[EGIT] [core/efl] master 01/03: ecore-evas-drm: Re-enable direct input callback

2016-06-13 Thread Chris Michael
devilhorns pushed a commit to branch master.

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

commit fb569d7eb0bcc6e4fd9541a3587e5287f9910492
Author: Chris Michael 
Date:   Mon Jun 13 12:49:40 2016 -0400

ecore-evas-drm: Re-enable direct input callback

As it seems the jpeg breakage is over wrt direct input callbacks, we
can re-enable these for the drm engines

@fix

Signed-off-by: Chris Michael 
---
 src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c 
b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
index e396423..0ba8968 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -764,13 +764,12 @@ ecore_evas_drm_new_internal(const char *device, unsigned 
int parent EINA_UNUSED,
ecore_evas_data_set(ee, "device", edata->dev);
 
_ecore_evas_register(ee);
-   ecore_evas_input_event_register(ee);
ecore_event_window_register(ee->prop.window, ee, ee->evas,

(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,

(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,

(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,

(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
-   /* _ecore_event_window_direct_cb_set(ee->prop.window, 
_ecore_evas_input_direct_cb); */
+   _ecore_event_window_direct_cb_set(ee->prop.window, 
_ecore_evas_input_direct_cb);
 
ecore_drm2_output_crtc_size_get(edata->output, , );
 
@@ -900,13 +899,12 @@ ecore_evas_gl_drm_new_internal(const char *device, 
unsigned int parent EINA_UNUS
ecore_evas_data_set(ee, "device", edata->dev);
 
_ecore_evas_register(ee);
-   ecore_evas_input_event_register(ee);
ecore_event_window_register(ee->prop.window, ee, ee->evas,

(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,

(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,

(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,

(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
-   /* _ecore_event_window_direct_cb_set(ee->prop.window, 
_ecore_evas_input_direct_cb); */
+   _ecore_event_window_direct_cb_set(ee->prop.window, 
_ecore_evas_input_direct_cb);
 
ecore_drm2_output_crtc_size_get(edata->output, , );
 

-- 




[EGIT] [core/efl] master 02/03: ecore-evas-wayland: Minor formatting fixes

2016-06-13 Thread Chris Michael
devilhorns pushed a commit to branch master.

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

commit c163e51dd31c5d242b1833d542e1eebdf51d930e
Author: Chris Michael 
Date:   Mon Jun 13 13:00:13 2016 -0400

ecore-evas-wayland: Minor formatting fixes

NB: no functional changes

Signed-off-by: Chris Michael 
---
 src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c | 7 +--
 src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c | 7 +--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
index dc036f3..bb50fd8 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
@@ -449,9 +449,12 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, 
unsigned int parent,

(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process, 

(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process, 

(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
-   _ecore_event_window_direct_cb_set(ee->prop.window, 
_ecore_evas_input_direct_cb);
+   _ecore_event_window_direct_cb_set(ee->prop.window,
+ _ecore_evas_input_direct_cb);
+
+   wdata->sync_handler =
+ ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, _ee_cb_sync_done, ee);
 
-   wdata->sync_handler = ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, 
_ee_cb_sync_done, ee);
ee_list = eina_list_append(ee_list, ee);
 
return ee;
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
index 8086663..e18c06c 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
@@ -358,9 +358,12 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, 
unsigned int parent,

(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process, 

(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process, 

(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
-   _ecore_event_window_direct_cb_set(ee->prop.window, 
_ecore_evas_input_direct_cb);
+   _ecore_event_window_direct_cb_set(ee->prop.window,
+ _ecore_evas_input_direct_cb);
+
+   wdata->sync_handler =
+ ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, _ee_cb_sync_done, ee);
 
-   wdata->sync_handler = ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, 
_ee_cb_sync_done, ee);
ee_list = eina_list_append(ee_list, ee);
 
return ee;

-- 




[EGIT] [core/efl] master 03/03: elput: Fix issue of VT-Switching not working

2016-06-13 Thread Chris Michael
devilhorns pushed a commit to branch master.

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

commit 28f79d458596213ea33dc68755c87f46a140591b
Author: Chris Michael 
Date:   Mon Jun 13 16:18:13 2016 -0400

elput: Fix issue of VT-Switching not working

This patch fixes an issue where you could not VT-switch away from a
running Enlightenment session by simplifying the vt switch code and
passing the proper arguments to the dbus message.

@fix

Signed-off-by: Chris Michael 
---
 src/lib/elput/elput_logind.c | 46 
 1 file changed, 8 insertions(+), 38 deletions(-)

diff --git a/src/lib/elput/elput_logind.c b/src/lib/elput/elput_logind.c
index 22cb1b0..fedb2b0 100644
--- a/src/lib/elput/elput_logind.c
+++ b/src/lib/elput/elput_logind.c
@@ -568,50 +568,20 @@ _logind_close(Elput_Manager *em, int fd)
 static Eina_Bool
 _logind_vt_set(Elput_Manager *em, int vt)
 {
-   Eldbus_Object *obj;
-   Eldbus_Proxy *proxy;
Eldbus_Message *msg;
-   char self[PATH_MAX];
-
-   snprintf(self, sizeof(self), "/org/freedesktop/login1/seat/self");
-
-   obj = eldbus_object_get(em->dbus.conn, "org.freedesktop.login1", self);
-   if (!obj)
- {
-ERR("Could not get dbus object");
-goto obj_err;
- }
-
-   proxy = eldbus_proxy_get(obj, "org.freedesktop.login1.Seat");
-   if (!proxy)
- {
-ERR("Could not get dbus proxy");
-goto proxy_err;
- }
 
-   msg = eldbus_proxy_method_call_new(proxy, "SwitchTo");
-   if (!msg)
- {
-ERR("Could not create method call for proxy");
-goto msg_err;
- }
+   msg =
+ eldbus_message_method_call_new("org.freedesktop.login1",
+"/org/freedesktop/login1/seat/self",
+"org.freedesktop.login1.Seat", "SwitchTo");
+   if (!msg) return EINA_FALSE;
 
-   eldbus_message_arguments_append(msg, "u", );
+   if (!eldbus_message_arguments_append(msg, "u", vt))
+ return EINA_FALSE;
 
-   eldbus_proxy_send(proxy, msg, NULL, NULL, -1);
-
-   eldbus_message_unref(msg);
-   eldbus_proxy_unref(proxy);
-   eldbus_object_unref(obj);
+   eldbus_connection_send(em->dbus.conn, msg, NULL, NULL, -1);
 
return EINA_TRUE;
-
-msg_err:
-   eldbus_proxy_unref(proxy);
-proxy_err:
-   eldbus_object_unref(obj);
-obj_err:
-   return EINA_FALSE;
 }
 
 Elput_Interface _logind_interface =

-- 




Re: [E-devel] Problem with elemines

2016-06-13 Thread Tim Bird
On Thu, Jun 9, 2016 at 7:28 PM, Jérôme Pinot  wrote:

> Le jeudi 09 juin 2016 à 16:53 -0700, Tim Bird a écrit :
> > Hi EFL devs...
> >
> > I am a newbie to EFL development.  I'm trying to write a little test
> > program for EFL, and wanted to test out elemines as an example of
> > some of
> > the techniques.
> > However, I ran into some problems.
> >
> > I am running EFL 17 on Ubuntu 14.04.  I cloned elemines from
> > https://git.enlightenment.org/games/elemines.git
> > and was able to get it built.
> Please use a stable release before reporting bugs. The git version is
> not supposed to work at any time. The last release of elemines could be
> find here: https://sourceforge.net/projects/elemines/files/0.2.3/ It's
> a bit old but should run fine.
> You'll need elementary and etrophy. If your distro doesn't provide it,
> you will have to compile them yourself. Putting them in /usr/local/lib
> is normally not an issue as this path is normally already in your
> /etc/ld.so.conf. You maybe just forgot to launch ldconfig.
>
> I did forget indeed forget to launch ldconfig.

I downloaded the stable release and it has the same (other) problems as
the version I built from the git tree.  But it looks like the segfault (the
most serious problem) might be a bug in EFL 17.0.  I plan to try EFL 17.1
and see if it's been fixed.

Thanks for the quick feedback.
 -- Tim
--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc

2016-06-13 Thread Cedric BAIL
Hello,

On Mon, Jun 13, 2016 at 7:01 AM, Stefan Schmidt  wrote:
> On 13/06/16 14:18, Stefan Schmidt wrote:
>> On 13/06/16 13:16, Tom Hacohen wrote:
>>> As part of the development process of the new Eo API we marked all of
>>> the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I
>>> think we maybe also use EFL_BETA_API_SUPPORT, need to verify that.
>>>
>>> Anyhow, now is time to remove these tags (where appropriate), so these
>>> APIs are released.
>>>
>>> I guess we can just remove all of the occurrences of the EO one, but we
>>> need to be more careful with the other one.
>>>
>>> Is there anyone who has time to take care of this? Stefan? Or should I
>>> try to tackle it on Thursday when I'm done with travel and other stuff I
>>> need to deal with?
>>>
>> I will have a look at it.
>>
>> Are we really sure that all APIs behind  the EFL_EO_API_SUPPORT are
>> really finsalised?
>>
>> We might need to come up with a list of them and brign them up here for
>> the audience.
>>
>
> After removal of the EFL_EO_API_SUPPORT ifdef we have the following new
> APIs that we need to support. (git grep "ifdef EFL_EO_API_SUPPORT")
> I did only list areas here as listing every single new function, struct,
> event, etc would just be to big.
>
> Ecore:
> o ecore_poller
> o ecore_loop_timer

I can't find that one. Do you have a pointer ?

> o ecore_exe

All the ecore one should stay under BETA for now.

> o efl_loop
> o efl_loop_args
> o efl_loop_user
> o efl_loop_fd
>
> Ecore_Con:
> o efl_network
> o efl_network_server
> o efl_network_connector
> o efl_network_client
> o efl_network_url

All Ecore_Con/Efl_Network need to stay under BETA we haven't had the
time to take care of them.

> Edje:
> o edje_object

Will need to be renamed and cleaned as Efl.Canvas.Layout.

> o edje_edit

Shouldn't be an Eo object.

> Eio:
> o eio_job
> o eio_sentry
> o eio_model

Some rename are still going to happen with those, but otherwise that
is fine for now.

> Emotion:
> o emotion_object

This should have been renamed with Efl.Canvas.Video. I did think the
patch did land for that, will have to look at it.

> Evas:
> o canvas/efl_ui_draggable
> o canvas/efl_ui_clickable
> o canvas/efl_ui_scrollable
> o canvas/efl_ui_selectable
> o canvas/efl_ui_zoomable
> o canvas/evas_canvas
> o canvas/efl_canvas_rectangle
> o canvas/evas_textblock
> o canvas/efl_canvas_polygon
> o canvas/evas_object_smart
> o canvas/evas_smart_clipped
> o canvas/evas_common_interface
> o canvas/evas_object
> o canvas/evas_canvas3d_object
> o canvas/evas_canvas3d_texture
> o canvas/evas_canvas3d_material
> o canvas/evas_canvas3d_light
> o canvas/evas_canvas3d_primitive
> o canvas/evas_canvas3d_mesh
> o canvas/evas_canvas3d_node
> o canvas/evas_canvas3d_camera
> o canvas/evas_canvas3d_scene

All the canvas 3d stay a BETA API.

> o canvas/efl_canvas_image_internal
> o canvas/efl_canvas_image
> o canvas/efl_canvas_snapshot
> o canvas/efl_canvas_proxy
> o canvas/efl_canvas_scene3d
> o canvas/evas_vg
> o canvas/efl_vg
> o canvas/efl_vg_container
> o canvas/efl_vg_shape
> o canvas/efl_vg_gradient
> o canvas/efl_vg_gradient_linear
> o canvas/efl_vg_gradient_radial

All the VG API should also stay as a BETA API for now.

> o canvas/efl_event_input
> o canvas/efl_event_pointer
> o canvas/efl_event_key
>
> Elementary:
> o efl_ui_box
> o efl_ui_box_flow
> o efl_ui_grid
> o efl_ui_grid static
> o efl_ui_image
> o efl_ui_win
> o efl_ui_win_standard
> o efl_ui_nstate
> o elc_combobox
> o elc_ctxpopup
> o elc_fileselector
> o elc_fileselector_button
> o elc_fileselector_entry
> o elc_hoversel
> o elc_multibuttonentry
> o elc_naviframe
> o elc_popup
> o elm_actionslider
> o elm_app_client
> o elm_app_client_view
> o elm_app_server
> o elm_app_server_view
> o elm_atspi_app_object
> o elm_atspi_bridge
> o elm_bg
> o elm_bubble
> o elm_button
> o elm_calendar
> o elm_check
> o elm_clock
> o elm_colorselector
> o elm_conform
> o elm_datetime
> o elm_dayselector
> o elm_diskselector
> o elm_entry
> o elm_flip
> o elm_flipselector
> o elm_frame
> o elm_gengrid
> o elm_genlist
> o elm_gesture_layer
> o elm_glview
> o elm_hover
> o elm_icon
> o elm_image
> o elm_index
> o elm_interface_atspi_accessible
> o elm_interface_atspi_accessible
> o elm_interface_atspi_text
> o elm_interface_atspi_widget_action
> o elm_interface_atspi_window
> o elm_interfaces
> o elm_inwin
> o elm_label
> o elm_layout
> o elm_list
> o elm_map
> o elm_menu
> o elm_notify
> o elm_panel
> o elm_panes
> o elm_photo
> o elm_photocam
> o elm_plug
> o elm_prefs
> o elm_progressbar
> o elm_radio
> o elm_route
> o elm_scroller
> o elm_segment_control
> o elm_separator
> o elm_slider
> o elm_slideshow
> o elm_spinner
> o elm_systray
> o elm_thumb
> o elm_toolbar
> o elm_video
> o elm_view_form
> o elm_view_list
> o elm_web
> o elm_win
> o elm_win_standard

A huge rename and cleanup is still to be landed on elm. Some are
obvious some are less. Still the main issue is to review all object
and 

Re: [E-devel] Problem with elemines

2016-06-13 Thread Tim Bird
On Thu, Jun 9, 2016 at 10:10 PM, Cedric BAIL  wrote:

> Hello,
>
> On Thu, Jun 9, 2016 at 4:53 PM, Tim Bird  wrote:
> > I am a newbie to EFL development.  I'm trying to write a little test
> > program for EFL, and wanted to test out elemines as an example of some of
> > the techniques.
> > However, I ran into some problems.
> >
> > I am running EFL 17 on Ubuntu 14.04.  I cloned elemines from
> > https://git.enlightenment.org/games/elemines.git
> > and was able to get it built.
> >
> > 1) - path to libetrophy error
> > When I try to run it, I got the following error message:
> > elemines: error while loading shared libraries: libetrophy.so.0: cannot
> > open shared object file: No such file or directory
> >
> > During the build, I figured out I needed etrophy, and built and installed
> > the shared
> > library for that.  They etrophy libraries ended up in /usr/local/lib
> >
> > I can work around this using 'export LD_LIBRARY_PATH=/usr/local/lib',
> > before running elemines.
>
> Is it possible that either your /usr/local/lib is not your ld.so.conf
> path ? or that you haven't run ldconfig after installing etrophy ?
>

That was it.  Sorry for the dumb error.  It's been a while since
I've done C programming in user-space and I forgot about needing
to re-run ldconfig after installing a new library.


>
> > 2) missing some elementary config
> > When I run elemines (with the right library path), I get a warning from
> the
> > program:
> >
> > ERR<27210>:eio lib/eio/eio_monitor.c:339 eio_monitor_stringshared_add()
> > monitored path '/home/CORPUSERS/10102229/.elementary/config/standard' not
> > found.
> >
> > I don't have the enlightenment window manager installed (to my
> knowledge).
> > I'm not sure what is being looked for here,
> > but the warning is a bit disconcerting.  I can make the warning go away
> by
> > creating the directory
> > ~/.elementary/config/standard, but I'm worried that something is supposed
> > to be there that's not.
>
> Hum, that one I have no clue at the moment. Will see if I can look
> into it tomorrow, but in all case Enlightenment shouldn't be needed.
>
> > 3) Segmentation fault
> > This is the most serious problem.  elemines gets a segmentation fault
> when
> > I do the first mouse click in the
> > game grid.
> >
> > I debugged the program a bit and found that there's a sscanf on a string
> > used to map the mouse click to
> > the game grid.  Here's the sscanf:
> >   sscanf(source, "board[%i,%i]:overlay", , );
> >
> > but here's the value of the 'source' string used with it:
> >   board[item_0x7fff8daa2c60{7,2}]:overlay
> >
> > this is in the routine _click() in src/game.c
> > Note that there's no error handling for the sscanf.  However, the string
> > clearly is not what's expected.
>
> Sorry that you have hit that bug. It is a regression in edje_cc
> provided in efl 1.17 that do not compile correctly elemines. This is
> fixed in current git. I should backport the fix and make sure it is in
> the next release along with a few others. Thanks for the reminder and
> sorry again about this one.
>
> > In another part of the program, there's this line, which seems to specify
> > the string for the
> > mouse click grid mapping.
> >
> > edje_object_signal_callback_add(edje, "mouse,clicked,*",
> > "board\\[*\\]:overlay", _click, NULL);
> >
> > It appears that elemines expects the coordinates from the specified
> string
> > inside the
> > brackets (I'm guessing that's what the * is for in the string.  However,
> I
> > don't know
> > where this 'item_0x7fff8daa2c60{..}' is coming from.
>
> Yes, exactly. edje_cc has generated automatically some names that are
> being passed wrongly in the event name resulting in breaking the
> signal name for elemines. This can be fixed by just changing the edj
> file. I have attached a version of the .edj generated by efl git.
>
> > Is there something from edje that's missing, to have the mouse click
> string
> > come out properly?
>
> Me, backporting the fix I guess. Will do right away.
>

Thanks for the info.
 -- Tim
--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [tools/eflete] master 01/04: Tizen theme: update icon for a group navigator block.

2016-06-13 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

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

commit ef08266af85bea23c86ca97a4a30f28ba70fbcf7
Author: Mykyta Biliavskyi 
Date:   Mon Jun 13 15:47:59 2016 +0300

Tizen theme: update icon for a group navigator block.
---
 data/themes/tizen/images/view_s_group_nor.png | Bin 0 -> 1029 bytes
 data/themes/tizen/widgets/image.edc   |   2 ++
 src/bin/ui/workspace/group_navigator.c|   2 +-
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/data/themes/tizen/images/view_s_group_nor.png 
b/data/themes/tizen/images/view_s_group_nor.png
new file mode 100644
index 000..dd75bed
Binary files /dev/null and b/data/themes/tizen/images/view_s_group_nor.png 
differ
diff --git a/data/themes/tizen/widgets/image.edc 
b/data/themes/tizen/widgets/image.edc
index a9f3c32..d37520a 100644
--- a/data/themes/tizen/widgets/image.edc
+++ b/data/themes/tizen/widgets/image.edc
@@ -46,6 +46,8 @@ IM("icon", "group",  "icon-group.png",  
16 16,   0 0 0 0,
 IM("icon", "group1", "icon-group1.png", 16 16,   0 0 0 0,  
  SCALE,   SOLID)
 IM("icon", "group2", "icon-group2.png", 16 16,   0 0 0 0,  
  SCALE,   SOLID)
 
+IM("icon", "group_navigator","view_s_group_nor.png",16 16,   0 0 0 0,  
  SCALE,   SOLID)
+
 IM("icon", "proxy",  "icon-proxy.png",  16 16,   0 0 0 0,  
  SCALE,   SOLID)
 IM("icon", "proxy1", "icon-proxy1.png", 16 16,   0 0 0 0,  
  SCALE,   SOLID)
 IM("icon", "proxy2", "icon-proxy2.png", 16 16,   0 0 0 0,  
  SCALE,   SOLID)
diff --git a/src/bin/ui/workspace/group_navigator.c 
b/src/bin/ui/workspace/group_navigator.c
index 4c6cdcb..ce551fd 100644
--- a/src/bin/ui/workspace/group_navigator.c
+++ b/src/bin/ui/workspace/group_navigator.c
@@ -2226,7 +2226,7 @@ group_navigator_add(Evas_Object *parent, Group *group)
 
 #ifdef HAVE_TIZEN
Evas_Object *icon;
-   ICON_STANDARD_ADD(pl->layout, icon, true, "file")
+   IMAGE_ADD_NEW(pl->layout, icon, "icon", "group_navigator");
elm_object_part_content_set(pl->layout, "elm.swallow.icon", icon);
 #endif
 

-- 




[EGIT] [tools/eflete] master 04/04: Tizen theme: update style for color preview control.

2016-06-13 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

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

commit 604c5f81d8361cc171533ba4839d1d99c7e48d61
Author: Mykyta Biliavskyi 
Date:   Mon Jun 13 20:55:21 2016 +0300

Tizen theme: update style for color preview control.
---
 data/themes/tizen/widgets/layouts/property.edc | 76 +++---
 1 file changed, 21 insertions(+), 55 deletions(-)

diff --git a/data/themes/tizen/widgets/layouts/property.edc 
b/data/themes/tizen/widgets/layouts/property.edc
index 642e083..a8e26a9 100644
--- a/data/themes/tizen/widgets/layouts/property.edc
+++ b/data/themes/tizen/widgets/layouts/property.edc
@@ -1058,7 +1058,7 @@ group { name: "elm/layout/property/color";
images {
   image: "color-background-50x19.png" COMP;
   image: "color-disable-50x19.png" COMP;
-  image: "color-shadow.png" COMP;
+  image: "border_1.png" COMP;
}
parts {
   part { name: "base";
@@ -1071,90 +1071,56 @@ group { name: "elm/layout/property/color";
   part { name: "bg";
  type: IMAGE;
  description { state: "default" 0.0;
-rel1 {
-   to: "base";
-}
-rel2 {
-   to: "base";
-}
-image {
-   normal: "color-background-50x19.png";
-   middle: DEFAULT;
-}
+image.normal: "color-background-50x19.png";
+rel1.to: "base";
+rel2.to: "base";
  }
   }
   part { name: "elm.swallow.content";
  type: SWALLOW;
  description { state: "default" 0.0;
-rel1 {
-   to: "base";
-}
-rel2 {
-   to: "base";
-}
+rel1.to: "base";
+rel2.to: "base";
  }
   }
   part { name: "disabler";
  type: IMAGE;
  description { state: "default" 0.0;
 visible: 0;
-rel1 {
-   to: "bg";
-}
-rel2 {
-   to: "bg";
-}
-image {
-   normal: "color-disable-50x19.png";
-   middle: DEFAULT;
-}
+image.normal: "color-disable-50x19.png";
+rel1.to: "bg";
+rel2.to: "bg";
  }
  description { state: "disabled" 0.0;
-rel1 {
-   to: "bg";
-}
-rel2 {
-   to: "bg";
-}
-image {
-   normal: "color-disable-50x19.png";
-   middle: DEFAULT;
-}
+inherit: "default" 0.00;
+visible: 1;
  }
   }
-  part { name: "shadow";
+  part { name: "border";
  type: IMAGE;
- repeat_events: 1;
  description { state: "default" 0.0;
-rel1 {
-   to: "base";
-}
-rel2 {
-   to: "base";
-}
+color: 142 142 142 255;
 image {
-   normal: "color-shadow.png";
-   border: 7 7 6 7;
-   middle: DEFAULT;
+   normal: "border_1.png";
+   border: 1 1 1 1;
+   middle: NONE;
 }
+fill.smooth: 0;
+rel1.to: "bg";
+rel2.to: "bg";
  }
   }
   part { name: "event";
  type: RECT;
  description { state: "default" 0.0;
 color: 0 0 0 0;
-rel1 {
-   to: "base";
-}
-rel2 {
-   to: "base";
-}
+rel1.to: "base";
+rel2.to: "base";
  }
  description { state: "disabled" 0.0;
 visible: 0;
  }
   }
-
}
programs {
   program { name: "enabled";

-- 




[EGIT] [tools/eflete] master 02/04: Tizen theme: update style for "eye" check.

2016-06-13 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

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

commit 8c22dc4be33da6bfeb1638cb5e28916ea5b948da
Author: Mykyta Biliavskyi 
Date:   Mon Jun 13 19:58:05 2016 +0300

Tizen theme: update style for "eye" check.
---
 data/themes/tizen/images/group_eye_off_mv.png  | Bin 0 -> 951 bytes
 data/themes/tizen/images/group_eye_off_nor.png | Bin 0 -> 953 bytes
 data/themes/tizen/images/group_eye_off_sel.png | Bin 0 -> 951 bytes
 data/themes/tizen/images/group_eye_on_mv.png   | Bin 0 -> 1232 bytes
 data/themes/tizen/images/group_eye_on_nor.png  | Bin 0 -> 1227 bytes
 data/themes/tizen/images/group_eye_on_sel.png  | Bin 0 -> 1229 bytes
 data/themes/tizen/widgets/check.edc| 215 -
 src/bin/ui/workspace/group_navigator.c |  13 +-
 8 files changed, 185 insertions(+), 43 deletions(-)

diff --git a/data/themes/tizen/images/group_eye_off_mv.png 
b/data/themes/tizen/images/group_eye_off_mv.png
new file mode 100644
index 000..06dfc15
Binary files /dev/null and b/data/themes/tizen/images/group_eye_off_mv.png 
differ
diff --git a/data/themes/tizen/images/group_eye_off_nor.png 
b/data/themes/tizen/images/group_eye_off_nor.png
new file mode 100644
index 000..d9056df
Binary files /dev/null and b/data/themes/tizen/images/group_eye_off_nor.png 
differ
diff --git a/data/themes/tizen/images/group_eye_off_sel.png 
b/data/themes/tizen/images/group_eye_off_sel.png
new file mode 100644
index 000..8537739
Binary files /dev/null and b/data/themes/tizen/images/group_eye_off_sel.png 
differ
diff --git a/data/themes/tizen/images/group_eye_on_mv.png 
b/data/themes/tizen/images/group_eye_on_mv.png
new file mode 100644
index 000..d7d6161
Binary files /dev/null and b/data/themes/tizen/images/group_eye_on_mv.png differ
diff --git a/data/themes/tizen/images/group_eye_on_nor.png 
b/data/themes/tizen/images/group_eye_on_nor.png
new file mode 100644
index 000..d2658c1
Binary files /dev/null and b/data/themes/tizen/images/group_eye_on_nor.png 
differ
diff --git a/data/themes/tizen/images/group_eye_on_sel.png 
b/data/themes/tizen/images/group_eye_on_sel.png
new file mode 100644
index 000..9808594
Binary files /dev/null and b/data/themes/tizen/images/group_eye_on_sel.png 
differ
diff --git a/data/themes/tizen/widgets/check.edc 
b/data/themes/tizen/widgets/check.edc
index 41ffb28..45ff639 100644
--- a/data/themes/tizen/widgets/check.edc
+++ b/data/themes/tizen/widgets/check.edc
@@ -499,13 +499,40 @@ group { name: "elm/check/base/default";
   }
}
 }
-
 group { name: "elm/check/base/eye";
images {
- image: "eye_on_icon_nor.png" COMP;
- image: "eye_off_icon_nor.png" COMP;
+  image: "group_eye_off_nor.png" COMP;
+  image: "group_eye_off_mv.png" COMP;
+  image: "group_eye_off_sel.png" COMP;
+  image: "group_eye_on_nor.png" COMP;
+  image: "group_eye_on_mv.png" COMP;
+  image: "group_eye_on_sel.png" COMP;
}
parts {
+  part { name: "dummy.state";
+ type: RECT;
+ description { state: "default" 0.0;
+color: 0 0 0 0;
+ }
+ description { state: "on" 0.0;
+inherit: "default" 0.00;
+ }
+ description { state: "off" 0.0;
+inherit: "default" 0.00;
+ }
+  }
+  part { name: "dummy.selected";
+ type: RECT;
+ description { state: "default" 0.0;
+color: 0 0 0 0;
+ }
+ description { state: "selected" 0.0;
+inherit: "default" 0.00;
+ }
+ description { state: "unselected" 0.0;
+inherit: "default" 0.00;
+ }
+  }
   part { name: "bg";
  type: IMAGE;
  mouse_events: 0;
@@ -515,12 +542,23 @@ group { name: "elm/check/base/eye";
 min: 16 16;
 max: 16 16;
 aspect: 1.0 1.0;
-image.normal: "eye_off_icon_nor.png";
+image.normal: "group_eye_off_nor.png";
  }
- description { state: "disabled" 0.0;
+ description { state: "hovered" 0.0;
 inherit: "default" 0.00;
-color_class: "bg_scroller_disabled";
-image.border: 8 8 8 8;
+image.normal: "group_eye_off_mv.png";
+ }
+ description { state: "hidden" 0.0;
+inherit: "default" 0.00;
+visible: 0;
+fill.smooth: 0;
+ }
+ description { state: "selected" 0.0;
+inherit: "hovered" 0.00;
+image {
+   normal: "group_eye_off_sel.png";
+   border: 8 8 8 8;
+}
  }
   }
   part { name: "check";
@@ -529,39 +567,22 @@ group { name: "elm/check/base/eye";
  scale: 1;
  clip_to: "clipper";
  description { state: "default" 0.0;
-visible: 0;
-image.normal: "eye_on_icon_nor.png";
-rel1 {
-   

[EGIT] [tools/eflete] master 03/04: Tizen theme: update colorr_class style for combobox.

2016-06-13 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

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

commit dfef770ebb12dbeeaaf5a6f7be266283f81783ff
Author: Mykyta Biliavskyi 
Date:   Mon Jun 13 20:42:30 2016 +0300

Tizen theme: update colorr_class style for  combobox.
---
 data/themes/ewe_tizen/widgets/combobox.edc | 373 +++--
 .../ewe_tizen/widgets/images/color_class_img.png   | Bin 0 -> 127 bytes
 data/themes/tizen/widgets/image.edc|  13 +-
 3 files changed, 140 insertions(+), 246 deletions(-)

diff --git a/data/themes/ewe_tizen/widgets/combobox.edc 
b/data/themes/ewe_tizen/widgets/combobox.edc
index 5d38d75..24d69a5 100644
--- a/data/themes/ewe_tizen/widgets/combobox.edc
+++ b/data/themes/ewe_tizen/widgets/combobox.edc
@@ -356,13 +356,9 @@ images {
 
 group { name: "ewe/combobox/base/color_class";
images {
-  image: "dropdown-bg.png" COMP;
-  image: "dropdown-focus-bg.png" COMP;
-  image: "dropdown-bg_unactive.png" COMP;
-  image: "icon-slidedown.png" COMP;
-  image: "icon-slideup.png" COMP;
-  image: "color-background-2.png" COMP;
-  image: "color-shadow-2.png" COMP;
+  image: "drop_arrow_nor.png" COMP;
+  image: "drop_arrow_sel.png" COMP;
+  image: "color_class_img.png" COMP;
}
 
min: 76 24;
@@ -407,12 +403,12 @@ group { name: "ewe/combobox/base/color_class";
  description { state: "default" 0.0;
 max: 9 5;
 image.normal: "drop_arrow_nor.png";
+fill.smooth: 0;
 rel1.to: "right.offset";
 rel2.to: "right.offset";
  }
  description { state: "expanded" 0.0;
 inherit: "default" 0.00;
-max: 8 4;
 image.normal: "drop_arrow_sel.png";
  }
   }
@@ -424,155 +420,113 @@ group { name: "ewe/combobox/base/color_class";
 color: 88 88 88 255;
 text {
text: "";
-   font: FN;
+   font: "PT";
size: 15;
max: 1 1;
 }
 rel1.offset: 5 0;
  }
   }
+  part { name: "bg.color.color1";
+ type: RECT;
+ description { state: "default" 0.0;
+color: 142 142 142 255;
+rel1.to: "bg.color1";
+rel2.to: "bg.color1";
+ }
+  }
+  part { name: "bg.color.color2";
+ type: RECT;
+ description { state: "default" 0.0;
+color: 142 142 142 255;
+rel1.to: "bg.color2";
+rel2.to: "bg.color2";
+ }
+  }
+  part { name: "bg.color.color3";
+ type: RECT;
+ description { state: "default" 0.0;
+color: 142 142 142 255;
+rel1.to: "bg.color3";
+rel2.to: "bg.color3";
+ }
+  }
   part { name: "bg.color3";
  type: IMAGE;
  description { state: "default" 0.0;
 align: 1.0 0.5;
-min: 16 13;
-max: 16 13;
-rel1 {
-   to: "bg0";
-}
+min: 11 11;
+max: 11 11;
+image.normal: "color_class_img.png";
+fill.smooth: 0;
+rel1.to: "bg0";
 rel2 {
relative: 0.0 1.0;
offset: -7 -1;
to_x: "right.offset";
to_y: "bg0";
 }
-image {
-   normal: "color-background-2.png";
-   middle: DEFAULT;
-}
  }
   }
   part { name: "bg.color2";
  type: IMAGE;
  description { state: "default" 0.0;
 align: 1.0 0.5;
-min: 16 13;
-max: 16 13;
-rel1 {
-   to: "bg0";
-}
+min: 11 11;
+max: 11 11;
+image.normal: "color_class_img.png";
+fill.smooth: 0;
+rel1.to: "bg0";
 rel2 {
relative: 0.0 1.0;
offset: -6 -1;
to_x: "bg.color3";
to_y: "bg0";
 }
-image {
-   normal: "color-background-2.png";
-   middle: DEFAULT;
-}
  }
   }
   part { name: "bg.color1";
  type: IMAGE;
  description { state: "default" 0.0;
 align: 1.0 0.5;
-min: 16 13;
-max: 16 13;
-rel1 {
-   to: "bg0";
-}
+min: 11 11;
+max: 11 11;
+image.normal: "color_class_img.png";
+fill.smooth: 0;
+rel1.to: "bg0";
 rel2 {
relative: 0.0 1.0;
offset: -6 -1;
to_x: "bg.color2";
to_y: "bg0";
 }
-image {
-   normal: "color-background-2.png";
-   middle: DEFAULT;
-}
 

[EGIT] [core/efl] master 01/01: edje: make svg support a beta feature of edje_cc.

2016-06-13 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit ba0aac69092cfe7ab0f1a89048e57fb621527977
Author: Cedric BAIL 
Date:   Mon Jun 13 10:54:18 2016 -0700

edje: make svg support a beta feature of edje_cc.

Should we do the same with Canvas3D part ?
---
 src/bin/edje/edje_cc.c | 5 +
 src/bin/edje/edje_cc.h | 1 +
 src/bin/edje/edje_cc_out.c | 7 +--
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/bin/edje/edje_cc.c b/src/bin/edje/edje_cc.c
index 9452fff..63a62b1 100644
--- a/src/bin/edje/edje_cc.c
+++ b/src/bin/edje/edje_cc.c
@@ -42,6 +42,7 @@ intthreads = 0;
 intannotate = 0;
 intno_etc1 = 0;
 intno_etc2 = 0;
+intbeta = 0;
 
 static void
 _edje_cc_log_cb(const Eina_Log_Domain *d,
@@ -310,6 +311,10 @@ main(int argc, char **argv)
 depfile = argv[i];
 unlink(depfile);
  }
+else if (!strcmp(argv[i], "-beta"))
+  {
+ beta = 1;
+  }
else if (!file_in)
  file_in = argv[i];
else if (!file_out)
diff --git a/src/bin/edje/edje_cc.h b/src/bin/edje/edje_cc.h
index ad930c9..e73ba01 100644
--- a/src/bin/edje/edje_cc.h
+++ b/src/bin/edje/edje_cc.h
@@ -306,6 +306,7 @@ extern intthreads;
 extern intannotate;
 extern Eina_Bool current_group_inherit;
 extern Eina_List *color_tree_root;
+extern intbeta;
 
 extern int had_quote;
 
diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index 8239918..eb708d9 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -1235,7 +1235,7 @@ on_error:
 static void
 data_write_vectors(Eet_File *ef, int *vector_num)
 {
-   int i;
+   unsigned int i;
Svg_Node *root;
Eet_Data_Descriptor *svg_node_eet;
Eina_List *ll;
@@ -1249,8 +1249,11 @@ data_write_vectors(Eet_File *ef, int *vector_num)
 
svg_node_eet = _edje_svg_node_eet();
 
-   for (i = 0; i < (int)edje_file->image_dir->vectors_count; i++)
+   for (i = 0; i < edje_file->image_dir->vectors_count; i++)
  {
+if (!beta)
+  error_and_abort(ef, "Vector part are currently a beta feature, 
please enable them by running edje_cc with -beta.");
+
 vector = _file->image_dir->vectors[i];
 EINA_LIST_FOREACH(img_dirs, ll, s)
   {

-- 




Re: [E-devel] promises...

2016-06-13 Thread Felipe Magno de Almeida
Sorry for top-posting. But let me summarize the Promise lifetime:

A Promise when created starts with a ref-count of 1.
If the promise is not needed anymore, it should be
unref'ed (if no eina_promise_then is made, either
directly or by eina_promise_all/eina_promise_race).

The first eina_promise_then _steals_ the first
reference, the others eina_promise_then
increments the reference count.

When the promise is fulfilled (by value_set or error_set),
then each call to a eina_promise_then decrements
the reference count by 1.

When the reference count reaches 0 _and_ the
promise is fulfilled the promise is deleted (both
conditions must be true, if just one is true it
continues to exist).

So, valid cases:

Eina_Promise* p = ..;
eina_promise_then(p, ...);
// promise will be deleted
// when callback for the then is called

Eina_Promise* p = ...;
eina_promise_unref(p);
// Promise will be freed when promise is fulfilled
// by error_set or value_set

Eina_Promise* p = ...;
eina_promise_then(p, ...);
eina_promise_then(p, ...);
// promise will be deleted
// when callback for the then is called

Eina_Promise* p = ...;
eina_promise_all(p, ...);
eina_promise_then(p, ...);
// promise will be deleted
// when callback for the then is called

Eina_Promise* p = ...;
eina_promise_all(p, ...);
// promise will be deleted
// when callback for the then is called

Etc..

Regards,
--
Felipe Magno de Almeida


On Mon, Jun 13, 2016 at 2:17 PM, Cedric BAIL  wrote:
> Hello,
>
> On Sun, Jun 12, 2016 at 10:13 PM, Jean-Philippe André  
> wrote:
>> On 13 June 2016 at 03:02, Cedric BAIL  wrote:
>>> On Wed, Jun 8, 2016 at 4:16 AM, Carsten Haitzler 
>>> wrote:
>>> > On Mon, 6 Jun 2016 06:01:13 +0200 Cedric BAIL 
>>> said:
>>> > and you can do the same with eo - you can store the result until cb's
>>> added or
>>> > until a go/done/whatever api is called. but that on;y matters if you
>>> want a
>>> > specific cb for that specific action. in general if you want that hen
>>> you want
>>> > a real object to be returned so you can manage it like other objects.
>>>
>>> As said before, basically what you want is an Eo object which doesn't
>>> behave like a normal eo object. Having its own meaning for ref/unref,
>>> for events and life cycle. At this point, I don't see how it will be
>>> easier for people and not more confusing ?
>>
>> Efl.Part are EO objects that die after a single function call.
>> So, we already have objects with a different lifecycle.
>
> Yes, but you are not supposed to interact with that said object more
> than with just one function. What happen if someone do an
> eo_ref/eo_unref on it ?
>
>> Events are the same: they call a callback function with a user data and an
>> event info (promise value).
>
> No. Event in promise will keep their value until all the reference to
> the promise exist and each time that a callback is triggered that
> reference count goes down by one. There is also an absolute guaranty
> that you can not destroy a promise without having all the reference
> receiving either a succeed or a fail. Also the returned value of an
> event handler for then or cancel should be ignored as you can not stop
> notifying anyone in the chain and the state should stay either success
> or failure once it has been decided.
>
>> For how long is a promise handle valid?
>> Is it valid up until eina_promise_then? What if you just stuff the promise
>> in a _race or _all?
>
> A promise is expecting one couple of cancel/then to be registered.
> Once it is, that promise can still be cancelled by the user if it has
> not triggered any of the callback it registered for, any other use
> will be illegal. If it give it to a _race or _all, he obviously loose
> his chance to register callbacks, so if he want to register them, he
> need to increase the ref count.
>
>> Can you ignore a promise handle altogether? (I guess it would leak)
>
> Will leak inded and make no sense as it is delivering something at the
> end of the pipe. If you do not want it, well, why did you ask for it ?
> :-)
>
>> Anyway it seems the only difference here is that a promise starts the
>> action as soon as possible, while an eo object would have to explicitely be
>> marked as ready (which is very similar to starting the action during
>> eina_promise_then).
>
> No, the main difference is that the life cycle is linked to the
> callbacks and that their should not be any way to bypass it. eo_del
> should also be forbidden for example on a promise as only a cancel
> make sense. Of course we could alias it, and make sure that cancel
> don't destroy the parent. We can also override all eo event API and
> make sure they do what we want, but we can't at the moment override
> eo_ref and eo_unref. The alternative would be to create an Eo_Promise
> which doesn't inherit from Eo_Base (Or make an Eo_Light that both
> would inherit from) and would kind of make clear that it is 

Re: [E-devel] promises...

2016-06-13 Thread Cedric BAIL
Hello,

On Sun, Jun 12, 2016 at 10:13 PM, Jean-Philippe André  wrote:
> On 13 June 2016 at 03:02, Cedric BAIL  wrote:
>> On Wed, Jun 8, 2016 at 4:16 AM, Carsten Haitzler 
>> wrote:
>> > On Mon, 6 Jun 2016 06:01:13 +0200 Cedric BAIL 
>> said:
>> > and you can do the same with eo - you can store the result until cb's
>> added or
>> > until a go/done/whatever api is called. but that on;y matters if you
>> want a
>> > specific cb for that specific action. in general if you want that hen
>> you want
>> > a real object to be returned so you can manage it like other objects.
>>
>> As said before, basically what you want is an Eo object which doesn't
>> behave like a normal eo object. Having its own meaning for ref/unref,
>> for events and life cycle. At this point, I don't see how it will be
>> easier for people and not more confusing ?
>
> Efl.Part are EO objects that die after a single function call.
> So, we already have objects with a different lifecycle.

Yes, but you are not supposed to interact with that said object more
than with just one function. What happen if someone do an
eo_ref/eo_unref on it ?

> Events are the same: they call a callback function with a user data and an
> event info (promise value).

No. Event in promise will keep their value until all the reference to
the promise exist and each time that a callback is triggered that
reference count goes down by one. There is also an absolute guaranty
that you can not destroy a promise without having all the reference
receiving either a succeed or a fail. Also the returned value of an
event handler for then or cancel should be ignored as you can not stop
notifying anyone in the chain and the state should stay either success
or failure once it has been decided.

> For how long is a promise handle valid?
> Is it valid up until eina_promise_then? What if you just stuff the promise
> in a _race or _all?

A promise is expecting one couple of cancel/then to be registered.
Once it is, that promise can still be cancelled by the user if it has
not triggered any of the callback it registered for, any other use
will be illegal. If it give it to a _race or _all, he obviously loose
his chance to register callbacks, so if he want to register them, he
need to increase the ref count.

> Can you ignore a promise handle altogether? (I guess it would leak)

Will leak inded and make no sense as it is delivering something at the
end of the pipe. If you do not want it, well, why did you ask for it ?
:-)

> Anyway it seems the only difference here is that a promise starts the
> action as soon as possible, while an eo object would have to explicitely be
> marked as ready (which is very similar to starting the action during
> eina_promise_then).

No, the main difference is that the life cycle is linked to the
callbacks and that their should not be any way to bypass it. eo_del
should also be forbidden for example on a promise as only a cancel
make sense. Of course we could alias it, and make sure that cancel
don't destroy the parent. We can also override all eo event API and
make sure they do what we want, but we can't at the moment override
eo_ref and eo_unref. The alternative would be to create an Eo_Promise
which doesn't inherit from Eo_Base (Or make an Eo_Light that both
would inherit from) and would kind of make clear that it is not an Eo
object, but a promise object (Given that eo_ref and eo_unref become
virtual function).

Also at which point do you think user are going to be confused by an
Eo object where every single function call on it has its own
documentation and doesn't behave like a normal eo object ?
-- 
Cedric BAIL

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [tools/eflete] master 01/02: Tizen theme: replace icon resource for a image part type.

2016-06-13 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

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

commit ebb58974abddfbaa269556de12fe951a518230d6
Author: Mykyta Biliavskyi 
Date:   Mon Jun 13 15:26:56 2016 +0300

Tizen theme: replace icon resource for a image part type.
---
 data/themes/tizen/images/icon-image.png  | Bin 1120 -> 1072 bytes
 data/themes/tizen/images/icon-image1.png | Bin 1105 -> 1138 bytes
 data/themes/tizen/images/icon-image2.png | Bin 1121 -> 1091 bytes
 3 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/data/themes/tizen/images/icon-image.png 
b/data/themes/tizen/images/icon-image.png
index b682e3c..759350e 100644
Binary files a/data/themes/tizen/images/icon-image.png and 
b/data/themes/tizen/images/icon-image.png differ
diff --git a/data/themes/tizen/images/icon-image1.png 
b/data/themes/tizen/images/icon-image1.png
index 14e2c64..5cc0958 100644
Binary files a/data/themes/tizen/images/icon-image1.png and 
b/data/themes/tizen/images/icon-image1.png differ
diff --git a/data/themes/tizen/images/icon-image2.png 
b/data/themes/tizen/images/icon-image2.png
index c5e774a..85656d6 100644
Binary files a/data/themes/tizen/images/icon-image2.png and 
b/data/themes/tizen/images/icon-image2.png differ

-- 




[EGIT] [tools/eflete] master 02/02: Fix default config path for OS X

2016-06-13 Thread se.osadchy
rimmed pushed a commit to branch master.

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

commit 3dbfb3f0fdf051d1024fb93fb35aa4e0c40e4239
Author: se.osadchy 
Date:   Mon Jun 13 19:09:51 2016 +0300

Fix default config path for OS X
---
 src/bin/config/config.c | 21 +
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/bin/config/config.c b/src/bin/config/config.c
index 0c11080..bc2c529 100644
--- a/src/bin/config/config.c
+++ b/src/bin/config/config.c
@@ -37,6 +37,19 @@ static Eet_Data_Descriptor *edd_profile = NULL;
 static Eet_Data_Descriptor *edd_keys = NULL;
 static Eet_Data_Descriptor *edd_color = NULL;
 
+#ifdef __APPLE__
+Eina_Stringshare *
+config_dir_get(void)
+{
+   const char *conf_path = NULL;
+   Eina_Stringshare *cfg;
+
+   conf_path = "Library/Preferences";
+   cfg = eina_stringshare_printf("%s/%s", getenv("HOME"), conf_path);
+
+   return cfg;
+}
+#else
 Eina_Stringshare *
 config_dir_get(void)
 {
@@ -53,7 +66,7 @@ config_dir_get(void)
  }
return cfg;
 }
-
+#endif
 static Eina_Stringshare *
 _config_file_path_get(void)
 {
@@ -505,15 +518,15 @@ config_save(void)
tmp = _config_tmp_file_path_get(cfg);
 
ef = eet_open(tmp, EET_FILE_MODE_WRITE);
-   if (!ef) return false;
+   if (!ef) return EINA_FALSE;
ok = eet_data_write(ef, edd_base, CONFIG_FILE_KEY, config, 1);
eet_close(ef);
-   if (!ok) return false;
+   if (!ok) return EINA_FALSE;
ecore_file_mv(tmp, cfg);
 
eina_stringshare_del(tmp);
eina_stringshare_del(cfg);
-   return true;
+   return EINA_TRUE;
 }
 
 Config *

-- 




[EGIT] [core/enlightenment] master 01/01: add separate mouse in/out handlers for internal wins

2016-06-13 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 771f71e6a9db7b33d955d63e03cabbfcc5516af7
Author: Mike Blumenkrantz 
Date:   Mon Jun 13 12:00:09 2016 -0400

add separate mouse in/out handlers for internal wins

internal wayland windows are windows with ssd, meaning they can only receive
pointer events on the contents of the window and not the entire window 
including
decoration regions

ref T3819
---
 src/bin/e_comp_object.c | 23 ++
 src/bin/e_comp_wl.c | 62 ++---
 2 files changed, 71 insertions(+), 14 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 1bead67..a9432a9 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -992,6 +992,24 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj)
 /
 
 static void
+_e_comp_object_internal_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void *event_info)
+{
+   E_Comp_Object *cw = data;
+
+   evas_object_smart_callback_call(cw->smart_obj, "mouse_in", event_info);
+}
+
+static void
+_e_comp_object_internal_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void *event_info)
+{
+   E_Comp_Object *cw = data;
+
+   evas_object_smart_callback_call(cw->smart_obj, "mouse_out", event_info);
+}
+
+/
+
+static void
 _e_comp_object_client_pending_resize_add(E_Client *ec,
  int w,
  int h,
@@ -1715,6 +1733,11 @@ _e_comp_intercept_show(void *data, Evas_Object *obj 
EINA_UNUSED)
 evas_object_name_set(cw->obj, "cw->obj");
 evas_object_image_colorspace_set(cw->obj, EVAS_COLORSPACE_ARGB);
 _e_comp_object_alpha_set(cw);
+if (cw->ec->internal)
+  {
+ evas_object_event_callback_add(cw->obj, EVAS_CALLBACK_MOUSE_IN, 
_e_comp_object_internal_mouse_in, cw);
+ evas_object_event_callback_add(cw->obj, EVAS_CALLBACK_MOUSE_OUT, 
_e_comp_object_internal_mouse_out, cw);
+  }
 #ifdef BORDER_ZOOMAPS
 e_comp_object_zoomap_set(o, 1);
 #else
diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 13c715d..855f549 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -134,17 +134,13 @@ _e_comp_wl_evas_cb_hide(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *obj EIN
 }
 
 static void
-_e_comp_wl_evas_cb_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void *event EINA_UNUSED)
+_e_comp_wl_mouse_in(E_Client *ec, Evas_Event_Mouse_In *ev)
 {
-   E_Client *ec;
-   Evas_Event_Mouse_In *ev;
struct wl_resource *res;
struct wl_client *wc;
Eina_List *l;
uint32_t serial;
 
-   ev = event;
-   if (!(ec = data)) return;
if (e_object_is_del(E_OBJECT(ec))) return;
 
if (!ec->comp_data->surface) return;
@@ -169,15 +165,25 @@ _e_comp_wl_evas_cb_mouse_in(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *obj
 }
 
 static void
-_e_comp_wl_evas_cb_mouse_out(void *data, Evas *evas EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void *event EINA_UNUSED)
+_e_comp_wl_evas_cb_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
+{
+   _e_comp_wl_mouse_in(data, event_info);
+}
+
+static void
+_e_comp_wl_cb_internal_mouse_in(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info)
+{
+   _e_comp_wl_mouse_in(data, event_info);
+}
+
+static void
+_e_comp_wl_mouse_out(E_Client *ec, Evas_Event_Mouse_Out *ev EINA_UNUSED)
 {
-   E_Client *ec;
struct wl_resource *res;
struct wl_client *wc;
Eina_List *l;
uint32_t serial;
 
-   if (!(ec = data)) return;
if (ec->cur_mouse_action && e_grabinput_mouse_win_get()) return;
/* FIXME? this is a hack to just reset the cursor whenever we mouse out. 
not sure if accurate */
{
@@ -210,6 +216,18 @@ _e_comp_wl_evas_cb_mouse_out(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *ob
 }
 
 static void
+_e_comp_wl_evas_cb_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
+{
+   _e_comp_wl_mouse_out(data, event_info);
+}
+
+static void
+_e_comp_wl_cb_internal_mouse_out(void *data, Evas_Object *obj EINA_UNUSED, 
void *event_info)
+{
+   _e_comp_wl_mouse_out(data, event_info);
+}
+
+static void
 _e_comp_wl_send_mouse_move(E_Client *ec, int x, int y, unsigned int timestamp)
 {
struct wl_resource *res;
@@ -234,6 +252,7 @@ _e_comp_wl_evas_cb_mouse_move(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *o
Evas_Event_Mouse_Move *ev = event;
 
if (ec->cur_mouse_action) return;
+   if (!ec->mouse.in) return;
if (e_object_is_del(E_OBJECT(ec))) return;
if (ec->ignored) return;
if (!ec->comp_data->surface) return;
@@ -278,6 +297,7 @@ 

[EGIT] [core/efl] master 01/01: eolian: fix impl func fill

2016-06-13 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 54590d677eac410744f1c68ae073c15f6b457ff6
Author: Daniel Kolesa 
Date:   Mon Jun 13 16:24:20 2016 +0100

eolian: fix impl func fill

If there is a dot in the remaining part of the implement, it means it
actually implements another class - do not fail in those cases.
---
 src/lib/eolian/database_fill.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c
index c75f517..286b471 100644
--- a/src/lib/eolian/database_fill.c
+++ b/src/lib/eolian/database_fill.c
@@ -30,7 +30,7 @@ _get_impl_func(Eolian_Class *cl, Eolian_Implement *impl,
else
  return EINA_TRUE;
if (strchr(imstr, '.'))
- return EINA_FALSE;
+ return EINA_TRUE;
impl->klass = cl;
*foo_id = (Eolian_Function*)eolian_class_function_get_by_name(cl, imstr,
  ftype);

-- 




Re: [E-devel] [EGIT] [core/efl] master 02/02: benchmark: eo: add missing phthread flag to linker

2016-06-13 Thread Cedric BAIL
On Jun 13, 2016 3:01 AM, "Stefan Schmidt"  wrote:
>
> stefan pushed a commit to branch master.
>
>
http://git.enlightenment.org/core/efl.git/commit/?id=4a59fc4eb5465d96e8b1ca7b7e1e72c23e0cd422
>
> commit 4a59fc4eb5465d96e8b1ca7b7e1e72c23e0cd422
> Author: Stefan Schmidt 
> Date:   Mon Jun 13 11:08:46 2016 +0200
>
> benchmark: eo: add missing phthread flag to linker

That should be part of eo ldflags provided by configure otherwise you break
build without cflags. Maybe it is actually missing Eina ldflags. Sorry on
the train can't look more than that at the moment.

> /usr/bin/ld: class_simple.o: undefined reference to symbol
'pthread_spin_trylock@@GLIBC_2.2.5'
> //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO
missing from command line
> ---
>  src/benchmarks/eo/Makefile.am | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/benchmarks/eo/Makefile.am b/src/benchmarks/eo/Makefile.am
> index 9fa4c1e..a2aac48 100644
> --- a/src/benchmarks/eo/Makefile.am
> +++ b/src/benchmarks/eo/Makefile.am
> @@ -25,7 +25,8 @@ eo_bench_eo_add.c
>  eo_bench_LDADD = \
>  $(top_builddir)/src/lib/eo/libeo.la \
>  $(top_builddir)/src/lib/eina/libeina.la \
> -@EO_LDFLAGS@
> +@EO_LDFLAGS@ \
> +-lpthread
>
>  clean-local:
> rm -rf *.gcno ..\#..\#src\#*.gcov *.gcda
>
> --
>
>
>
--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: evas: loaders fix typo which blocked the installation of the LO loader script

2016-06-13 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 17026d963dfdba1b6701edafa52e5a2fdf54b144
Author: Stefan Schmidt 
Date:   Mon Jun 13 17:20:58 2016 +0200

evas: loaders fix typo which blocked the installation of the LO loader 
script

Its SCRIPTS not SCRIPT to make automake aware of it.

Fixes T3848
---
 src/Makefile_Evas.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am
index 93643d1..82ac218 100644
--- a/src/Makefile_Evas.am
+++ b/src/Makefile_Evas.am
@@ -2388,14 +2388,14 @@ evasgenericloadersdir = \
 $(libdir)/evas/utils
 
 evasgenericloaders_PROGRAMS =
-evasgenericloaders_SCRIPT =
+evasgenericloaders_SCRIPTS =
 
 ### Libreoffice converter to pdf
 EXTRA_DIST2 += generic/evas/pdf/evas_generic_pdf_loader.libreoffice
 
 if HAVE_POPPLER
 
-evasgenericloaders_SCRIPT += 
generic/evas/pdf/evas_generic_pdf_loader.libreoffice
+evasgenericloaders_SCRIPTS += 
generic/evas/pdf/evas_generic_pdf_loader.libreoffice
 evasgenericloaders_PROGRAMS += generic/evas/pdf/evas_image_loader.pdf
 
 generic_evas_pdf_evas_image_loader_pdf_SOURCES = \

-- 




[EGIT] [core/efl] master 01/01: evas: loaders: fix install exec hook by adding the needed semicolon

2016-06-13 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 7d347e85fcd9be3f633b78b779187f089ac05d1e
Author: Stefan Schmidt 
Date:   Mon Jun 13 17:07:28 2016 +0200

evas: loaders: fix install exec hook by adding the needed semicolon

Thanks to Scimmia22 for pointing this out.
---
 src/Makefile_Evas.am | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am
index 9ce7fad..93643d1 100644
--- a/src/Makefile_Evas.am
+++ b/src/Makefile_Evas.am
@@ -2420,7 +2420,7 @@ generic_evas_pdf_evas_image_loader_pdf_LDADD = 
@USE_EINA_LIBS@ @POPPLER_LIBS@ @S
 generic_evas_pdf_evas_image_loader_pdf_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@
 
 EFL_INSTALL_EXEC_HOOK += \
-mkdir -p $(DESTDIR)$(libdir)/evas/utils \
+mkdir -p $(DESTDIR)$(libdir)/evas/utils; \
 ln -sf evas_image_loader.pdf 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ppt; \
 ln -sf evas_image_loader.pdf 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.pptx; \
 ln -sf evas_image_loader.pdf 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.odp; \
@@ -2482,7 +2482,7 @@ generic_evas_raw_evas_image_loader_raw_CFLAGS = \
 @LIBRAW_CFLAGS@
 
 EFL_INSTALL_EXEC_HOOK += \
-mkdir -p $(DESTDIR)$(libdir)/evas/utils \
+mkdir -p $(DESTDIR)$(libdir)/evas/utils; \
 ln -sf evas_image_loader.raw 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.arw; \
 ln -sf evas_image_loader.raw 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.cr2; \
 ln -sf evas_image_loader.raw 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.crw; \
@@ -2524,7 +2524,7 @@ generic_evas_svg_evas_image_loader_svg_LDADD = 
@USE_EINA_LIBS@ @RSVG_LIBS@ @SHM_
 generic_evas_svg_evas_image_loader_svg_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@
 
 EFL_INSTALL_EXEC_HOOK += \
-mkdir -p $(DESTDIR)$(libdir)/evas/utils \
+mkdir -p $(DESTDIR)$(libdir)/evas/utils; \
 ln -sf evas_image_loader.svg 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svgz; \
 ln -sf evas_image_loader.svg 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svg.gz;
 
@@ -2547,5 +2547,5 @@ generic_evas_xcf_evas_image_loader_xcf_CFLAGS = \
 generic_evas_xcf_evas_image_loader_xcf_LDADD = @USE_EINA_LIBS@ @SHM_LIBS@ -lm 
-lz
 generic_evas_xcf_evas_image_loader_xcf_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@
 EFL_INSTALL_EXEC_HOOK += \
-mkdir -p $(DESTDIR)$(libdir)/evas/utils \
+mkdir -p $(DESTDIR)$(libdir)/evas/utils; \
 ln -sf evas_image_loader.xcf 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.xcf.gz;

-- 




Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc

2016-06-13 Thread Felipe Magno de Almeida
On Mon, Jun 13, 2016 at 11:51 AM, Tom Hacohen  wrote:
> On 13/06/16 15:34, Felipe Magno de Almeida wrote:
>> On Mon, Jun 13, 2016 at 11:11 AM, Tom Hacohen  wrote:

[snip]

>> What do you think?
>>
>
> I already mentioned this issue before. It's a big issue and needs to big
> fixed. The correct solution is to remove non-public from the tree. The
> tag is an interesting hack that could maybe be useful if we get lazy,
> but should really be avoided. I kinda hate you now for suggesting this
> hack, because I'm pretty sure people will jump on it and we'll end up
> doing it. :(

LOL. Should have mentioned in IRC only. :D

> --
> Tom.

Regards,
-- 
Felipe Magno de Almeida

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [tools/eflete] master 02/03: tab_home_common: display an error message when trying to open not eflete .pro file

2016-06-13 Thread Vitalii Vorobiov
rimmed pushed a commit to branch master.

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

commit e7d7df4151d2e13b77f51ca858ce8e8af9e65917
Author: Vitalii Vorobiov 
Date:   Mon Jun 13 17:05:20 2016 +0300

tab_home_common: display an error message when trying to open not eflete 
.pro file

Fixes T3445
---
 src/bin/ui/tab_home_common.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/bin/ui/tab_home_common.c b/src/bin/ui/tab_home_common.c
index cfe776e..7cc5f5e 100644
--- a/src/bin/ui/tab_home_common.c
+++ b/src/bin/ui/tab_home_common.c
@@ -101,6 +101,13 @@ _tabs_progress_end(void *data, PM_Project_Result result)
 popup_want_action(_("File is locked"), _("File locked by another 
application"), NULL, NULL, BTN_OK, NULL, NULL);
 return;
  }
+   if (PM_PROJECT_ERROR == result)
+ {
+progress_end(data, result);
+popup_want_action(_("File opening error"), _("Unknown problem with 
file appeared."
+ "(wrong file, filesystem 
error, no memory, etc)"), NULL, NULL, BTN_OK, NULL, NULL);
+return;
+ }
if (PM_PROJECT_SUCCESS != result) return;
 
ap.project = pm_project_thread_project_get();

-- 




[EGIT] [tools/eflete] master 01/03: spinner.edc: vertical style for upstream

2016-06-13 Thread Vitalii Vorobiov
rimmed pushed a commit to branch master.

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

commit 088b54e14baf3704cd7803424816bf9f3d50f366
Author: Vitalii Vorobiov 
Date:   Mon Jun 13 16:32:27 2016 +0300

spinner.edc: vertical style for upstream
---
 .../images/spinner-vertical-down-clicked.png   | Bin 0 -> 254 bytes
 .../images/spinner-vertical-down-disabled.png  | Bin 0 -> 2888 bytes
 .../default/images/spinner-vertical-up-clicked.png | Bin 0 -> 238 bytes
 .../images/spinner-vertical-up-disabled.png| Bin 0 -> 2889 bytes
 data/themes/default/widgets/spinner.edc| 284 -
 5 files changed, 280 insertions(+), 4 deletions(-)

diff --git a/data/themes/default/images/spinner-vertical-down-clicked.png 
b/data/themes/default/images/spinner-vertical-down-clicked.png
new file mode 100644
index 000..0a1b0cb
Binary files /dev/null and 
b/data/themes/default/images/spinner-vertical-down-clicked.png differ
diff --git a/data/themes/default/images/spinner-vertical-down-disabled.png 
b/data/themes/default/images/spinner-vertical-down-disabled.png
new file mode 100644
index 000..7afaccc
Binary files /dev/null and 
b/data/themes/default/images/spinner-vertical-down-disabled.png differ
diff --git a/data/themes/default/images/spinner-vertical-up-clicked.png 
b/data/themes/default/images/spinner-vertical-up-clicked.png
new file mode 100644
index 000..1fd36aa
Binary files /dev/null and 
b/data/themes/default/images/spinner-vertical-up-clicked.png differ
diff --git a/data/themes/default/images/spinner-vertical-up-disabled.png 
b/data/themes/default/images/spinner-vertical-up-disabled.png
new file mode 100644
index 000..7c0a629
Binary files /dev/null and 
b/data/themes/default/images/spinner-vertical-up-disabled.png differ
diff --git a/data/themes/default/widgets/spinner.edc 
b/data/themes/default/widgets/spinner.edc
index 667c8d7..81e71db 100644
--- a/data/themes/default/widgets/spinner.edc
+++ b/data/themes/default/widgets/spinner.edc
@@ -1,9 +1,285 @@
+group { name: "elm/spinner/base/vertical";
+   images {
+  image: "control-bg.png" COMP;
+  image: "control-bg-disabled.png" COMP;
+  image: "control-shadow.png" COMP;
+  image: "spinner-vertical-up.png" COMP;
+  image: "spinner-vertical-up-clicked.png" COMP;
+  image: "spinner-vertical-up-disabled.png" COMP;
+  image: "spinner-vertical-down.png" COMP;
+  image: "spinner-vertical-down-clicked.png" COMP;
+  image: "spinner-vertical-down-disabled.png" COMP;
+   }
+   parts {
+  part { name: "bg";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+min: 60 19;
+max: -1 19;
+color_class: "bg_entry";
+image {
+   normal: "control-bg.png";
+   border: 8 8 8 9;
+}
+ }
+ description { state: "disabled" 0.0;
+inherit: "default" 0.00;
+image.normal: "control-bg-disabled.png";
+ }
+  }
+  part { name: "area.drag";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+rel1 {
+   offset: 1 0;
+   to: "bg";
+}
+rel2 {
+   offset: -1 -2;
+   to: "bg";
+}
+ }
+  }
+  part { name: "elm.text";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+fixed: 1 1;
+color_class: "main_alternative";
+text {
+   font: "PT";
+   size: 12;
+}
+rel1.to: "bg";
+rel2 {
+   relative: 0.0 1.0;
+   to_x: "button.up";
+   to_y: "bg";
+}
+ }
+ description { state: "active" 0.0;
+inherit: "default" 0.00;
+visible: 0;
+text.size: 10;
+rel1 {
+   relative: 1.0 0.0;
+   to_x: "button.down";
+}
+ }
+  }
+  part { name: "shadow";
+ type: IMAGE;
+ description { state: "default" 0.0;
+image {
+   normal: "control-shadow.png";
+   border: 8 8 8 9;
+}
+rel1.to: "bg";
+rel2.to: "bg";
+ }
+ description { state: "disabled" 0.0;
+inherit: "default" 0.00;
+visible: 0;
+ }
+  }
+  part { name: "button.down";
+ type: IMAGE;
+ scale: 1;
+ description { state: "default" 0.0;
+align: 1.0 1.0;
+max: 11 9;
+image.normal: "spinner-vertical-down.png";
+rel1.to: "area.drag";
+rel2.to: "area.drag";
+ }
+ description { state: "clicked" 0.0;
+inherit: "default" 0.00;
+ 

[EGIT] [tools/eflete] master 03/03: live_entry: show entry scroller in demo when entry-single style is opened

2016-06-13 Thread Vitalii Vorobiov
rimmed pushed a commit to branch master.

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

commit 1994d07bb3994c798ea4ae50f48c1d704b18714c
Author: Vitalii Vorobiov 
Date:   Mon Jun 13 17:33:43 2016 +0300

live_entry: show entry scroller in demo when entry-single style is opened

Fixes T3839
---
 src/bin/ui/live_view/elementary/live_entry.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/ui/live_view/elementary/live_entry.c 
b/src/bin/ui/live_view/elementary/live_entry.c
index 91d6f91..9a2ef16 100644
--- a/src/bin/ui/live_view/elementary/live_entry.c
+++ b/src/bin/ui/live_view/elementary/live_entry.c
@@ -70,6 +70,7 @@ widget_entry_create(Evas_Object *parent, const Group *group)
 
elm_object_style_set(object, group->style);
_entry_set_params(object, group->class);
+   elm_entry_scrollable_set(object, true);
 
elm_object_text_set(object, "This is an entry widget in this window that "
 "uses markup like this for styling and "

-- 




Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc

2016-06-13 Thread Tom Hacohen
On 13/06/16 15:34, Felipe Magno de Almeida wrote:
> On Mon, Jun 13, 2016 at 11:11 AM, Tom Hacohen  wrote:
>> On 13/06/16 15:01, Stefan Schmidt wrote:
>
> [snip]
>
>>> If you are not the author of one of these above but still think they
>>> should not be part of our API from 1.18 on please speak up now!
>>>
>>> I will start to gradually remove the EFL_EO_API_SUPPORT flag from our
>>> code base over the next days.
>>
>> I guess we'll have to do it selectively then, because only the "efl*"
>> APIs should be there. Any leftovers should either be internal (not
>> installed) or not exist.
>
> I have a problem with C++ bindings that some public classes inherit
> from non-public classes that should not be installed. However, for
> C++ we just inherit from each other in the generated binding and
> the files need to be available to compile.
>
> We need to either 1. remove mentioning non-public classes in
> public classes, or 2. have a way to tag that a class is private
> and should not appear in the generated inheritance tree.
>
> What do you think?
>

I already mentioned this issue before. It's a big issue and needs to big 
fixed. The correct solution is to remove non-public from the tree. The 
tag is an interesting hack that could maybe be useful if we get lazy, 
but should really be avoided. I kinda hate you now for suggesting this 
hack, because I'm pretty sure people will jump on it and we'll end up 
doing it. :(

--
Tom.

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc

2016-06-13 Thread Felipe Magno de Almeida
On Mon, Jun 13, 2016 at 11:11 AM, Tom Hacohen  wrote:
> On 13/06/16 15:01, Stefan Schmidt wrote:

[snip]

>> If you are not the author of one of these above but still think they
>> should not be part of our API from 1.18 on please speak up now!
>>
>> I will start to gradually remove the EFL_EO_API_SUPPORT flag from our
>> code base over the next days.
>
> I guess we'll have to do it selectively then, because only the "efl*"
> APIs should be there. Any leftovers should either be internal (not
> installed) or not exist.

I have a problem with C++ bindings that some public classes inherit
from non-public classes that should not be installed. However, for
C++ we just inherit from each other in the generated binding and
the files need to be available to compile.

We need to either 1. remove mentioning non-public classes in
public classes, or 2. have a way to tag that a class is private
and should not appear in the generated inheritance tree.

What do you think?

> --
> Tom

Regards,
-- 
Felipe Magno de Almeida

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: evas: loaders: make sure we create the directory first before we create symlinks

2016-06-13 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 21315509e20c332f15e183f073adbf25ef193d86
Author: Stefan Schmidt 
Date:   Mon Jun 13 16:09:53 2016 +0200

evas: loaders: make sure we create the directory first before we create 
symlinks

We assume that the directory already exists here when creating the symlinks.
Better make sure this is really the case.

Thanks to Vtorri for pointing towards the fix.

Fixes T3880 and T3875
---
 src/Makefile_Evas.am | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am
index f7a8f30..9ce7fad 100644
--- a/src/Makefile_Evas.am
+++ b/src/Makefile_Evas.am
@@ -2420,6 +2420,7 @@ generic_evas_pdf_evas_image_loader_pdf_LDADD = 
@USE_EINA_LIBS@ @POPPLER_LIBS@ @S
 generic_evas_pdf_evas_image_loader_pdf_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@
 
 EFL_INSTALL_EXEC_HOOK += \
+mkdir -p $(DESTDIR)$(libdir)/evas/utils \
 ln -sf evas_image_loader.pdf 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ppt; \
 ln -sf evas_image_loader.pdf 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.pptx; \
 ln -sf evas_image_loader.pdf 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.odp; \
@@ -2481,6 +2482,7 @@ generic_evas_raw_evas_image_loader_raw_CFLAGS = \
 @LIBRAW_CFLAGS@
 
 EFL_INSTALL_EXEC_HOOK += \
+mkdir -p $(DESTDIR)$(libdir)/evas/utils \
 ln -sf evas_image_loader.raw 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.arw; \
 ln -sf evas_image_loader.raw 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.cr2; \
 ln -sf evas_image_loader.raw 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.crw; \
@@ -2522,6 +2524,7 @@ generic_evas_svg_evas_image_loader_svg_LDADD = 
@USE_EINA_LIBS@ @RSVG_LIBS@ @SHM_
 generic_evas_svg_evas_image_loader_svg_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@
 
 EFL_INSTALL_EXEC_HOOK += \
+mkdir -p $(DESTDIR)$(libdir)/evas/utils \
 ln -sf evas_image_loader.svg 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svgz; \
 ln -sf evas_image_loader.svg 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svg.gz;
 
@@ -2544,4 +2547,5 @@ generic_evas_xcf_evas_image_loader_xcf_CFLAGS = \
 generic_evas_xcf_evas_image_loader_xcf_LDADD = @USE_EINA_LIBS@ @SHM_LIBS@ -lm 
-lz
 generic_evas_xcf_evas_image_loader_xcf_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@
 EFL_INSTALL_EXEC_HOOK += \
+mkdir -p $(DESTDIR)$(libdir)/evas/utils \
 ln -sf evas_image_loader.xcf 
$(DESTDIR)$(libdir)/evas/utils/evas_image_loader.xcf.gz;

-- 




Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc

2016-06-13 Thread Tom Hacohen
On 13/06/16 15:01, Stefan Schmidt wrote:
> Hello.
>
> On 13/06/16 14:18, Stefan Schmidt wrote:
>> Hello.
>>
>> On 13/06/16 13:16, Tom Hacohen wrote:
>>> Hey,
>>>
>>> As part of the development process of the new Eo API we marked all of
>>> the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I
>>> think we maybe also use EFL_BETA_API_SUPPORT, need to verify that.
>>>
>>> Anyhow, now is time to remove these tags (where appropriate), so these
>>> APIs are released.
>>>
>>> I guess we can just remove all of the occurrences of the EO one, but we
>>> need to be more careful with the other one.
>>>
>>> Is there anyone who has time to take care of this? Stefan? Or should I
>>> try to tackle it on Thursday when I'm done with travel and other stuff I
>>> need to deal with?
>>>
>> I will have a look at it.
>>
>> Are we really sure that all APIs behind  the EFL_EO_API_SUPPORT are
>> really finsalised?
>>
>> We might need to come up with a list of them and brign them up here for
>> the audience.
>>
>
> After removal of the EFL_EO_API_SUPPORT ifdef we have the following new
> APIs that we need to support. (git grep "ifdef EFL_EO_API_SUPPORT")
> I did only list areas here as listing every single new function, struct,
> event, etc would just be to big.
>
> Ecore:
> o ecore_poller
> o ecore_loop_timer
> o ecore_exe
> o efl_loop
> o efl_loop_args
> o efl_loop_user
> o efl_loop_fd
>
> Ecore_Con:
> o efl_network
> o efl_network_server
> o efl_network_connector
> o efl_network_client
> o efl_network_url
>
> Edje:
> o edje_object
> o edje_edit
>
> Eio:
> o eio_job
> o eio_sentry
> o eio_model
>
> Emotion:
> o emotion_object
>
> Evas:
> o canvas/efl_ui_draggable
> o canvas/efl_ui_clickable
> o canvas/efl_ui_scrollable
> o canvas/efl_ui_selectable
> o canvas/efl_ui_zoomable
> o canvas/evas_canvas
> o canvas/efl_canvas_rectangle
> o canvas/evas_textblock
> o canvas/efl_canvas_polygon
> o canvas/evas_object_smart
> o canvas/evas_smart_clipped
> o canvas/evas_common_interface
> o canvas/evas_object
> o canvas/evas_canvas3d_object
> o canvas/evas_canvas3d_texture
> o canvas/evas_canvas3d_material
> o canvas/evas_canvas3d_light
> o canvas/evas_canvas3d_primitive
> o canvas/evas_canvas3d_mesh
> o canvas/evas_canvas3d_node
> o canvas/evas_canvas3d_camera
> o canvas/evas_canvas3d_scene
> o canvas/efl_canvas_image_internal
> o canvas/efl_canvas_image
> o canvas/efl_canvas_snapshot
> o canvas/efl_canvas_proxy
> o canvas/efl_canvas_scene3d
> o canvas/evas_vg
> o canvas/efl_vg
> o canvas/efl_vg_container
> o canvas/efl_vg_shape
> o canvas/efl_vg_gradient
> o canvas/efl_vg_gradient_linear
> o canvas/efl_vg_gradient_radial
> o canvas/efl_event_input
> o canvas/efl_event_pointer
> o canvas/efl_event_key
>
> Elementary:
> o efl_ui_box
> o efl_ui_box_flow
> o efl_ui_grid
> o efl_ui_grid static
> o efl_ui_image
> o efl_ui_win
> o efl_ui_win_standard
> o efl_ui_nstate
> o elc_combobox
> o elc_ctxpopup
> o elc_fileselector
> o elc_fileselector_button
> o elc_fileselector_entry
> o elc_hoversel
> o elc_multibuttonentry
> o elc_naviframe
> o elc_popup
> o elm_actionslider
> o elm_app_client
> o elm_app_client_view
> o elm_app_server
> o elm_app_server_view
> o elm_atspi_app_object
> o elm_atspi_bridge
> o elm_bg
> o elm_bubble
> o elm_button
> o elm_calendar
> o elm_check
> o elm_clock
> o elm_colorselector
> o elm_conform
> o elm_datetime
> o elm_dayselector
> o elm_diskselector
> o elm_entry
> o elm_flip
> o elm_flipselector
> o elm_frame
> o elm_gengrid
> o elm_genlist
> o elm_gesture_layer
> o elm_glview
> o elm_hover
> o elm_icon
> o elm_image
> o elm_index
> o elm_interface_atspi_accessible
> o elm_interface_atspi_accessible
> o elm_interface_atspi_text
> o elm_interface_atspi_widget_action
> o elm_interface_atspi_window
> o elm_interfaces
> o elm_inwin
> o elm_label
> o elm_layout
> o elm_list
> o elm_map
> o elm_menu
> o elm_notify
> o elm_panel
> o elm_panes
> o elm_photo
> o elm_photocam
> o elm_plug
> o elm_prefs
> o elm_progressbar
> o elm_radio
> o elm_route
> o elm_scroller
> o elm_segment_control
> o elm_separator
> o elm_slider
> o elm_slideshow
> o elm_spinner
> o elm_systray
> o elm_thumb
> o elm_toolbar
> o elm_video
> o elm_view_form
> o elm_view_list
> o elm_web
> o elm_win
> o elm_win_standard
>
> If you are the author of one of these and you believe that the API is
> not ready yet please move it to the EFL_BETA_API_SUPPORT define. We
> should also look through that one and move things out if they are now
> longer deemed beta.
>
> If you are not the author of one of these above but still think they
> should not be part of our API from 1.18 on please speak up now!
>
> I will start to gradually remove the EFL_EO_API_SUPPORT flag from our
> code base over the next days.

I guess we'll have to do it selectively then, because only the "efl*" 
APIs should be there. Any leftovers should either be internal (not 
installed) or not exist.

--
Tom



Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc

2016-06-13 Thread Stefan Schmidt
Hello.

On 13/06/16 14:18, Stefan Schmidt wrote:
> Hello.
>
> On 13/06/16 13:16, Tom Hacohen wrote:
>> Hey,
>>
>> As part of the development process of the new Eo API we marked all of
>> the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I
>> think we maybe also use EFL_BETA_API_SUPPORT, need to verify that.
>>
>> Anyhow, now is time to remove these tags (where appropriate), so these
>> APIs are released.
>>
>> I guess we can just remove all of the occurrences of the EO one, but we
>> need to be more careful with the other one.
>>
>> Is there anyone who has time to take care of this? Stefan? Or should I
>> try to tackle it on Thursday when I'm done with travel and other stuff I
>> need to deal with?
>>
> I will have a look at it.
>
> Are we really sure that all APIs behind  the EFL_EO_API_SUPPORT are
> really finsalised?
>
> We might need to come up with a list of them and brign them up here for
> the audience.
>

After removal of the EFL_EO_API_SUPPORT ifdef we have the following new 
APIs that we need to support. (git grep "ifdef EFL_EO_API_SUPPORT")
I did only list areas here as listing every single new function, struct, 
event, etc would just be to big.

Ecore:
o ecore_poller
o ecore_loop_timer
o ecore_exe
o efl_loop
o efl_loop_args
o efl_loop_user
o efl_loop_fd

Ecore_Con:
o efl_network
o efl_network_server
o efl_network_connector
o efl_network_client
o efl_network_url

Edje:
o edje_object
o edje_edit

Eio:
o eio_job
o eio_sentry
o eio_model

Emotion:
o emotion_object

Evas:
o canvas/efl_ui_draggable
o canvas/efl_ui_clickable
o canvas/efl_ui_scrollable
o canvas/efl_ui_selectable
o canvas/efl_ui_zoomable
o canvas/evas_canvas
o canvas/efl_canvas_rectangle
o canvas/evas_textblock
o canvas/efl_canvas_polygon
o canvas/evas_object_smart
o canvas/evas_smart_clipped
o canvas/evas_common_interface
o canvas/evas_object
o canvas/evas_canvas3d_object
o canvas/evas_canvas3d_texture
o canvas/evas_canvas3d_material
o canvas/evas_canvas3d_light
o canvas/evas_canvas3d_primitive
o canvas/evas_canvas3d_mesh
o canvas/evas_canvas3d_node
o canvas/evas_canvas3d_camera
o canvas/evas_canvas3d_scene
o canvas/efl_canvas_image_internal
o canvas/efl_canvas_image
o canvas/efl_canvas_snapshot
o canvas/efl_canvas_proxy
o canvas/efl_canvas_scene3d
o canvas/evas_vg
o canvas/efl_vg
o canvas/efl_vg_container
o canvas/efl_vg_shape
o canvas/efl_vg_gradient
o canvas/efl_vg_gradient_linear
o canvas/efl_vg_gradient_radial
o canvas/efl_event_input
o canvas/efl_event_pointer
o canvas/efl_event_key

Elementary:
o efl_ui_box
o efl_ui_box_flow
o efl_ui_grid
o efl_ui_grid static
o efl_ui_image
o efl_ui_win
o efl_ui_win_standard
o efl_ui_nstate
o elc_combobox
o elc_ctxpopup
o elc_fileselector
o elc_fileselector_button
o elc_fileselector_entry
o elc_hoversel
o elc_multibuttonentry
o elc_naviframe
o elc_popup
o elm_actionslider
o elm_app_client
o elm_app_client_view
o elm_app_server
o elm_app_server_view
o elm_atspi_app_object
o elm_atspi_bridge
o elm_bg
o elm_bubble
o elm_button
o elm_calendar
o elm_check
o elm_clock
o elm_colorselector
o elm_conform
o elm_datetime
o elm_dayselector
o elm_diskselector
o elm_entry
o elm_flip
o elm_flipselector
o elm_frame
o elm_gengrid
o elm_genlist
o elm_gesture_layer
o elm_glview
o elm_hover
o elm_icon
o elm_image
o elm_index
o elm_interface_atspi_accessible
o elm_interface_atspi_accessible
o elm_interface_atspi_text
o elm_interface_atspi_widget_action
o elm_interface_atspi_window
o elm_interfaces
o elm_inwin
o elm_label
o elm_layout
o elm_list
o elm_map
o elm_menu
o elm_notify
o elm_panel
o elm_panes
o elm_photo
o elm_photocam
o elm_plug
o elm_prefs
o elm_progressbar
o elm_radio
o elm_route
o elm_scroller
o elm_segment_control
o elm_separator
o elm_slider
o elm_slideshow
o elm_spinner
o elm_systray
o elm_thumb
o elm_toolbar
o elm_video
o elm_view_form
o elm_view_list
o elm_web
o elm_win
o elm_win_standard

If you are the author of one of these and you believe that the API is 
not ready yet please move it to the EFL_BETA_API_SUPPORT define. We 
should also look through that one and move things out if they are now 
longer deemed beta.

If you are not the author of one of these above but still think they 
should not be part of our API from 1.18 on please speak up now!

I will start to gradually remove the EFL_EO_API_SUPPORT flag from our 
code base over the next days.

regards
Stefan Schmidt

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net

[EGIT] [core/efl] master 01/01: eolian: fix error cursor positioning

2016-06-13 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 922e4e918182c4a6d012973a237b89b9248a017c
Author: Daniel Kolesa 
Date:   Mon Jun 13 14:53:35 2016 +0100

eolian: fix error cursor positioning

Previously, multi-char tokens (such as strings, docs etc) always put the 
error
cursor to the end of the token. That was confusing, so now the cursor always
appears at the beginning of the token instead (for multiline tokens, 
currently
only docs, the line number is also adjusted to point to the first line of 
the
doc token).

@fix
---
 src/lib/eolian/eo_lexer.c | 97 ++-
 src/lib/eolian/eo_lexer.h |  4 +-
 2 files changed, 65 insertions(+), 36 deletions(-)

diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c
index 878926f..b285405 100644
--- a/src/lib/eolian/eo_lexer.c
+++ b/src/lib/eolian/eo_lexer.c
@@ -154,8 +154,9 @@ static void next_line(Eo_Lexer *ls)
next_char(ls);
ls->stream_line = ls->stream;
  }
-   if (++ls->line_number >= INT_MAX)
+   if (++ls->iline_number >= INT_MAX)
  eo_lexer_syntax_error(ls, "chunk has too many lines");
+   ls->line_number = ls->iline_number;
ls->icolumn = ls->column = 0;
 }
 
@@ -833,10 +834,15 @@ lex(Eo_Lexer *ls, Eo_Token *tok)
   case '[':
 {
int dline = ls->line_number, dcol = ls->column;
+   const char *sline = ls->stream_line;
next_char(ls);
if (ls->current != '[') return '[';
next_char(ls);
read_doc(ls, tok, dline, dcol);
+   ls->column = dcol + 1;
+   /* doc is the only potentially multiline token */
+   ls->line_number = dline;
+   ls->stream_line = sline;
return TOK_DOC;
 }
   case '\0':
@@ -845,11 +851,13 @@ lex(Eo_Lexer *ls, Eo_Token *tok)
 next_char(ls);
 if (!ls->expr_mode || (ls->current != '=')) return '=';
 next_char(ls);
+--ls->column;
 return TOK_EQ;
   case '!':
 next_char(ls);
 if (!ls->expr_mode || (ls->current != '=')) return '!';
 next_char(ls);
+--ls->column;
 return TOK_NQ;
   case '>':
 next_char(ls);
@@ -857,11 +865,13 @@ lex(Eo_Lexer *ls, Eo_Token *tok)
 if (ls->current == '=')
   {
  next_char(ls);
+ --ls->column;
  return TOK_GE;
   }
 else if (ls->current == '>')
   {
  next_char(ls);
+ --ls->column;
  return TOK_RSH;
   }
 return '>';
@@ -871,11 +881,13 @@ lex(Eo_Lexer *ls, Eo_Token *tok)
 if (ls->current == '=')
   {
  next_char(ls);
+ --ls->column;
  return TOK_LE;
   }
 else if (ls->current == '<')
   {
  next_char(ls);
+ --ls->column;
  return TOK_LSH;
   }
 return '<';
@@ -883,47 +895,62 @@ lex(Eo_Lexer *ls, Eo_Token *tok)
 next_char(ls);
 if (!ls->expr_mode || (ls->current != '&')) return '&';
 next_char(ls);
+--ls->column;
 return TOK_AND;
   case '|':
 next_char(ls);
 if (!ls->expr_mode || (ls->current != '|')) return '|';
 next_char(ls);
+--ls->column;
 return TOK_OR;
   case '"':
-if (!ls->expr_mode)
-  {
- next_char(ls);
- return '"';
-  }
-read_string(ls, tok);
-return TOK_STRING;
+{
+   int dcol = ls->column;
+   if (!ls->expr_mode)
+ {
+next_char(ls);
+return '"';
+ }
+   /* strings are not multiline for now at least */
+   read_string(ls, tok);
+   ls->column = dcol + 1;
+   return TOK_STRING;
+}
   case '\'':
-next_char(ls);
-if (!ls->expr_mode) return '\'';
-if (ls->current == '\\')
-  {
- next_char(ls);
- eina_strbuf_reset(ls->buff);
- read_escape(ls);
- tok->value.c = (char)*eina_strbuf_string_get(ls->buff);
-  }
-else
-  {
- tok->value.c = ls->current;
- next_char(ls);
-  }
-if (ls->current != '\'')
-  eo_lexer_lex_error(ls, "unfinished character", TOK_CHAR);
-next_char(ls);
-return TOK_CHAR;
+{
+   int dcol = ls->column;
+   next_char(ls);
+   if (!ls->expr_mode) return '\'';
+   if (ls->current == '\\')
+ {
+next_char(ls);
+eina_strbuf_reset(ls->buff);
+read_escape(ls);
+tok->value.c = (char)*eina_strbuf_string_get(ls->buff);
+ }
+   else
+ 

Re: [E-devel] Fwd: Eldbus & thread safe

2016-06-13 Thread Kim Shinwoo
Cool thank you raster!
2016. 6. 13. 오후 6:32에 "Carsten Haitzler" 님이 작성:

> On Fri, 10 Jun 2016 10:51:56 +0900 Kim Shinwoo 
> said:
>
> standard answer for efl:
>
> "efl is not threadsafe. use the few thread specific api's we have like
> ecore_main_loop_begin/end , the sync/async call etc. etc.". :)
>
>
> > Very thank you for response.
> > I got crash issue from developer.
> > They are using the eldbus on thread to get property changed event using
> > following eldbus APIs.
> >
> > eldbus_connection_get,
> > eldbus_object_get,
> > eldbus_proxy_get,
> > eldbus_proxy_properties_monitor,
> > eldbus_proxy_event_callback_add
> >
> > That is it.
> > There is nothing speciall purpose to use eldbus.
> > It seems that it is common usage.
> >
> > We suggested to use ecore_main_loop_begin, end
> > At both before, and after line using eldbua on thread.
> >
> > Is this proper way to solve this thread kind of issue?
> > 2016. 6. 10. 오전 12:27에 "Cedric BAIL" 님이 작성:
> >
> > > On Jun 9, 2016 3:57 AM, "Kim Shinwoo"  wrote:
> > > >
> > > > https://dbus.freedesktop.org/doc/api/html/group__DBusThreads.html
> > > >
> > > > It seems  that dbus is unsafe before handling dbus with dbus thread.
> > > >
> > > > If we  are not using this then.. clearly it is thread unsafe.
> > > >
> > > > Am I right?
> > >
> > > Yes.eldbus is not thread safe. May I ask what is your use of it that
> would
> > > require it ? Dbus is very asynchronous by nature and very light in
> > > communication, so it is very uncommon to need a thread to handle it.
> > >
> > > Cedric
> > >
> > > > 2016. 6. 9. 오후 7:44에 "Kim Shinwoo" 님이 작성:
> > > >
> > > > > Sorry for short Q writting on the road using phone. :/
> > > > > If it is not thread safe, do I have to use some ways such as..
> ecore
> > > > > thread?
> > > > >
> > > > > Anyone knows thread safety of Dbus?
> > > > > -- 전달된 메일 --
> > > > > 보낸사람: "Kim Shinwoo" 
> > > > > 날짜: 2016. 6. 9. 오후 7:34
> > > > > 제목: Eldbus & thread safe
> > > > > 받는사람: "Enlightenment developer list" <
> > > > > enlightenment-devel@lists.sourceforge.net>
> > > > > 참조:
> > > > >
> > > > > Hello all.
> > > > >>
> > > > >> The eldbus is thread safe?
> > > > >>
> > > > >> Sincerely,
> > > > >> Shinwoo Kim
> > > > >>
> > > > >
> > > >
> > >
> > >
> --
> > > > What NetFlow Analyzer can do for you? Monitors network bandwidth and
> > > traffic
> > > > patterns at an interface-level. Reveals which users, apps, and
> protocols
> > > are
> > > > consuming the most bandwidth. Provides multi-vendor support for
> NetFlow,
> > > > J-Flow, sFlow and other flows. Make informed decisions using capacity
> > > > planning reports.
> > > https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> > > > ___
> > > > enlightenment-devel mailing list
> > > > enlightenment-devel@lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> > >
> > >
> --
> > > What NetFlow Analyzer can do for you? Monitors network bandwidth and
> > > traffic
> > > patterns at an interface-level. Reveals which users, apps, and
> protocols
> > > are
> > > consuming the most bandwidth. Provides multi-vendor support for
> NetFlow,
> > > J-Flow, sFlow and other flows. Make informed decisions using capacity
> > > planning reports.
> https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> > > ___
> > > enlightenment-devel mailing list
> > > enlightenment-devel@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> > >
> >
> --
> > What NetFlow Analyzer can do for you? Monitors network bandwidth and
> traffic
> > patterns at an interface-level. Reveals which users, apps, and protocols
> are
> > consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> > J-Flow, sFlow and other flows. Make informed decisions using capacity
> > planning reports.
> https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> > ___
> > 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
>
>
--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support 

[EGIT] [tools/eflete] master 01/02: Tizen theme: replace zoom combobox by spinner.

2016-06-13 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

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

commit c9ab38e38959e951d0d2c3ad7112650e9ca28f3a
Author: Mykyta Biliavskyi 
Date:   Mon Jun 13 12:05:07 2016 +0300

Tizen theme: replace zoom combobox by spinner.
---
 src/bin/ui/workspace/workspace.c | 43 +++-
 1 file changed, 34 insertions(+), 9 deletions(-)

diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c
index f052132..4d5c374 100644
--- a/src/bin/ui/workspace/workspace.c
+++ b/src/bin/ui/workspace/workspace.c
@@ -39,7 +39,9 @@
Workspace_Data *wd = evas_object_data_get(OBJ, WORKSPACE_DATA); \
assert(wd != NULL);
 
+#if !HAVE_TIZEN
 static int zoom_values[] = { 20, 50, 100, 200, 500, 0 };
+#endif
 
 /* As the workspace can manage the one drag in one time, and only one workspace
  * viewed, we can use the static Change for all workspace */
@@ -289,13 +291,17 @@ _slider_zoom_cb(void *data,
 Evas_Object *obj __UNUSED__,
 void *event_info __UNUSED__)
 {
-   Eina_Stringshare *text;
Workspace_Data *wd = data;
 
wd->zoom_factor = elm_slider_value_get(wd->toolbar.zoom.slider) / 100;
+#if HAVE_TIZEN
+   elm_spinner_value_set(wd->toolbar.zoom.cmb_zoom, (int)(wd->zoom_factor * 
100));
+#else
+   Eina_Stringshare *text;
text = eina_stringshare_printf("%d%%", (int)(wd->zoom_factor * 100));
ewe_combobox_text_set(wd->toolbar.zoom.cmb_zoom, text);
eina_stringshare_del(text);
+#endif
_members_zoom_set(wd);
 }
 
@@ -307,6 +313,21 @@ _zoom_controls_disabled_set(Workspace_Data *wd, Eina_Bool 
disabled)
elm_object_disabled_set(wd->toolbar.zoom.slider, disabled);
 }
 
+#if HAVE_TIZEN
+static void
+_spinner_zoom_cb(void *data,
+ Evas_Object *obj,
+ void *event_info __UNUSED__)
+{
+   Workspace_Data *wd = (Workspace_Data *)data;
+
+   double val = elm_spinner_value_get(obj);
+   wd->zoom_factor = val / 100.0;
+   elm_slider_value_set(wd->toolbar.zoom.slider, (int) val);
+
+   _members_zoom_set(wd);
+}
+#else
 static void
 _zoom_selected_cb(void *data,
   Evas_Object *obj __UNUSED__,
@@ -320,14 +341,13 @@ _zoom_selected_cb(void *data,
 
_members_zoom_set(wd);
 }
+#endif
 
 static void
 _zoom_controls_add(Workspace_Data *wd)
 {
-   int i = 0;
Elm_Object_Item *tb_it;
Evas_Object *img;
-   Eina_Stringshare *text;
 
wd->toolbar.zoom.fit = elm_button_add(wd->toolbar.obj);
evas_object_smart_callback_add(wd->toolbar.zoom.fit, "clicked", _fit_cb, 
wd);
@@ -353,23 +373,28 @@ _zoom_controls_add(Workspace_Data *wd)
tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL);
elm_object_item_part_content_set(tb_it, NULL, wd->toolbar.zoom.slider);
 
+#if HAVE_TIZEN
+   SPINNER_ADD(wd->toolbar.obj, wd->toolbar.zoom.cmb_zoom, 10, 1000, 10, true);
+   evas_object_size_hint_min_set(wd->toolbar.zoom.cmb_zoom, 76, 0);
+   elm_spinner_value_set(wd->toolbar.zoom.cmb_zoom, 100);
+   evas_object_smart_callback_add(wd->toolbar.zoom.cmb_zoom, "changed", 
_spinner_zoom_cb, wd);
+#else
+   int i = 0;
+   Eina_Stringshare *text;
EWE_COMBOBOX_ADD(wd->toolbar.obj, wd->toolbar.zoom.cmb_zoom);
evas_object_size_hint_min_set(wd->toolbar.zoom.cmb_zoom, 70, 0);
ewe_combobox_text_set(wd->toolbar.zoom.cmb_zoom, _("100%"));
evas_object_smart_callback_add(wd->toolbar.zoom.cmb_zoom, "selected", 
_zoom_selected_cb, wd);
-   tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL);
-   elm_object_item_part_content_set(tb_it, NULL, wd->toolbar.zoom.cmb_zoom);
-   while (zoom_values[i])
+  while (zoom_values[i])
{
   text = eina_stringshare_printf("%d%%", zoom_values[i]);
   ewe_combobox_item_add(wd->toolbar.zoom.cmb_zoom, text);
   eina_stringshare_del(text);
   i++;
}
-
-
+#endif
tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL);
-   elm_toolbar_item_separator_set(tb_it, true);
+   elm_object_item_part_content_set(tb_it, NULL, wd->toolbar.zoom.cmb_zoom);
 }
 
 static void

-- 




[EGIT] [tools/eflete] master 02/02: Tizen theme: update layout for zoom controls.

2016-06-13 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

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

commit 80513bc5fdd69ec7e880495d937a2d50d9142b8a
Author: Mykyta Biliavskyi 
Date:   Mon Jun 13 14:43:54 2016 +0300

Tizen theme: update layout for zoom controls.
---
 data/themes/tizen/images/tool_percent_nor.png | Bin 0 -> 172 bytes
 data/themes/tizen/widgets/layout.edc  |   1 +
 data/themes/tizen/widgets/layouts/zoom.edc|  67 ++
 src/bin/ui/workspace/workspace.c  |  19 ++--
 4 files changed, 83 insertions(+), 4 deletions(-)

diff --git a/data/themes/tizen/images/tool_percent_nor.png 
b/data/themes/tizen/images/tool_percent_nor.png
new file mode 100644
index 000..595c833
Binary files /dev/null and b/data/themes/tizen/images/tool_percent_nor.png 
differ
diff --git a/data/themes/tizen/widgets/layout.edc 
b/data/themes/tizen/widgets/layout.edc
index f43899f..319fbff 100644
--- a/data/themes/tizen/widgets/layout.edc
+++ b/data/themes/tizen/widgets/layout.edc
@@ -1957,3 +1957,4 @@ group { name: "elm/layout/popup/1swallow_subtext";
 #include "layouts/tabs.edc"
 #include "layouts/workspace.edc"
 #include "layouts/container.edc"
+#include "layouts/zoom.edc"
diff --git a/data/themes/tizen/widgets/layouts/zoom.edc 
b/data/themes/tizen/widgets/layouts/zoom.edc
new file mode 100644
index 000..a39f17a
--- /dev/null
+++ b/data/themes/tizen/widgets/layouts/zoom.edc
@@ -0,0 +1,67 @@
+group { name: "elm/layout/zoom/controls";
+   images {
+  image: "tool_percent_nor.png" COMP;
+   }
+   parts {
+  part { name: "swallow.slider";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+align: 0.0 0.5;
+min: 134 0;
+max: 134 -1;
+ }
+  }
+  part { name: "spacer.slider";
+ type: SPACER;
+ description { state: "default" 0.0;
+align: 0.0 0.5;
+min: 17 0;
+max: 17 -1;
+rel1 {
+   relative: 1.0 0.0;
+   to_x: "swallow.slider";
+}
+ }
+  }
+  part { name: "image.percents";
+ type: IMAGE;
+ description { state: "default" 0.0;
+align: 1.0 0.5;
+min: 9 9;
+max: 9 9;
+image.normal: "tool_percent_nor.png";
+fill.smooth: 0;
+ }
+  }
+  part { name: "spacer.percents";
+ type: SPACER;
+ description { state: "default" 0.0;
+align: 1.0 0.5;
+fixed: 1 0;
+min: 5 5;
+max: 5 5;
+rel1.to_x: "image.percents";
+rel2 {
+   relative: 0.0 1.0;
+   to_x: "image.percents";
+}
+ }
+  }
+  part { name: "swallow.spinner";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+align: 1.0 0.5;
+min: 76 0;
+max: 76 -1;
+rel1.to_x: "spacer.slider";
+rel1.relative: 1.0 0;
+rel2 {
+   relative: 0.0 1.0;
+   to_x: "spacer.percents";
+}
+ }
+  }
+   }
+}
+
+
diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c
index 4d5c374..83c4e8c 100644
--- a/src/bin/ui/workspace/workspace.c
+++ b/src/bin/ui/workspace/workspace.c
@@ -370,14 +370,25 @@ _zoom_controls_add(Workspace_Data *wd)
elm_object_part_content_set(wd->toolbar.zoom.slider, "elm.swallow.icon", 
img);
IMAGE_ADD_NEW(wd->toolbar.zoom.slider, img, "icon", "scale_larger")
elm_object_part_content_set(wd->toolbar.zoom.slider, "elm.swallow.end", 
img);
+#if HAVE_TIZEN
+   evas_object_size_hint_min_set(wd->toolbar.zoom.slider, 134, 0);
+   Evas_Object *zoom_layout = elm_layout_add(wd->toolbar.obj);
+   elm_layout_theme_set(zoom_layout, "layout", "zoom", "controls");
+   evas_object_show(zoom_layout);
+   elm_object_part_content_set(zoom_layout, "swallow.slider", 
wd->toolbar.zoom.slider);
+#else
tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL);
elm_object_item_part_content_set(tb_it, NULL, wd->toolbar.zoom.slider);
+#endif
 
 #if HAVE_TIZEN
SPINNER_ADD(wd->toolbar.obj, wd->toolbar.zoom.cmb_zoom, 10, 1000, 10, true);
evas_object_size_hint_min_set(wd->toolbar.zoom.cmb_zoom, 76, 0);
elm_spinner_value_set(wd->toolbar.zoom.cmb_zoom, 100);
evas_object_smart_callback_add(wd->toolbar.zoom.cmb_zoom, "changed", 
_spinner_zoom_cb, wd);
+   elm_object_part_content_set(zoom_layout, "swallow.spinner", 
wd->toolbar.zoom.cmb_zoom);
+   tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL);
+   elm_object_item_part_content_set(tb_it, NULL, zoom_layout);
 #else
int i = 0;
Eina_Stringshare *text;
@@ -385,16 +396,16 @@ _zoom_controls_add(Workspace_Data *wd)
evas_object_size_hint_min_set(wd->toolbar.zoom.cmb_zoom, 70, 0);

[EGIT] [tools/enventor] master 01/01: main: Fix help contents for workspace path option.

2016-06-13 Thread Jaehyun Cho
jaehyun pushed a commit to branch master.

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

commit 0e54be9d8e0a9249d3ee2515d1defc5d30917ae9
Author: Jaehyun Cho 
Date:   Mon Jun 13 21:46:59 2016 +0900

main: Fix help contents for workspace path option.

Synchronize help contents for workspace path option with other path
options.
---
 src/bin/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/main.c b/src/bin/main.c
index 29d0289..40e3394 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -270,7 +270,7 @@ args_dispatch(int argc, char **argv,
   "path", ECORE_GETOPT_TYPE_STR),
   ECORE_GETOPT_APPEND_METAVAR('d', "dd", "Data path",
   "path", ECORE_GETOPT_TYPE_STR),
-  ECORE_GETOPT_STORE_STR('w', "wd", "Workspace path"),
+  ECORE_GETOPT_STORE_METAVAR_STR('w', "wd", "Workspace path", "path"),
   ECORE_GETOPT_VERSION('v', "version"),
   ECORE_GETOPT_COPYRIGHT('c', "copyright"),
   ECORE_GETOPT_LICENSE('l', "license"),

-- 




[EGIT] [core/efl] master 01/01: edje_calc: fix interpolate calculation of map colors

2016-06-13 Thread Vitalii Vorobiov
furrymyad pushed a commit to branch master.

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

commit 4fd1c4f25bcb291d821ba3b02a005b721e689a21
Author: Vitalii Vorobiov 
Date:   Mon Jun 13 15:31:48 2016 +0300

edje_calc: fix interpolate calculation of map colors

There were a problem when while swithcing between states
(because of program running in transition),
there is SIGSEV appearing when first state has
only one point color, and next state more than one.

Basically it looks like this:

part {
   name: "rectangle";
   type: RECT;
   description { state: "default" 0.0;
  map {
 on: 1;
 color: 3 255 90 0 255;
  }
   }
   description { state: "moved" 0.0;
  map {
 on: 1;
 color: 0 0 0 255 255;
 color: 1 255 0 0 255;
 color: 2 255 90 0 255;
 color: 3 41 68 59 255;
  }
   }
}



@fix
---
 src/lib/edje/edje_calc.c | 87 ++--
 1 file changed, 40 insertions(+), 47 deletions(-)

diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index add1e75..6c474de 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -3572,9 +3572,11 @@ static Eina_Bool
 _map_colors_interp(Edje_Calc_Params *p1, Edje_Calc_Params *p2,
Edje_Calc_Params_Map *pmap, FLOAT_T pos)
 {
-   Edje_Map_Color *col, *col2, *col3;
-   int i, j, idx = 0;
-   Eina_Bool matched = EINA_FALSE;
+   Edje_Map_Color *col = NULL, *col2 = NULL, *col3;
+   int i, j;
+
+   unsigned char col1_r = 255, col1_g = 255, col1_b = 255, col1_a = 255;
+   unsigned char col2_r = 255, col2_g = 255, col2_b = 255, col2_a = 255;
 
if ((p1->map->colors_count > 0) || (p2->map->colors_count > 0))
  {
@@ -3582,59 +3584,50 @@ _map_colors_interp(Edje_Calc_Params *p1, 
Edje_Calc_Params *p2,
 
 pmap->colors = (Edje_Map_Color **)malloc(sizeof(Edje_Map_Color *) * 
(int)pmap->colors_count);
 
-for (i = 0; i < (int)p1->map->colors_count; i++)
+/* create all Map Color structs at first
+   to make sure we won't get SIGSEV later on cleanup. */
+for (i = 0; i < (int)pmap->colors_count; i++)
   {
- col = p1->map->colors[i];
  col3 = malloc(sizeof(Edje_Map_Color));
- col3->idx = col->idx;
-
- for (j = 0; j < (int)p2->map->colors_count; j++)
-   {
-  col2 = p2->map->colors[j];
-  if (col->idx != col2->idx) continue;
-  col3->r = INTP(col->r, col2->r, pos);
-  col3->g = INTP(col->g, col2->g, pos);
-  col3->b = INTP(col->b, col2->b, pos);
-  col3->a = INTP(col->a, col2->a, pos);
-  pmap->colors[idx] = col3;
-  matched = EINA_TRUE;
-  break;
-   }
- if (!matched)
-   {
-  col3->r = INTP(col->r, 255, pos);
-  col3->g = INTP(col->g, 255, pos);
-  col3->b = INTP(col->b, 255, pos);
-  col3->a = INTP(col->a, 255, pos);
-  pmap->colors[idx] = col3;
-   }
- idx++;
- matched = EINA_FALSE;
-  }
-for (i = 0; i < (int)p2->map->colors_count; i++)
-  {
- col = p2->map->colors[i];
+ col3->idx = i; /* we don't care about index position anyway */
 
+ /* find color with idx from first */
  for (j = 0; j < (int)p1->map->colors_count; j++)
{
-  col2 = p1->map->colors[j];
-  if (col->idx != col2->idx) continue;
-  matched = EINA_TRUE;
-  break;
+  col = p1->map->colors[j];
+  if (col3->idx == col->idx)
+{
+   col1_r = col->r;
+   col1_g = col->g;
+   col1_b = col->b;
+   col1_a = col->a;
+   break;
+}
}
- if (!matched)
+ /* find color from idx from second */
+ for (j = 0; j < (int)p2->map->colors_count; j++)
{
-  col3 = malloc(sizeof(Edje_Map_Color));
-  col3->idx = col->idx;
-  col3->r = INTP(255, col->r, pos);
-  col3->g = INTP(255, col->g, pos);
-  col3->b = INTP(255, col->b, pos);
-  col3->a = INTP(255, col->a, pos);
-  pmap->colors[idx] = col3;
+  col2 = p2->map->colors[j];
+  if (col3->idx == col2->idx)
+{
+   col2_r = col2->r;
+   col2_g = col2->g;
+

Re: [E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc

2016-06-13 Thread Stefan Schmidt
Hello.

On 13/06/16 13:16, Tom Hacohen wrote:
> Hey,
>
> As part of the development process of the new Eo API we marked all of
> the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I
> think we maybe also use EFL_BETA_API_SUPPORT, need to verify that.
>
> Anyhow, now is time to remove these tags (where appropriate), so these
> APIs are released.
>
> I guess we can just remove all of the occurrences of the EO one, but we
> need to be more careful with the other one.
>
> Is there anyone who has time to take care of this? Stefan? Or should I
> try to tackle it on Thursday when I'm done with travel and other stuff I
> need to deal with?
>

I will have a look at it.

Are we really sure that all APIs behind  the EFL_EO_API_SUPPORT are 
really finsalised?

We might need to come up with a list of them and brign them up here for 
the audience.

regards
Stefan Schmidt



--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [tools/eflete] master 01/01: Tizen theme: update style for a fit button.

2016-06-13 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

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

commit fdc9ad848ef67c738d89ad950bc008cbbb68a277
Author: Mykyta Biliavskyi 
Date:   Mon Jun 13 11:27:04 2016 +0300

Tizen theme: update style for a fit button.
---
 data/themes/tizen/images/tool_autofit_dim.png | Bin 1051 -> 1051 bytes
 data/themes/tizen/images/tool_autofit_mv.png  | Bin 1052 -> 1055 bytes
 data/themes/tizen/images/tool_autofit_nor.png | Bin 1051 -> 1054 bytes
 data/themes/tizen/images/tool_autofit_sel.png | Bin 1057 -> 1059 bytes
 data/themes/tizen/widgets/button.edc  |   8 ++--
 5 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/data/themes/tizen/images/tool_autofit_dim.png 
b/data/themes/tizen/images/tool_autofit_dim.png
index e555210..4be8ef7 100644
Binary files a/data/themes/tizen/images/tool_autofit_dim.png and 
b/data/themes/tizen/images/tool_autofit_dim.png differ
diff --git a/data/themes/tizen/images/tool_autofit_mv.png 
b/data/themes/tizen/images/tool_autofit_mv.png
index 08ae953..50be408 100644
Binary files a/data/themes/tizen/images/tool_autofit_mv.png and 
b/data/themes/tizen/images/tool_autofit_mv.png differ
diff --git a/data/themes/tizen/images/tool_autofit_nor.png 
b/data/themes/tizen/images/tool_autofit_nor.png
index 477bffb..99b907b 100644
Binary files a/data/themes/tizen/images/tool_autofit_nor.png and 
b/data/themes/tizen/images/tool_autofit_nor.png differ
diff --git a/data/themes/tizen/images/tool_autofit_sel.png 
b/data/themes/tizen/images/tool_autofit_sel.png
index 6e17827..b8ae979 100644
Binary files a/data/themes/tizen/images/tool_autofit_sel.png and 
b/data/themes/tizen/images/tool_autofit_sel.png differ
diff --git a/data/themes/tizen/widgets/button.edc 
b/data/themes/tizen/widgets/button.edc
index d0dfca8..b106ea0 100644
--- a/data/themes/tizen/widgets/button.edc
+++ b/data/themes/tizen/widgets/button.edc
@@ -1865,12 +1865,11 @@ group { name: "elm/button/base/fit";
  type: IMAGE;
  mouse_events: 1;
  description { state: "default" 0.0;
-min: 28 20;
-max: 28 20;
+min: 20 20;
+max: 20 20;
 color: 255 255 255 255;
 image {
normal: "tool_autofit_nor.png";
-   border: 3 3 3 3;
 }
  }
  description { state: "visible" 0.0;
@@ -1880,21 +1879,18 @@ group { name: "elm/button/base/fit";
 inherit: "default" 0.0;
 image {
normal: "tool_autofit_sel.png";
-   border: 3 3 3 3;
 }
  }
  description { state: "disabled" 0.0;
 inherit:  "default" 0.0;
 image {
normal: "tool_autofit_dim.png";
-   border: 3 3 3 3;
 }
  }
  description { state: "hovered" 0.0;
 inherit:  "default" 0.0;
 image {
normal: "tool_autofit_mv.png";
-   border: 3 3 3 3;
 }
  }
   }

-- 




Re: [E-devel] Struct passed by value

2016-06-13 Thread marcel-hollerbach
On Mon, Jun 13, 2016 at 05:26:45PM +0900, Carsten Haitzler wrote:
> On Fri, 10 Jun 2016 11:10:47 +0900 Jean-Philippe André  
> said:
> 
> my take on it is that passing by value is:
> 
> 1. odd (its rarely if ever seen in api's - look at libc, xlib, libjpeg, 
> libpng,
> libgif, libgif, glib, gtk+, ...) at least in c land
> 2. passing by value causes you to have to use c99 constructs and/or gnu
> extensions like you show:
>   rect_set(obj, (Eina_Rectangle){.w = 13, .h = 37});
> vs
>   rect_set(obj, 13, 37);

I dont know if this usecase applies, you will only set hardcoded coords
if you are hardcoding a ui, which is nothing which makes sense while
using elm. So a usecase like

  Eina_Rectangle rect;

  rect = rect_get(obj);
  rect.x += 20
  rect.y += 20
  rect_set(obj2, rect);

Is a bit more realistic, and here a single variable rect is way easier
to read. Also think of multiple geometryies you are receiving you will
end up with vp_x, vp_y, vp_w, vp_h, obj_x, obj_y, obj_w, obj_h etc. etc.
instead of Eina_Rectangle vp, obj_geom; which is less to write and maybe
invites you to give your var a more meaningfull name.

> 3. which one do you prefer to write and read? :) or to not use c99:
>   Eina_Rectangle rect = { 13, 37 };
>   rect_set(obj, rect);
> vs
>   rect_set(obj, 13, 37);
> 
> 
> remember we only need c99 to COMPILE efl. we don't require it of the code 
> USING
> efl. :)
> 4. if passed by value it may not be able to use registers and instead may copy
> to memory (stack) and use a register with a ptr. this can lead to lower
> performance depending on architecture )though not really a big issue for us
> considering the cost of eo api anyway). also note that chances are passing:
>int x, int y, int w, int h
> will likely be assigned to 4 registers with the variables nicely already in a
> register (if the architecture has enough registers of course) but if passing a
> struct by value... let's pretend a 64bit system with 64bit registers it may 
> put
> x and y in 1 register and w and h in another and thus accessing these values
> as they have been "memcpy'd" into a series of registers requires copying out
> bitshifting and masking. it likely will cost more. in fact let's do some asm
> fun:
> 
>func1(x, y, w, h);
> 
> vs
> 
>func2(r);
> 
> 
> where r is:
> 
>struct rect
>{
>   int x, y, w, h;
>};
>struct rect r;
> 
> so func1 is:
> 
> movl-16(%rbp), %ecx
> movl-12(%rbp), %edx
> movl-8(%rbp), %esi
> movl-4(%rbp), %eax
> movl%eax, %edi
> callfunc1
> 
> and func2:
> 
> movq-32(%rbp), %rdx
> movq-24(%rbp), %rax
> movq%rdx, %rdi
> movq%rax, %rsi
> callfunc2
> 
> yup. it's moving a whole set of 64bits at a time into 2 registers vs each 
> value
> per register. so i'm right. yes. call by value here is shorter as it drops 2
> mov's into registers but it seems to gain and extra movq there. ok let's look
> at the funcs themselves
> 
> =
> func1:
> .LC0:
> .string "GOT1  %i %i %i %i\n"
> .text
> .globl  func1
> .type   func1, @function
> func1:
> .LFB2:
> .cfi_startproc
> pushq   %rbp
> .cfi_def_cfa_offset 16
> .cfi_offset 6, -16
> movq%rsp, %rbp
> .cfi_def_cfa_register 6
> subq$16, %rsp
> movl%edi, -4(%rbp)
> movl%esi, -8(%rbp)
> movl%edx, -12(%rbp)
> movl%ecx, -16(%rbp)
> movl-16(%rbp), %esi
> movl-12(%rbp), %ecx
> movl-8(%rbp), %edx
> movl-4(%rbp), %eax
> movl%esi, %r8d
> movl%eax, %esi
> movl$.LC0, %edi
> movl$0, %eax
> callprintf
> nop
> leave
> .cfi_def_cfa 7, 8
> ret
> 
> 
> =
> func2:
> 
> .LC1:
> .string "GOT2  %i %i %i %i\n"
> .text
> .globl  func2
> .type   func2, @function
> func2:
> .LFB3:
> .cfi_startproc
> pushq   %rbp
> .cfi_def_cfa_offset 16
> .cfi_offset 6, -16
> movq%rsp, %rbp
> .cfi_def_cfa_register 6
> subq$16, %rsp
> movq%rdi, %rax
> movq%rsi, %rcx
> movq%rcx, %rdx
> movq%rax, -16(%rbp)
> movq%rdx, -8(%rbp)
> movl-4(%rbp), %esi
> movl-8(%rbp), %ecx
> movl-12(%rbp), %edx
> movl-16(%rbp), %eax
> movl%esi, %r8d
> movl%eax, %esi
> movl$.LC1, %edi
> movl$0, %eax
> callprintf
> nop
> leave
> .cfi_def_cfa 7, 8
> ret
> 
> 
> so func2 is longer by 1 instruction now. lose 1, gain 1. i am not sure how
> x86-64 works vs x86-32 but i think eax, edi, esi etc. are mapped to lower
> 32bits of  the rax, rdi, rsi, etc. registers by reading that code, thus it 

[EGIT] [core/efl] master 02/05: win: Add focus events (in, out, object in/out)

2016-06-13 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 4bb8a6bd21c094460bbf8ede6833047edd93dafa
Author: Jean-Philippe Andre 
Date:   Mon Jun 13 16:28:17 2016 +0900

win: Add focus events (in, out, object in/out)
---
 src/lib/elementary/efl_ui_win.c  | 62 
 src/lib/elementary/efl_ui_win.eo |  4 +++
 2 files changed, 66 insertions(+)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index dacc6e9..10b87a1 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -1757,6 +1757,52 @@ _elm_win_evas_render_pre(void *data,
 }
 
 static void
+_elm_win_evas_focus_in(void *data,
+   Evas *e EINA_UNUSED,
+   Evas_Object *obj EINA_UNUSED,
+   void *event_info EINA_UNUSED)
+{
+   Eo *win = data;
+
+   eo_event_callback_call(win, EFL_UI_WIN_EVENT_FOCUS_IN, NULL);
+}
+
+static void
+_elm_win_evas_focus_out(void *data,
+Evas *e EINA_UNUSED,
+Evas_Object *obj EINA_UNUSED,
+void *event_info EINA_UNUSED)
+{
+   Eo *win = data;
+
+   eo_event_callback_call(win, EFL_UI_WIN_EVENT_FOCUS_OUT, NULL);
+}
+
+static void
+_elm_win_evas_object_focus_in(void *data,
+  Evas *e EINA_UNUSED,
+  Evas_Object *obj EINA_UNUSED,
+  void *event_info)
+{
+   Eo *object = event_info;
+   Eo *win = data;
+
+   eo_event_callback_call(win, EFL_UI_WIN_EVENT_OBJECT_FOCUS_IN, object);
+}
+
+static void
+_elm_win_evas_object_focus_out(void *data,
+   Evas *e EINA_UNUSED,
+   Evas_Object *obj EINA_UNUSED,
+   void *event_info)
+{
+   Eo *object = event_info;
+   Eo *win = data;
+
+   eo_event_callback_call(win, EFL_UI_WIN_EVENT_OBJECT_FOCUS_OUT, object);
+}
+
+static void
 _deferred_ecore_evas_free(void *data)
 {
ecore_evas_free(data);
@@ -2109,6 +2155,14 @@ _efl_ui_win_evas_object_smart_del(Eo *obj, 
Efl_Ui_Win_Data *sd)
_elm_win_evas_render_post, obj);
evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_RENDER_PRE,
_elm_win_evas_render_pre, obj);
+   evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_FOCUS_IN,
+   _elm_win_evas_focus_in, obj);
+   evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_FOCUS_OUT,
+   _elm_win_evas_focus_out, obj);
+   evas_object_event_callback_del_full(sd->evas, 
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
+   _elm_win_evas_object_focus_in, obj);
+   evas_object_event_callback_del_full(sd->evas, 
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT,
+   _elm_win_evas_object_focus_out, obj);
eo_event_callback_array_del(sd->evas, _elm_win_evas_forward_callbacks(), 
obj);
eo_event_callback_array_del(obj, _elm_win_evas_feed_fake_callbacks(), 
sd->evas);
 
@@ -4175,6 +4229,14 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, 
const char *name, Elm_W
   _elm_win_evas_render_post, obj);
evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_RENDER_PRE,
   _elm_win_evas_render_pre, obj);
+   evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_FOCUS_IN,
+  _elm_win_evas_focus_in, obj);
+   evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_FOCUS_OUT,
+  _elm_win_evas_focus_out, obj);
+   evas_object_event_callback_add(sd->evas, 
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
+  _elm_win_evas_object_focus_in, obj);
+   evas_object_event_callback_add(sd->evas, 
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT,
+  _elm_win_evas_object_focus_out, obj);
 
evas_object_show(sd->edje);
 
diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo
index c3a337c..715d958 100644
--- a/src/lib/elementary/efl_ui_win.eo
+++ b/src/lib/elementary/efl_ui_win.eo
@@ -822,6 +822,10 @@ class Efl.Ui.Win (Elm.Widget, Elm.Interface.Atspi.Window,
   wm,rotation,changed;
   theme,changed;
   elm,action,block_menu;
+  focus,in;
+  focus,out;
+  object,focus,in;
+  object,focus,out;
   render,pre;
   render,post: Efl.Gfx.Event.Render_Post;
}

-- 




[EGIT] [core/efl] master 03/05: win: Add event device,changed

2016-06-13 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit dd24c588fadfba97e30bd234ff1008d4ab4bac9e
Author: Jean-Philippe Andre 
Date:   Mon Jun 13 16:31:03 2016 +0900

win: Add event device,changed
---
 src/lib/elementary/efl_ui_win.c  | 16 
 src/lib/elementary/efl_ui_win.eo |  1 +
 2 files changed, 17 insertions(+)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 10b87a1..dd978f2 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -1803,6 +1803,18 @@ _elm_win_evas_object_focus_out(void *data,
 }
 
 static void
+_elm_win_evas_device_changed(void *data,
+ Evas *e EINA_UNUSED,
+ Evas_Object *obj EINA_UNUSED,
+ void *event_info)
+{
+   Eo *device = event_info;
+   Eo *win = data;
+
+   eo_event_callback_call(win, EFL_UI_WIN_EVENT_DEVICE_CHANGED, device);
+}
+
+static void
 _deferred_ecore_evas_free(void *data)
 {
ecore_evas_free(data);
@@ -2163,6 +2175,8 @@ _efl_ui_win_evas_object_smart_del(Eo *obj, 
Efl_Ui_Win_Data *sd)
_elm_win_evas_object_focus_in, obj);
evas_object_event_callback_del_full(sd->evas, 
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT,
_elm_win_evas_object_focus_out, obj);
+   evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_DEVICE_CHANGED,
+   _elm_win_evas_device_changed, obj);
eo_event_callback_array_del(sd->evas, _elm_win_evas_forward_callbacks(), 
obj);
eo_event_callback_array_del(obj, _elm_win_evas_feed_fake_callbacks(), 
sd->evas);
 
@@ -4237,6 +4251,8 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, 
const char *name, Elm_W
   _elm_win_evas_object_focus_in, obj);
evas_object_event_callback_add(sd->evas, 
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT,
   _elm_win_evas_object_focus_out, obj);
+   evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_DEVICE_CHANGED,
+  _elm_win_evas_device_changed, obj);
 
evas_object_show(sd->edje);
 
diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo
index 715d958..96c6a9d 100644
--- a/src/lib/elementary/efl_ui_win.eo
+++ b/src/lib/elementary/efl_ui_win.eo
@@ -828,5 +828,6 @@ class Efl.Ui.Win (Elm.Widget, Elm.Interface.Atspi.Window,
   object,focus,out;
   render,pre;
   render,post: Efl.Gfx.Event.Render_Post;
+  device,changed;
}
 }

-- 




[EGIT] [core/efl] master 04/05: win: Optimize event forward using callback add/del events

2016-06-13 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 59f3841803238a21972d17336a68616406bec8b3
Author: Jean-Philippe Andre 
Date:   Mon Jun 13 17:28:36 2016 +0900

win: Optimize event forward using callback add/del events

This is a common pattern, listen to EO_EVENT_CALLBACK_ADD/DEL in
order to treat those events only when needed.
---
 src/lib/elementary/efl_ui_win.c | 289 ++--
 1 file changed, 246 insertions(+), 43 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index dd978f2..6178305 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -215,6 +215,26 @@ struct _Efl_Ui_Win_Data
int  norender;
int  modal_count;
int  response;
+
+   struct {
+  short pointer_move;
+  short pointer_down;
+  short pointer_up;
+  short pointer_in;
+  short pointer_out;
+  short pointer_cancel;
+  short pointer_wheel;
+  short key_down;
+  short key_up;
+  short render_pre;
+  short render_post;
+  short focus_in;
+  short focus_out;
+  short object_focus_in;
+  short object_focus_out;
+  short device_changed;
+   } event_forward;
+
Eina_Boolurgent : 1;
Eina_Boolmodal : 1;
Eina_Booldemand_attention : 1;
@@ -1668,17 +1688,6 @@ _evas_event_pointer_cb(void *data, const Eo_Event *ev)
return EO_CALLBACK_CONTINUE;
 }
 
-EO_CALLBACKS_ARRAY_DEFINE(_elm_win_evas_forward_callbacks,
-{ EFL_EVENT_POINTER_MOVE, _evas_event_pointer_cb },
-{ EFL_EVENT_POINTER_DOWN, _evas_event_pointer_cb },
-{ EFL_EVENT_POINTER_UP, _evas_event_pointer_cb },
-{ EFL_EVENT_POINTER_IN, _evas_event_pointer_cb },
-{ EFL_EVENT_POINTER_OUT, _evas_event_pointer_cb },
-{ EFL_EVENT_POINTER_CANCEL, _evas_event_pointer_cb },
-{ EFL_EVENT_POINTER_WHEEL, _evas_event_pointer_cb },
-{ EFL_EVENT_KEY_DOWN, _evas_event_key_cb },
-{ EFL_EVENT_KEY_UP, _evas_event_key_cb })
-
 /* feed events from the window to evas - for fake inputs */
 static Eina_Bool
 _evas_event_key_feed_fake_cb(void *data, const Eo_Event *ev)
@@ -1814,6 +1823,228 @@ _elm_win_evas_device_changed(void *data,
eo_event_callback_call(win, EFL_UI_WIN_EVENT_DEVICE_CHANGED, device);
 }
 
+static Eina_Bool
+_win_event_add_cb(void *data, const Eo_Event *ev)
+{
+   const Eo_Callback_Array_Item *array = ev->info;
+   Efl_Ui_Win_Data *sd = data;
+   Efl_Ui_Win *win = ev->object;
+   int i;
+
+   for (i = 0; array[i].desc; i++)
+ {
+if (ev->info == EFL_EVENT_POINTER_MOVE)
+  {
+ if (!(sd->event_forward.pointer_move++))
+   eo_event_callback_add(sd->evas, array[i].desc,
+ _evas_event_pointer_cb, win);
+  }
+else if (ev->info == EFL_EVENT_POINTER_DOWN)
+  {
+ if (!(sd->event_forward.pointer_down++))
+   eo_event_callback_add(sd->evas, array[i].desc,
+ _evas_event_pointer_cb, win);
+  }
+else if (ev->info == EFL_EVENT_POINTER_UP)
+  {
+ if (!(sd->event_forward.pointer_up++))
+   eo_event_callback_add(sd->evas, array[i].desc,
+ _evas_event_pointer_cb, win);
+  }
+else if (ev->info == EFL_EVENT_POINTER_IN)
+  {
+ if (!(sd->event_forward.pointer_in++))
+   eo_event_callback_add(sd->evas, array[i].desc,
+ _evas_event_pointer_cb, win);
+  }
+else if (ev->info == EFL_EVENT_POINTER_OUT)
+  {
+ if (!(sd->event_forward.pointer_out++))
+   eo_event_callback_add(sd->evas, array[i].desc,
+ _evas_event_pointer_cb, win);
+  }
+else if (ev->info == EFL_EVENT_POINTER_CANCEL)
+  {
+ if (!(sd->event_forward.pointer_cancel++))
+   eo_event_callback_add(sd->evas, array[i].desc,
+ _evas_event_pointer_cb, win);
+  }
+else if (ev->info == EFL_EVENT_POINTER_WHEEL)
+  {
+ if (!(sd->event_forward.pointer_wheel++))
+   eo_event_callback_add(sd->evas, array[i].desc,
+ _evas_event_pointer_cb, win);
+  }
+else if (ev->info == EFL_EVENT_KEY_DOWN)
+  {
+ if (!(sd->event_forward.key_down++))
+   eo_event_callback_add(sd->evas, array[i].desc,
+ _evas_event_key_cb, win);
+  }
+else if (ev->info == EFL_EVENT_KEY_UP)
+  {
+ if (!(sd->event_forward.key_up++))
+   eo_event_callback_add(sd->evas, array[i].desc,
+   

[EGIT] [core/efl] master 05/05: Ecore_Input: define data type for joysticks

2016-06-13 Thread Shinwoo Kim
jpeg pushed a commit to branch master.

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

commit f70be6eb28a2ed6c6bfc23a14d6ad2cebfe1b95b
Author: Shinwoo Kim 
Date:   Mon Jun 13 19:41:38 2016 +0900

Ecore_Input: define data type for joysticks

Summary: This adds support for joysticks for ecore_input

Reviewers: cedric, devilhorns, Sergeant_Whitespace, raster, thiepha, zmike, 
jpeg

Reviewed By: thiepha, zmike, jpeg

Subscribers: thiepha, stefan_schmidt, zmike, singh.amitesh, 
Sergeant_Whitespace, jgerecke, cedric, seoz

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D1538
---
 configure.ac  | 259 ---
 src/Makefile_Ecore_Input.am   |   1 +
 src/examples/ecore/ecore_input_joystick_example.c |  61 
 src/lib/ecore_input/Ecore_Input.h |  81 +
 src/lib/ecore_input/ecore_input.c |   6 +
 src/lib/ecore_input/ecore_input_joystick.c| 386 ++
 src/lib/ecore_input/ecore_input_private.h |   2 +
 7 files changed, 668 insertions(+), 128 deletions(-)

diff --git a/configure.ac b/configure.ac
index 9b220f5..f1cf8df 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3135,6 +3135,135 @@ EFL_LIB_END([Ecore_File])
  End of Ecore_File
 
 
+ Eeze
+have_libmount_new="no"
+have_libmount_old="no"
+have_eeze_mount="no"
+
+EFL_LIB_START_OPTIONAL([Eeze], [test "x${build_libeeze}" = "xyes"])
+
+### Additional options to configure
+AC_ARG_WITH([mount],
+  [AS_HELP_STRING([--with-mount], [specify mount bin @<:@default=detect@:>@])],
+  [with_eeze_mount=$withval], [with_eeze_mount="detect"])
+AC_ARG_WITH([umount],
+  [AS_HELP_STRING([--with-umount], [specify umount bin 
@<:@default=detect@:>@])],
+  [with_eeze_umount=$withval], [with_eeze_umount="detect"])
+AC_ARG_WITH([eject],
+  [AS_HELP_STRING([--with-eject], [specify eject bin @<:@default=detect@:>@])],
+  [with_eeze_eject=$withval], [with_eeze_eject="detect"])
+
+### Default values
+
+### Checks for programs
+
+### Checks for libraries
+EFL_INTERNAL_DEPEND_PKG([EEZE], [eina])
+EFL_INTERNAL_DEPEND_PKG([EEZE], [ecore])
+EFL_INTERNAL_DEPEND_PKG([EEZE], [eo])
+EFL_INTERNAL_DEPEND_PKG([EEZE], [efl])
+EFL_INTERNAL_DEPEND_PKG([EEZE], [ecore-file])
+EFL_INTERNAL_DEPEND_PKG([EEZE], [ecore-con])
+EFL_INTERNAL_DEPEND_PKG([EEZE], [eet])
+EFL_INTERNAL_DEPEND_PKG([EEZE], [emile])
+
+EFL_DEPEND_PKG([EEZE], [UDEV], [libudev >= 148])
+
+AC_ARG_ENABLE([libmount],
+   [AS_HELP_STRING([--disable-libmount],[disable libmount support. 
@<:@default=enabled@:>@])],
+   [
+if test "x${enableval}" = "xyes" ; then
+   want_libmount="yes"
+else
+   want_libmount="no"
+   CFOPT_WARNING="xyes"
+fi
+   ],
+   [want_libmount="yes"])
+
+EFL_OPTIONAL_DEPEND_PKG([EEZE], [${want_libmount}],
+   [EEZE_MOUNT], [mount >= 2.18.0])
+EFL_ADD_FEATURE([EEZE], [libmount], [${have_eeze_mount}])
+
+PKG_CHECK_EXISTS([libudev < 199],
+ [have_libudev_old="yes"],
+ [have_libudev_old="no"])
+AC_MSG_CHECKING([Use old libudev API (before 199)])
+AC_MSG_RESULT([${have_libudev_old}])
+
+PKG_CHECK_EXISTS([mount < 2.19.0],
+ [have_libmount_old="yes"],
+ [have_libmount_old="no"])
+AC_MSG_CHECKING([Use old libmount API (before 2.19.0)])
+AC_MSG_RESULT([${have_libmount_old}])
+
+PKG_CHECK_EXISTS([mount == 2.19.0],
+ [have_libmount_219="yes"],
+ [have_libmount_219="no"])
+AC_MSG_CHECKING([Use libmount 2.19.0 API])
+AC_MSG_RESULT([${have_libmount_219}])
+
+PKG_CHECK_EXISTS([mount > 2.19.0],
+ [have_libmount_new="yes"],
+ [have_libmount_new="no"])
+AC_MSG_CHECKING([Use new libmount API (newer than 2.19.0)])
+AC_MSG_RESULT([${have_libmount_new}])
+
+if test "x${have_libudev_old}" = "xyes"; then
+  AC_DEFINE_UNQUOTED([OLD_LIBUDEV], [1], [using older version of libudev])
+fi
+
+if test "x${have_libmount_old}" = "xyes"; then
+  AC_DEFINE_UNQUOTED([OLD_LIBMOUNT], [1], [using first version of libmount])
+fi
+
+## modules
+if test "${want_tizen}"  = "yes"; then
+  PKG_CHECK_MODULES([TIZEN_SENSOR], [capi-system-sensor >= 0.1.17])
+fi
+EFL_ADD_FEATURE([EEZE], [tizen])
+
+EFL_EVAL_PKGS([EEZE])
+
+### Checks for header files
+
+### Checks for types
+
+### Checks for structures
+
+### Checks for compiler characteristics
+
+### Checks for linker characteristics
+
+### Checks for library functions
+
+### Checks for binaries
+if test "x$with_eeze_mount" = "xdetect"; then
+  AC_PATH_PROG([with_eeze_mount], [mount], [])
+fi
+AC_DEFINE_UNQUOTED([EEZE_MOUNT_BIN], ["$with_eeze_mount"], [mount bin to use])
+
+if test "x$with_eeze_umount" = "xdetect";then
+  AC_PATH_PROG([with_eeze_umount], [umount], [])
+fi
+AC_DEFINE_UNQUOTED([EEZE_UNMOUNT_BIN], ["$with_eeze_umount"], [umount bin to 
use])
+
+if test "x$with_eeze_eject" = 

[EGIT] [core/efl] master 01/05: win: Add event render,pre

2016-06-13 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit be82f4f0fd1cccaf43c627458a275d1f47322315
Author: Jean-Philippe Andre 
Date:   Mon Jun 13 15:48:29 2016 +0900

win: Add event render,pre
---
 src/lib/elementary/efl_ui_win.c  | 16 
 src/lib/elementary/efl_ui_win.eo |  1 +
 2 files changed, 17 insertions(+)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 0be431f..dacc6e9 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -1746,6 +1746,17 @@ _elm_win_evas_render_post(void *data,
 }
 
 static void
+_elm_win_evas_render_pre(void *data,
+  Evas *e EINA_UNUSED,
+  Evas_Object *obj EINA_UNUSED,
+  void *event_info EINA_UNUSED)
+{
+   Eo *win = data;
+
+   eo_event_callback_call(win, EFL_UI_WIN_EVENT_RENDER_PRE, NULL);
+}
+
+static void
 _deferred_ecore_evas_free(void *data)
 {
ecore_evas_free(data);
@@ -2096,6 +2107,8 @@ _efl_ui_win_evas_object_smart_del(Eo *obj, 
Efl_Ui_Win_Data *sd)
// TODO: optimize event forwarders with EO_EVENT_CALLBACK_ADD/DEL
evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_RENDER_POST,
_elm_win_evas_render_post, obj);
+   evas_object_event_callback_del_full(sd->evas, EVAS_CALLBACK_RENDER_PRE,
+   _elm_win_evas_render_pre, obj);
eo_event_callback_array_del(sd->evas, _elm_win_evas_forward_callbacks(), 
obj);
eo_event_callback_array_del(obj, _elm_win_evas_feed_fake_callbacks(), 
sd->evas);
 
@@ -4155,10 +4168,13 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data 
*sd, const char *name, Elm_W
if (_elm_config->atspi_mode)
  elm_interface_atspi_window_created_signal_emit(obj);
 
+   // TODO: optimize event forwarders with EO_EVENT_CALLBACK_ADD/DEL
eo_event_callback_array_add(sd->evas, _elm_win_evas_forward_callbacks(), 
obj);
eo_event_callback_array_add(obj, _elm_win_evas_feed_fake_callbacks(), 
sd->evas);
evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_RENDER_POST,
   _elm_win_evas_render_post, obj);
+   evas_object_event_callback_add(sd->evas, EVAS_CALLBACK_RENDER_PRE,
+  _elm_win_evas_render_pre, obj);
 
evas_object_show(sd->edje);
 
diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo
index 565b5ce..c3a337c 100644
--- a/src/lib/elementary/efl_ui_win.eo
+++ b/src/lib/elementary/efl_ui_win.eo
@@ -822,6 +822,7 @@ class Efl.Ui.Win (Elm.Widget, Elm.Interface.Atspi.Window,
   wm,rotation,changed;
   theme,changed;
   elm,action,block_menu;
+  render,pre;
   render,post: Efl.Gfx.Event.Render_Post;
}
 }

-- 




[EGIT] [core/efl] master 01/01: edje_cc - new vector svg loader - fix bunch of incorrect code that segvs

2016-06-13 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit e9802506a071d37899d52248f276ff642c1ef5bd
Author: Carsten Haitzler (Rasterman) 
Date:   Mon Jun 13 19:48:27 2016 +0900

edje_cc - new vector svg loader - fix bunch of incorrect code that segvs

passing in wrond data type as a void * (no typechecking) like
node->style instead of node as the function EXPECTED node not
node->style

also why malloc strlen of string then strcpy when strdup will do? why?

fix!

still doesn't work. i can't display an svg vector at all.
---
 src/bin/edje/edje_svg_loader.c | 17 +++--
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/src/bin/edje/edje_svg_loader.c b/src/bin/edje/edje_svg_loader.c
index 18ef8fe..7ee5404 100644
--- a/src/bin/edje/edje_svg_loader.c
+++ b/src/bin/edje/edje_svg_loader.c
@@ -60,10 +60,7 @@ _skip_space(const char *str, const char *end)
 static inline char *
 _copy_id(const char* str)
 {
-   char *id = malloc(strlen(str));
-
-   strcpy(id, str);
-   return id;
+   return strdup(str);
 }
 
 static const char *
@@ -677,7 +674,7 @@ _attr_parse_g_node(void *data, const char *key, const char 
*value)
 
if (!strcmp(key, "style"))
  {
-return _attr_style_node(node->style, value);
+return _attr_style_node(node, value);
  }
else if (!strcmp(key, "transform"))
  {
@@ -763,7 +760,7 @@ _attr_parse_path_node(void *data, const char *key, const 
char *value)
  }
else if (!strcmp(key, "style"))
  {
-_attr_style_node(node->style, value);
+_attr_style_node(node, value);
  }
else if (!strcmp(key, "id"))
  {
@@ -821,7 +818,7 @@ _attr_parse_circle_node(void *data, const char *key, const 
char *value)
 
if (!strcmp(key, "style"))
  {
-_attr_style_node(node->style, value);
+_attr_style_node(node, value);
  }
else if (!strcmp(key, "id"))
  {
@@ -884,7 +881,7 @@ _attr_parse_ellipse_node(void *data, const char *key, const 
char *value)
  }
else if (!strcmp(key, "style"))
  {
-_attr_style_node(node->style, value);
+_attr_style_node(node, value);
  }
else
  {
@@ -948,7 +945,7 @@ _attr_parse_polygon_node(void *data, const char *key, const 
char *value)
  }
else if (!strcmp(key, "style"))
  {
-_attr_style_node(node->style, value);
+_attr_style_node(node, value);
  }
else if (!strcmp(key, "id"))
  {
@@ -1013,7 +1010,7 @@ _attr_parse_rect_node(void *data, const char *key, const 
char *value)
  }
else if (!strcmp(key, "style"))
  {
-_attr_style_node(node->style, value);
+_attr_style_node(node, value);
  }
else
  {

-- 




[E-devel] Preparation for release: Removal of EFL_EO_API_SUPPORT and etc

2016-06-13 Thread Tom Hacohen
Hey,

As part of the development process of the new Eo API we marked all of 
the API all around as beta. We mainly use EFL_EO_API_SUPPORT, but I 
think we maybe also use EFL_BETA_API_SUPPORT, need to verify that.

Anyhow, now is time to remove these tags (where appropriate), so these 
APIs are released.

I guess we can just remove all of the occurrences of the EO one, but we 
need to be more careful with the other one.

Is there anyone who has time to take care of this? Stefan? Or should I 
try to tackle it on Thursday when I'm done with travel and other stuff I 
need to deal with?

Thanks,
Tom.

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [tools/eflete] master 01/01: groupview_calc: apply MAP to image

2016-06-13 Thread Vitalii Vorobiov
rimmed pushed a commit to branch master.

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

commit e5f2de71f68baab13216d1387da8023b8e3c99c8
Author: Vitalii Vorobiov 
Date:   Fri Jun 10 15:07:04 2016 +0300

groupview_calc: apply MAP to image

Fixes T3850
---
 src/bin/ui/workspace/groupview_calc.c | 117 ++
 1 file changed, 117 insertions(+)

diff --git a/src/bin/ui/workspace/groupview_calc.c 
b/src/bin/ui/workspace/groupview_calc.c
index 5911240..f5b0754 100644
--- a/src/bin/ui/workspace/groupview_calc.c
+++ b/src/bin/ui/workspace/groupview_calc.c
@@ -818,6 +818,18 @@ _image_param_update(Groupview_Part *gp, Evas_Object 
*edit_obj)
int id;
int bl, br, bt, bb;
unsigned char middle;
+   /* map values */
+   Evas_Map *m;
+   Eina_Bool map_on;
+   const char *perpective = NULL, *light = NULL, *rot_part = NULL;
+   double rotX, rotY, rotZ;
+   int center_x, center_y, center_z; /* for rotations */
+   int persp_x, persp_y;
+   int rx, ry, rw, rh, w, h, xe, ye; /* for perspective */
+   int lx, ly, lz, lr, lg, lb, lar, lag, lab; /* colors and geom for light */
+   int r, g, b, a;
+   int iw = 1, ih = 1;
+   int zplane = 0, focal = 1000;
 
assert(gp != NULL);
assert(edit_obj != NULL);
@@ -855,6 +867,111 @@ _image_param_update(Groupview_Part *gp, Evas_Object 
*edit_obj)
 
_image_proxy_common_param_update(gp->proxy_part, gp, edit_obj);
 
+   /* ===
+  WORKING WITH MAP!
+  All that happening in here just because image part can't be proxed.
+  Proxy doesn't apply somehow all maps and borders etc, so we need to
+  calculate it with our own hands.
+
+  This calculation was taken from edje_calc.c functions
+  === */
+   map_on = edje_edit_state_map_on_get(edit_obj, gp->part->name, state, value);
+   if (map_on)
+ {
+
+rot_part = edje_edit_state_map_rotation_center_get(edit_obj, 
gp->part->name, state, value);
+edje_object_part_geometry_get(edit_obj, rot_part, , , , );
+edje_object_part_geometry_get(edit_obj, gp->part->name, NULL, NULL, 
, );
+evas_object_geometry_get(edit_obj, , , NULL, NULL);
+
+if (rot_part)
+  {
+ center_x = xe + rx + (rw / 2);
+ center_y = ye + ry + (rh / 2);
+  }
+else
+  {
+ center_x = xe + w / 2;
+ center_y = ye + h / 2;
+  }
+center_z = 0;
+
+m = evas_map_new(4);
+evas_map_smooth_set(m, edje_edit_state_map_smooth_get(edit_obj, 
gp->part->name, state, value));
+evas_map_alpha_set(m, edje_edit_state_map_alpha_get(edit_obj, 
gp->part->name, state, value));
+evas_map_util_points_populate_from_object(m, gp->proxy_part);
+
+evas_object_image_size_get(gp->proxy_part, , );
+evas_map_point_image_uv_set(m, 0, 0.0, 0.0);
+evas_map_point_image_uv_set(m, 1, iw, 0.0);
+evas_map_point_image_uv_set(m, 2, iw, ih);
+evas_map_point_image_uv_set(m, 3, 0.0, ih);
+
+/* map color */
+edje_edit_state_map_point_color_get(edit_obj, gp->part->name, state, 
value, 0, , , , );
+evas_map_point_color_set(m, 0, r, g, b, a);
+edje_edit_state_map_point_color_get(edit_obj, gp->part->name, state, 
value, 1, , , , );
+evas_map_point_color_set(m, 1, r, g, b, a);
+edje_edit_state_map_point_color_get(edit_obj, gp->part->name, state, 
value, 2, , , , );
+evas_map_point_color_set(m, 2, r, g, b, a);
+edje_edit_state_map_point_color_get(edit_obj, gp->part->name, state, 
value, 3, , , , );
+evas_map_point_color_set(m, 3, r, g, b, a);
+
+/* zoom */
+TODO("Implement edje edit API and apply it here")
+evas_map_util_zoom(m, 1.0, 1.0, center_x, center_y);
+
+/* rotate */
+edje_edit_state_map_rotation_get(edit_obj, gp->part->name, state, 
value, , , );
+evas_map_util_3d_rotate(m, rotX, rotY, rotZ, center_x, center_y, 
center_z);
+
+/* calculate perspective point */
+if (edje_edit_state_map_perspective_on_get(edit_obj, gp->part->name, 
state, value))
+  {
+ perpective = edje_edit_state_map_perspective_get(edit_obj, 
gp->part->name, state, value);
+ if (perpective)
+   {
+  edje_object_part_geometry_get(edit_obj, perpective, , 
, , );
+  zplane = 
edje_edit_state_map_perspective_zplane_get(edit_obj, perpective, state, value);
+  focal = edje_edit_state_map_perspective_focal_get(edit_obj, 
perpective, state, value);
+
+  persp_x = xe + rx + (rw / 2);
+  persp_y = ye + ry + (rh / 2);
+   }
+ else
+   {
+  persp_x = xe + (w / 2);
+  

[EGIT] [core/efl] master 01/01: evas_canvas: move evas_output_XXX API from eo to legach.

2016-06-13 Thread Ji-Youn Park
jypark pushed a commit to branch master.

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

commit a75fb5763a29b6c89173bf61c0a27ab43d780c1e
Author: Ji-Youn Park 
Date:   Mon Jun 13 18:50:11 2016 +0830

evas_canvas: move evas_output_XXX API from eo to legach.

evas canvas will be removed from eo.
evas_output_XXX APIs are usually used by widget or e17.
I decided not open these kind of APIs to eo.
app can use the size of elm win instead of evas output apis.
---
 src/lib/evas/Evas_Legacy.h   | 129 ++
 src/lib/evas/canvas/evas_canvas.eo   | 120 -
 src/lib/evas/canvas/evas_main.c  | 278 ++-
 src/tests/emotion/emotion_test_main-eo.c |   2 +-
 4 files changed, 294 insertions(+), 235 deletions(-)

diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index 6d89fe5..173eaea 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -5193,4 +5193,133 @@ EAPI Evas_Out *evas_out_add(Evas *e);
  */
 EAPI void evas_output_del(Evas_Out *evo);
 
+/**
+ * @brief Sets the output framespace size of the render engine of the given
+ * evas.
+ *
+ * The framespace size is used in the Wayland engines to denote space in the
+ * viewport which is occupied by the window frame. This is mainly used in
+ * ecore_evas to draw borders.
+ *
+ * The units used for @c w and @c h depend on the engine used by the evas.
+ *
+ * @param[in] x The left coordinate in output units, usually pixels.
+ * @param[in] y The top coordinate in output units, usually pixels.
+ * @param[in] w The width in output units, usually pixels.
+ * @param[in] h The height in output units, usually pixels.
+ *
+ * @since 1.1
+ *
+ * @ingroup Evas_Canvas
+ */
+EAPI void evas_output_framespace_set(Evas *e, Evas_Coord x, Evas_Coord y, 
Evas_Coord w, Evas_Coord h);
+
+/**
+ * @brief Get the render engine's output framespace coordinates in canvas
+ * units.
+ *
+ * @param[out] x The left coordinate in output units, usually pixels.
+ * @param[out] y The top coordinate in output units, usually pixels.
+ * @param[out] w The width in output units, usually pixels.
+ * @param[out] h The height in output units, usually pixels.
+ *
+ * @since 1.1
+ *
+ * @ingroup Evas_Canvas
+ */
+EAPI void evas_output_framespace_get(const Evas *e, Evas_Coord *x, Evas_Coord 
*y, Evas_Coord *w, Evas_Coord *h);
+
+/**
+ * @brief Sets the output viewport of the given evas in evas units.
+ *
+ * The output viewport is the area of the evas that will be visible to the
+ * viewer. The viewport will be stretched to fit the output target of the 
evas
+ * when rendering is performed.
+ *
+ * @note The coordinate values do not have to map 1-to-1 with the output
+ * target. However, it is generally advised that it is done for ease of use.
+ *
+ * @param[in] x The top-left corner x value of the viewport.
+ * @param[in] y The top-left corner y value of the viewport.
+ * @param[in] w The width of the viewport. Must be greater than 0.
+ * @param[in] h The height of the viewport.  Must be greater than 0.
+ *
+ * @ingroup Evas_Canvas
+ */
+EAPI void evas_output_viewport_set(Evas *e, Evas_Coord x, Evas_Coord y, 
Evas_Coord w, Evas_Coord h);
+
+/**
+ * @brief Get the render engine's output viewport coordinates in canvas units.
+ *
+ * Calling this function writes the current canvas output viewport size and
+ * location values into the variables pointed to by @c x, @c y, @c w and @c h.
+ * On success the variables have the output location and size values 
written
+ * to them in canvas units. Any of @c x, @c y, @c w or @c h that are @c null
+ * will not be written to. If @c e is invalid, the results are undefined.
+ *
+ * @param[out] x The top-left corner x value of the viewport.
+ * @param[out] y The top-left corner y value of the viewport.
+ * @param[out] w The width of the viewport.  Must be greater than 0.
+ * @param[out] h The height of the viewport.  Must be greater than 0.
+ *
+ * @ingroup Evas_Canvas
+ */
+EAPI void evas_output_viewport_get(const Evas *e, Evas_Coord *x, Evas_Coord 
*y, Evas_Coord *w, Evas_Coord *h);
+
+/**
+ * @brief Sets the output engine for the given evas.
+ *
+ * Once the output engine for an evas is set, any attempt to change it will be
+ * ignored. The value for @c render_method can be found using @ref
+ * evas_render_method_lookup.
+ *
+ * @note it is mandatory that one calls @ref evas_init before setting the
+ * output method.
+ *
+ * @param[in] render_method The numeric engine value to use.
+ *
+ * @ingroup Evas_Canvas
+ */
+EAPI void evas_output_method_set(Evas *e, int render_method);
+
+/**
+ * @brief Retrieves the number of the output engine used for the given evas.
+ *
+ * @return The numeric engine value to use.
+ *
+ * @ingroup Evas_Canvas
+ */
+EAPI int evas_output_method_get(const Evas *e);
+
+/**
+ * @brief Sets the output size of the render engine of the given evas.
+ 

[EGIT] [core/efl] master 01/02: examples: elementary: ad missing math lib to linker flags

2016-06-13 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 0dabbdeabc0079d6bf6be95ba10d44c5c7f2574a
Author: Stefan Schmidt 
Date:   Mon Jun 13 10:23:16 2016 +0200

examples: elementary: ad missing math lib to linker flags

We are using cos() and sin() in the efl_thread examples here but never 
linked
to the math lib. Ubuntu 14.04 on Travis CI errored out with this:

/usr/bin/ld: efl_thread_1.o: undefined reference to symbol 
'cos@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from 
command line
---
 src/examples/elementary/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/examples/elementary/Makefile.am 
b/src/examples/elementary/Makefile.am
index 5aacd7f..2cdb390 100644
--- a/src/examples/elementary/Makefile.am
+++ b/src/examples/elementary/Makefile.am
@@ -45,6 +45,7 @@ AM_CXXFLAGS = \
 
 LDADD = \
 @ELEMENTARY_LDFLAGS@ \
+-lm \
 $(top_builddir)/src/lib/eina/libeina.la \
 $(top_builddir)/src/lib/eo/libeo.la \
 $(top_builddir)/src/lib/eet/libeet.la \

-- 




[EGIT] [core/efl] master 02/02: benchmark: eo: add missing phthread flag to linker

2016-06-13 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 4a59fc4eb5465d96e8b1ca7b7e1e72c23e0cd422
Author: Stefan Schmidt 
Date:   Mon Jun 13 11:08:46 2016 +0200

benchmark: eo: add missing phthread flag to linker

/usr/bin/ld: class_simple.o: undefined reference to symbol 
'pthread_spin_trylock@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing 
from command line
---
 src/benchmarks/eo/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/benchmarks/eo/Makefile.am b/src/benchmarks/eo/Makefile.am
index 9fa4c1e..a2aac48 100644
--- a/src/benchmarks/eo/Makefile.am
+++ b/src/benchmarks/eo/Makefile.am
@@ -25,7 +25,8 @@ eo_bench_eo_add.c
 eo_bench_LDADD = \
 $(top_builddir)/src/lib/eo/libeo.la \
 $(top_builddir)/src/lib/eina/libeina.la \
-@EO_LDFLAGS@
+@EO_LDFLAGS@ \
+-lpthread
 
 clean-local:
rm -rf *.gcno ..\#..\#src\#*.gcov *.gcda

-- 




Re: [E-devel] What is still pending for 1.18 before the freeze starts

2016-06-13 Thread The Rasterman
On Wed, 8 Jun 2016 21:49:59 +1000 David Seikel  said:

> On Wed, 8 Jun 2016 14:20:18 +0900 Carsten Haitzler (The Rasterman)
>  wrote:
> 
> > On Fri, 27 May 2016 15:01:27 +0200 Stefan Schmidt
> >  said:
> > 
> > > Hello.
> > > 
> > > What do you have in your local queue for 1.18?
> > > 
> > > The freeze starts in 10 days and I would like to get an overview on
> > > what is still to expect.
> > > 
> > > o The merge of evas generic loaders and emotion generic players is 
> > > pending build system integration and merging as far as I can see
> > > o On the interface side I lost track. What is still missing here? 
> > > Cedric, JP, etc can you update?
> > > o Any more EO changes coming or is it all done now? Tom?
> > > o Are there more Wayland changes to expect before 1.18 closes?
> > > Chris, Mike Derek?
> > > o Anything else?
> > 
> > promises. their current state is fart from freezable.
> 
> Please promise you will keep your your frozen farts to yourself.  B-)

:-P~~~


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


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] status of JavaScript binding ?

2016-06-13 Thread The Rasterman
On Mon, 23 May 2016 13:56:52 + Jason Vas Dias 
said:

> Oh wow - I just realized efl-1.17.99 from GIT actually CONTAINS the
> elementary distribution .
> I was trying to build the elementary git master:
>   git://git.enlightenment.org/core/elementary.git
> after building and installing the efl-1.17.99 git master:
>   git://git.enlightenment.org/core/efl.git
> 
> There were lots of errors running eoilian_gen in this case!
> 
> But I guess efl now contains elementary, and of course its
> src/lib/elementary/*.eo
> files are incompatible with the elementary/src/lib/*.eo files in the
> elementary GIT.
> 
> But how do I pass the elementary configure argument :
> --with-elementary-web-backend=ewebkit2
> to EFL ? Can I just include it on the EFL configure command line ?
> I'll try this now, re-enabling JavaScript  .
> 
> This is the reason I am re-building elementary, for the ewebkit2 support -
> I just built ewebkit2 successfully, & want to try out Eve .

umm current efl in git lost the webkit module. it hasnt been ported over yet. :)

> Regards,
> Jason
> 
> On 23/05/2016, Jason Vas Dias  wrote:
> > Hi - please could anyone enlighten me -
> > Is the JavaScript binding obtained by building EFL with the
> >  '--with-js=nodejs'
> > configure option, and then elementary with the
> >  '--enable-js-bindings'
> > meant to work ?
> > I have tried building both from latest GIT masters with a working nodejs
> > v5.0.0
> > setup - the EFL build completes OK, but the elementary build fails
> > running 'eolian_gen' - there are many __undefined_type's for the callbacks
> > that fail "database validation" .
> > Is this feature meant to work ? Which version of node.js works with it ?
> > Thanks & Regards,
> > Jason
> >
> 
> --
> Mobile security can be enabling, not merely restricting. Employees who
> bring their own devices (BYOD) to work are irked by the imposition of MDM
> restrictions. Mobile Device Manager Plus allows you to control only the
> apps on BYO-devices by containerizing them, leaving personal data untouched!
> https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
> ___
> 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


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] terminolo.gy

2016-06-13 Thread The Rasterman
On Thu, 2 Jun 2016 14:39:02 +0200 Boris Faure  said:

> Hi!
> 
> I'm the proud owner of the domain name "terminolo.gy". I haven't use it
> for anything but redirect to the e.org website.
> It expires in mid July and I wonder if I should renew it or not.
> 
> Suggestions are welcomed :)
> 
> -- 
> Boris Faure
> Pointer Arithmetician

that's an awesome domain. keep it! :)

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


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/01: edje: add new svg part to edc

2016-06-13 Thread The Rasterman
On Thu, 9 Jun 2016 14:57:56 +0900 Jean-Philippe André  said:

> On 9 June 2016 at 14:44, Simon Lees  wrote:
> 
> >
> >
> > On 06/09/2016 02:58 PM, Cedric BAIL wrote:
> > > On Wed, Jun 8, 2016 at 9:53 PM, Hermet Park  wrote:
> > >> edc new syntax hasn't been reviewed among people seriously.
> > >
> > > Then it is time to review it seriously. This patch has been in the
> > > making for month on phab available for everyone to review it. Once we
> > > do 1.18, this is set in stone. There isn't a way to deprecate edc
> > > syntax and edj internal file. Take some times to look at it now, if we
> > > need to disable this for this release, it is now !
> > >
> > > Cedric
> >
> > Is there some example edje files anywhere? I didn't see one in that
> > commit and may have been to lazy to look further, but for those of use
> > that write lots of .edc and not alot of c examples will make it much
> > easier to review the syntax.
> >
> 
> Precisely, the syntax and the EDJ ABI need to be set in stone, if we want
> to stabilize this.
> An alternative option is to enable this on demand only (eg. with a
> --enable-svg in edje_cc) or add really visible output messages.
> 
> Only a few people can really review stuff on phab, it's much easier to see
> how things actually work, rather than try and guess from the diffs.

let's just disable it for now without an -enable option at runtime or an env
var. i'd just use an env var as its simpler to do :)

> > Cheers
> >
> > >
> > >> -Original Message-
> > >> From: "Cedric BAIL"
> > >> To: "Enlightenment developer list"<
> > enlightenment-devel@lists.sourceforge.net>;
> > >> Cc:
> > >> Sent: 2016-06-09 (목) 13:40:34
> > >> Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: edje: add new
> > svg part to edc
> > >>
> > >> On Thu, Jun 9, 2016 at 4:07 AM, Hermet Park 
> > wrote:
> > >>> vector stuff is still beta feature.
> > >>>
> > >>> -Original Message-
> > >>> From: "Jean-Philippe André"
> > >>> To: "Enlightenment developer list"<
> > enlightenment-devel@lists.sourceforge.net>;
> > >>> Cc:
> > >>> Sent: 2016-06-09 (목) 10:34:56
> > >>> Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: edje: add new
> > svg part to edc
> > >>>
> > >>> On 9 June 2016 at 03:35, Subhransu Mohanty 
> > wrote:
> > >>>
> >  cedric pushed a commit to branch master.
> > 
> > 
> > 
> > http://git.enlightenment.org/core/efl.git/commit/?id=62c0a4ef087ea71355961e030b0620a60b77a026
> > 
> >  commit 62c0a4ef087ea71355961e030b0620a60b77a026
> >  Author: Subhransu Mohanty 
> >  Date:   Wed Jun 8 11:26:07 2016 -0700
> > 
> >  edje: add new svg part to edc
> > 
> >  Reviewers: Hermet, cedric
> > 
> >  Reviewed By: cedric
> > 
> >  Subscribers: jpeg, cedric, Hermet
> > 
> >  Differential Revision: https://phab.enlightenment.org/D3894
> > 
> >  Signed-off-by: Cedric BAIL 
> > 
> > >>>
> > >>> Is this to be considered stable? Or still a beta feature?
> > >>
> > >> The rendering is still beta in the sense that if it is not displaying
> > >> a SVG file properly it is considered a bug and the code will be
> > >> adjusted accordingly. Which means that the SVG support in Edje is
> > >> defined and should not be considered beta in the sense that the file
> > >> format and its behavior should not change. Only fixed and extended
> > >> (There is no implementation of scale support at this stage which is
> > >> really mandatory to be really useful to design UI element with it).
> > >> --
> > >> Cedric BAIL
> > >>
> > >>
> > --
> > >> What NetFlow Analyzer can do for you? Monitors network bandwidth and
> > traffic
> > >> patterns at an interface-level. Reveals which users, apps, and
> > protocols are
> > >> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> > >> J-Flow, sFlow and other flows. Make informed decisions using capacity
> > >> planning reports.
> > https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> > >> ___
> > >> enlightenment-devel mailing list
> > >> enlightenment-devel@lists.sourceforge.net
> > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> > >>
> > --
> > >> What NetFlow Analyzer can do for you? Monitors network bandwidth and
> > traffic
> > >> patterns at an interface-level. Reveals which users, apps, and
> > protocols are
> > >> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> > >> J-Flow, sFlow and other flows. Make informed decisions using capacity
> > >> planning reports.
> > 

Re: [E-devel] Build issue following the merge of generic modules

2016-06-13 Thread The Rasterman
On Thu, 9 Jun 2016 10:25:22 +0900 Jean-Philippe André  said:

> On 9 June 2016 at 00:26, Felipe Magno de Almeida  > wrote:
> 
> > On Wed, Jun 8, 2016 at 7:22 AM, Carsten Haitzler 
> > wrote:
> > > On Sun, 5 Jun 2016 10:46:18 +0100 Tom Hacohen 
> > said:
> > >
> > >> Hey,
> > >>
> > >> I'm getting:
> > >>
> > >> /usr/bin/ld: cannot find -lomp
> > >> clang-3.8: error: linker command failed with exit code 1 (use -v to see
> > >> invocation)
> > >> Makefile:25569: recipe for target
> > >> 'generic/evas/raw/evas_image_loader.raw' failed
> > >>
> > >> I guess I didn't see it before, because before raw was disabled by
> > default.
> > >
> > > odd. i'm on arch too - and my raw loader is built and installed and i
> > have no
> > > libomp on the system at all. no openomp at all. :/ ?
> >
> > For GCC it works for me on arch, but clang fails with -lomp linking error.
> >
> >
> Yes, see the other thread about OpenMP.
> $ pacman -S openmp

hmm i wonder why it wants openmp... gcc is happy without.


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


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 06/06: edje: unamed part are completely legit as long as no program try to interact with them.

2016-06-13 Thread The Rasterman
On Thu, 9 Jun 2016 08:29:51 -0700 Cedric BAIL  said:

> On Jun 9, 2016 5:02 AM, "Viacheslav Reutskiy" 
> wrote:
> >
> > Hello,
> >
> > Cedric, you broke the edje_edit. Edje_edit cann't work with unnamed parts.
> 
> Ah, dang ! Problem is that this was legit in the past and application are
> using it (which is why I removed it).it also means that edje edit is not
> robust on valid older input.Would it be possible to patch edje edit, so
> that on open, it patches the edj and generate name as needed ? This way old
> flee could be opened by edje edit property.

this is probably best - just refuse to edit data without names per part. we
have to keep allowing non-names on parts as it was valid before.

> Cedric
> 
> > Please revert this patch.
> >
> >
> > On 06/09/16 01:07, Cedric BAIL wrote:
> > > cedric pushed a commit to branch master.
> > >
> > >
> http://git.enlightenment.org/core/efl.git/commit/?id=088043e77af158941d9240a14f3463387f8eabfb
> > >
> > > commit 088043e77af158941d9240a14f3463387f8eabfb
> > > Author: Cedric BAIL 
> > > Date:   Wed Jun 8 15:00:30 2016 -0700
> > >
> > >  edje: unamed part are completely legit as long as no program try
> to interact with them.
> > > ---
> > >   src/bin/edje/edje_cc_handlers.c | 3 +--
> > >   1 file changed, 1 insertion(+), 2 deletions(-)
> > >
> > > diff --git a/src/bin/edje/edje_cc_handlers.c
> b/src/bin/edje/edje_cc_handlers.c
> > > index 0435713..0bbdb13 100644
> > > --- a/src/bin/edje/edje_cc_handlers.c
> > > +++ b/src/bin/edje/edje_cc_handlers.c
> > > @@ -15079,9 +15079,8 @@ edje_cc_handlers_hierarchy_pop(void)
> > >
> > >   if (!current_part->name)
> > > {
> > > - ERR("Parse error near %s:%i. Unnamed part exists in Group
> \"%s\" - Pausing for a bit so you notice and remember to fix this.",
> > > + WRN("Parse error near %s:%i. Unnamed part exists in Group
> \"%s\".",
> > >file_in, line - 1, current_de->entry);
> > > - sleep(10);
> > > }
> > >
> > >   for (i = 0; i < current_part->other.desc_count; i++)
> > >
> >
> > --
> > Viacheslav Reutskiy (rimmed)
> >
> >
> --
> > What NetFlow Analyzer can do for you? Monitors network bandwidth and
> traffic
> > patterns at an interface-level. Reveals which users, apps, and protocols
> are
> > consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> > J-Flow, sFlow and other flows. Make informed decisions using capacity
> > planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> > ___
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >
> --
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are 
> consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
> J-Flow, sFlow and other flows. Make informed decisions using capacity 
> planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> ___
> 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


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Fwd: Eldbus & thread safe

2016-06-13 Thread The Rasterman
On Fri, 10 Jun 2016 10:51:56 +0900 Kim Shinwoo  said:

standard answer for efl:

"efl is not threadsafe. use the few thread specific api's we have like
ecore_main_loop_begin/end , the sync/async call etc. etc.". :)


> Very thank you for response.
> I got crash issue from developer.
> They are using the eldbus on thread to get property changed event using
> following eldbus APIs.
> 
> eldbus_connection_get,
> eldbus_object_get,
> eldbus_proxy_get,
> eldbus_proxy_properties_monitor,
> eldbus_proxy_event_callback_add
> 
> That is it.
> There is nothing speciall purpose to use eldbus.
> It seems that it is common usage.
> 
> We suggested to use ecore_main_loop_begin, end
> At both before, and after line using eldbua on thread.
> 
> Is this proper way to solve this thread kind of issue?
> 2016. 6. 10. 오전 12:27에 "Cedric BAIL" 님이 작성:
> 
> > On Jun 9, 2016 3:57 AM, "Kim Shinwoo"  wrote:
> > >
> > > https://dbus.freedesktop.org/doc/api/html/group__DBusThreads.html
> > >
> > > It seems  that dbus is unsafe before handling dbus with dbus thread.
> > >
> > > If we  are not using this then.. clearly it is thread unsafe.
> > >
> > > Am I right?
> >
> > Yes.eldbus is not thread safe. May I ask what is your use of it that would
> > require it ? Dbus is very asynchronous by nature and very light in
> > communication, so it is very uncommon to need a thread to handle it.
> >
> > Cedric
> >
> > > 2016. 6. 9. 오후 7:44에 "Kim Shinwoo" 님이 작성:
> > >
> > > > Sorry for short Q writting on the road using phone. :/
> > > > If it is not thread safe, do I have to use some ways such as.. ecore
> > > > thread?
> > > >
> > > > Anyone knows thread safety of Dbus?
> > > > -- 전달된 메일 --
> > > > 보낸사람: "Kim Shinwoo" 
> > > > 날짜: 2016. 6. 9. 오후 7:34
> > > > 제목: Eldbus & thread safe
> > > > 받는사람: "Enlightenment developer list" <
> > > > enlightenment-devel@lists.sourceforge.net>
> > > > 참조:
> > > >
> > > > Hello all.
> > > >>
> > > >> The eldbus is thread safe?
> > > >>
> > > >> Sincerely,
> > > >> Shinwoo Kim
> > > >>
> > > >
> > >
> >
> > --
> > > What NetFlow Analyzer can do for you? Monitors network bandwidth and
> > traffic
> > > patterns at an interface-level. Reveals which users, apps, and protocols
> > are
> > > consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> > > J-Flow, sFlow and other flows. Make informed decisions using capacity
> > > planning reports.
> > https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> > > ___
> > > enlightenment-devel mailing list
> > > enlightenment-devel@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >
> > --
> > What NetFlow Analyzer can do for you? Monitors network bandwidth and
> > traffic
> > patterns at an interface-level. Reveals which users, apps, and protocols
> > are
> > consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> > J-Flow, sFlow and other flows. Make informed decisions using capacity
> > planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> > ___
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >
> --
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are 
> consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
> J-Flow, sFlow and other flows. Make informed decisions using capacity 
> planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> ___
> 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


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net

[EGIT] [core/efl] master 01/02: ecore-con - dont complain about socket setup issues when api handles it

2016-06-13 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 865b10d739eab91ea0a87731aaf998ce788924f5
Author: Carsten Haitzler (Rasterman) 
Date:   Mon Jun 13 17:31:51 2016 +0900

ecore-con - dont complain about socket setup issues when api handles it

ecore-con api returns failure cases and ecore-con shouldt go spamming
stderr with this as it's inteded to be handled at the api level, so
slience!
---
 src/lib/ecore_con/ecore_con.c | 6 +++---
 src/lib/ecore_con/ecore_con_local.c   | 6 +++---
 src/lib/ecore_con/ecore_con_local_win32.c | 2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c
index 7faf36d..29fe731 100644
--- a/src/lib/ecore_con/ecore_con.c
+++ b/src/lib/ecore_con/ecore_con.c
@@ -1966,7 +1966,7 @@ svr_try_connect_plain(Ecore_Con_Server *obj)
  {
 /* we lost our server! */
 ecore_con_event_server_error(obj, strerror(so_err));
-ERR("Connection lost: %s", strerror(so_err));
+DBG("Connection lost: %s", strerror(so_err));
 _ecore_con_server_kill(obj);
 return ECORE_CON_DISCONNECTED;
  }
@@ -2223,7 +2223,7 @@ _ecore_con_cl_handler(void *data,
 #endif
 if (ecore_con_ssl_server_init(obj))
   {
- ERR("ssl handshaking failed!");
+ DBG("ssl handshaking failed!");
  svr->handshaking = EINA_FALSE;
   }
 else if (!svr->ssl_state)
@@ -2418,7 +2418,7 @@ _ecore_con_svr_cl_handler(void *data,
  {
 if (ecore_con_ssl_client_init(obj))
   {
- ERR("ssl handshaking failed!");
+ DBG("ssl handshaking failed!");
  _ecore_con_client_kill(obj);
  return ECORE_CALLBACK_RENEW;
   }
diff --git a/src/lib/ecore_con/ecore_con_local.c 
b/src/lib/ecore_con/ecore_con_local.c
index 246b133..6d3e2a5 100644
--- a/src/lib/ecore_con/ecore_con_local.c
+++ b/src/lib/ecore_con/ecore_con_local.c
@@ -379,18 +379,18 @@ start:
 
if (bind(svr->fd, (struct sockaddr *)_unix, socket_unix_len) < 0)
  {
-ERR("Local socket '%s' bind failed: %s", buf, strerror(errno));
+DBG("Local socket '%s' bind failed: %s", buf, strerror(errno));
 if svr->type & ECORE_CON_TYPE) == ECORE_CON_LOCAL_USER) ||
  ((svr->type & ECORE_CON_TYPE) == ECORE_CON_LOCAL_SYSTEM)) &&
 (connect(svr->fd, (struct sockaddr *)_unix,
  socket_unix_len) < 0))
   {
- ERR("Local socket '%s' connect test failed: %s", buf, 
strerror(errno));
+ DBG("Local socket '%s' connect test failed: %s", buf, 
strerror(errno));
  if (unlink(buf) >= 0)
goto start;
  else
{
-  ERR("Local socket '%s' removal failed: %s", buf, 
strerror(errno));
+  DBG("Local socket '%s' removal failed: %s", buf, 
strerror(errno));
   goto error_fd;
}
   }
diff --git a/src/lib/ecore_con/ecore_con_local_win32.c 
b/src/lib/ecore_con/ecore_con_local_win32.c
index 14bf8b2..1a1e145 100644
--- a/src/lib/ecore_con/ecore_con_local_win32.c
+++ b/src/lib/ecore_con/ecore_con_local_win32.c
@@ -432,7 +432,7 @@ ecore_con_local_listen(Ecore_Con_Server *obj)
NULL);
if (svr->pipe == INVALID_HANDLE_VALUE)
  {
-ERR("Creation of the named pipe '%s' failed", svr->path);
+DBG("Creation of the named pipe '%s' failed", svr->path);
 goto free_path;
  }
 

-- 




Re: [E-devel] Problem with elemines

2016-06-13 Thread The Rasterman
On Thu, 9 Jun 2016 16:53:03 -0700 Tim Bird  said:

> Hi EFL devs...
> 
> I am a newbie to EFL development.  I'm trying to write a little test
> program for EFL, and wanted to test out elemines as an example of some of
> the techniques.
> However, I ran into some problems.
> 
> I am running EFL 17 on Ubuntu 14.04.  I cloned elemines from
> https://git.enlightenment.org/games/elemines.git
> and was able to get it built.
> 
> 1) - path to libetrophy error
> When I try to run it, I got the following error message:
> elemines: error while loading shared libraries: libetrophy.so.0: cannot
> open shared object file: No such file or directory
> 
> During the build, I figured out I needed etrophy, and built and installed
> the shared
> library for that.  They etrophy libraries ended up in /usr/local/lib
> 
> I can work around this using 'export LD_LIBRARY_PATH=/usr/local/lib',
> before running elemines.
> 
> 2) missing some elementary config
> When I run elemines (with the right library path), I get a warning from the
> program:
> 
> ERR<27210>:eio lib/eio/eio_monitor.c:339 eio_monitor_stringshared_add()
> monitored path '/home/CORPUSERS/10102229/.elementary/config/standard' not
> found.

well home/CORPUSERS/10102229 is either your $HOME or if that isnt set/found
then getpwent is finding it from the passwd database... it's looking for your
elm config there...

> I don't have the enlightenment window manager installed (to my knowledge).
> I'm not sure what is being looked for here,

has nothing to do with e the wm. it's elm's config directory in your home dir.
depending on compilation options elm will either use ~/.elementary or
~/.config/elementary ... (the first is default since toolkits have used
~/.toolkitname stuff for a long long time).

you have an interesting home directory i have to say... mr. corpuser #
10102229. :)

so all that will not work here is that it wont pick up new config changes as you
have no existing config for your user... until you do have it. elm's config
loader literally mkpath'd that dir tho on startup (in _elm_config_sub_init())
so it should have been there even if empty ... have you somehow forbidden your
elm apps from writing to there? making that dir path?

there is just one place where we add a monitor for that dir were the dir isn't
mkpath'd before .. but that should be long after the above init func so it
should be created. i'll add another mkpath there... but maybe the issue is
permissioning?

> but the warning is a bit disconcerting.  I can make the warning go away by
> creating the directory
> ~/.elementary/config/standard, but I'm worried that something is supposed
> to be there that's not.

well it's wanting to monitor that for changes in case you bring up the
elementary_config tool (yes - it's rough and needs work) and change config -
all apps monitor your config files for changes and re-load/update if changes
happen.

> 3) Segmentation fault
> This is the most serious problem.  elemines gets a segmentation fault when
> I do the first mouse click in the
> game grid.
> 
> I debugged the program a bit and found that there's a sscanf on a string
> used to map the mouse click to
> the game grid.  Here's the sscanf:
>   sscanf(source, "board[%i,%i]:overlay", , );
> 
> but here's the value of the 'source' string used with it:
>   board[item_0x7fff8daa2c60{7,2}]:overlay

well that scanf wont work with that string... but how can that scanf crash. it
must be somewhere else...

> this is in the routine _click() in src/game.c
> Note that there's no error handling for the sscanf.  However, the string
> clearly is not what's expected.
> 
> In another part of the program, there's this line, which seems to specify
> the string for the
> mouse click grid mapping.
> 
> edje_object_signal_callback_add(edje, "mouse,clicked,*",
> "board\\[*\\]:overlay", _click, NULL);
> 
> It appears that elemines expects the coordinates from the specified string
> inside the
> brackets (I'm guessing that's what the * is for in the string.  However, I
> don't know
> where this 'item_0x7fff8daa2c60{..}' is coming from.

i assume this is some issue inside elemines the app in how its handling board
data - writing it or parsing it. but how does it crash? jerome is the author so
he's the place to go there (i'd dig but i have enough to do atm. :)).

> Is there something from edje that's missing, to have the mouse click string
> come out properly?

nope.

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


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. 

[EGIT] [core/efl] master 02/02: elm - add another mkpath before monitoring a dir to enusre things work

2016-06-13 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit dffaed3486d988522076fb8faf9c47202bc124ab
Author: Carsten Haitzler (Rasterman) 
Date:   Mon Jun 13 18:11:38 2016 +0900

elm - add another mkpath before monitoring a dir to enusre things work
---
 src/lib/elementary/elm_config.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c
index c42177d..00a4722 100644
--- a/src/lib/elementary/elm_config.c
+++ b/src/lib/elementary/elm_config.c
@@ -1630,6 +1630,7 @@ _config_user_load(void)
 
_elm_config_user_dir_snprintf(buf, sizeof(buf), "config/%s",
   _elm_profile);
+   ecore_file_mkpath(buf);
if (_eio_config_monitor) eio_monitor_del(_eio_config_monitor);
_eio_config_monitor = eio_monitor_add(buf);
 

-- 




[E-devel] Weekly news from the automated build and QA front

2016-06-13 Thread Stefan Schmidt
Hello.

Summary:
o The stats coming from Jenkins are almost the same as last week as we 
have build issues which are blocking any updates here.
o The Elementary.elm_fileselector_selected test case fails with signal 9
o The Eio.eio_test_job_xattr_set fails with signal 11


This should give everyone an overview over what has happened in the last
week on the QA front. The numbers in parentheses reflect the values from
last week to give you a trend.

CI:
o Overall build statistic: 11.54% (10.77%) failed.
https://build.enlightenment.org/

Unit tests:
o 830 (773) unit tests for efl

Coverage:
o EFL total coverage is at 27.3% (27.3%) lines, 32.7% (32.7%) functions 
and 21.5% (21.5%) branches
https://build.enlightenment.org/view/Test%20Coverage/

Coverity:
o EFL: Outstanding defects 132 (132) with a density of 0.13 (0.13)
o Enlightenment: Outstanding defects 0 (0) with a density of 0 (0)
o Terminology: Outstanding defects 2 (2) with a density of 0.02 (0.02)
o Rage: Outstanding defects 0 (0) with a density of 0 (0)

Phab:
o Total bug count: 938 (912)
https://phab.enlightenment.org/maniphest/report/burn/
o Pending patch reviews: 120 (126)

regards
Stefan Schmidt

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Struct passed by value

2016-06-13 Thread The Rasterman
On Fri, 10 Jun 2016 11:10:47 +0900 Jean-Philippe André  said:

my take on it is that passing by value is:

1. odd (its rarely if ever seen in api's - look at libc, xlib, libjpeg, libpng,
libgif, libgif, glib, gtk+, ...) at least in c land
2. passing by value causes you to have to use c99 constructs and/or gnu
extensions like you show:
  rect_set(obj, (Eina_Rectangle){.w = 13, .h = 37});
vs
  rect_set(obj, 13, 37);
3. which one do you prefer to write and read? :) or to not use c99:
  Eina_Rectangle rect = { 13, 37 };
  rect_set(obj, rect);
vs
  rect_set(obj, 13, 37);


remember we only need c99 to COMPILE efl. we don't require it of the code USING
efl. :)
4. if passed by value it may not be able to use registers and instead may copy
to memory (stack) and use a register with a ptr. this can lead to lower
performance depending on architecture )though not really a big issue for us
considering the cost of eo api anyway). also note that chances are passing:
   int x, int y, int w, int h
will likely be assigned to 4 registers with the variables nicely already in a
register (if the architecture has enough registers of course) but if passing a
struct by value... let's pretend a 64bit system with 64bit registers it may put
x and y in 1 register and w and h in another and thus accessing these values
as they have been "memcpy'd" into a series of registers requires copying out
bitshifting and masking. it likely will cost more. in fact let's do some asm
fun:

   func1(x, y, w, h);

vs

   func2(r);


where r is:

   struct rect
   {
  int x, y, w, h;
   };
   struct rect r;

so func1 is:

movl-16(%rbp), %ecx
movl-12(%rbp), %edx
movl-8(%rbp), %esi
movl-4(%rbp), %eax
movl%eax, %edi
callfunc1

and func2:

movq-32(%rbp), %rdx
movq-24(%rbp), %rax
movq%rdx, %rdi
movq%rax, %rsi
callfunc2

yup. it's moving a whole set of 64bits at a time into 2 registers vs each value
per register. so i'm right. yes. call by value here is shorter as it drops 2
mov's into registers but it seems to gain and extra movq there. ok let's look
at the funcs themselves

=
func1:
.LC0:
.string "GOT1  %i %i %i %i\n"
.text
.globl  func1
.type   func1, @function
func1:
.LFB2:
.cfi_startproc
pushq   %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq%rsp, %rbp
.cfi_def_cfa_register 6
subq$16, %rsp
movl%edi, -4(%rbp)
movl%esi, -8(%rbp)
movl%edx, -12(%rbp)
movl%ecx, -16(%rbp)
movl-16(%rbp), %esi
movl-12(%rbp), %ecx
movl-8(%rbp), %edx
movl-4(%rbp), %eax
movl%esi, %r8d
movl%eax, %esi
movl$.LC0, %edi
movl$0, %eax
callprintf
nop
leave
.cfi_def_cfa 7, 8
ret


=
func2:

.LC1:
.string "GOT2  %i %i %i %i\n"
.text
.globl  func2
.type   func2, @function
func2:
.LFB3:
.cfi_startproc
pushq   %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq%rsp, %rbp
.cfi_def_cfa_register 6
subq$16, %rsp
movq%rdi, %rax
movq%rsi, %rcx
movq%rcx, %rdx
movq%rax, -16(%rbp)
movq%rdx, -8(%rbp)
movl-4(%rbp), %esi
movl-8(%rbp), %ecx
movl-12(%rbp), %edx
movl-16(%rbp), %eax
movl%esi, %r8d
movl%eax, %esi
movl$.LC1, %edi
movl$0, %eax
callprintf
nop
leave
.cfi_def_cfa 7, 8
ret


so func2 is longer by 1 instruction now. lose 1, gain 1. i am not sure how
x86-64 works vs x86-32 but i think eax, edi, esi etc. are mapped to lower
32bits of  the rax, rdi, rsi, etc. registers by reading that code, thus it can
access the lower 32 bits easily.

anyway... point is - it doesn't save code or instructions for the cases we're
talking about, but for more complex structs it may become worse i imagine as
the struct is packed into 2 64bit registers entirely (memcpy'd in basically).
different architectures will work differently of course.

5. it kind of gets tricky if we have * values (pointers) in the struct so we
should if ever doing this stick to simple basic structs that are small and
contain a simple set of ints, shorts, chars etc. (colors, rects, positions,
sizes all do fall in this category though).

so i think in the end it's an issue of what the code would look like in general
and the writing of it.

i think while this simplifies some code, it makes other code worse and just as
its not a common thing to see in C ... then best not do it. just from that
perspective.


> Hi,
> 
> 
> This is bu5hman's idea mostly, but I'd like to bring the question to the
> attention of everyone, as I 

Re: [E-devel] [EGIT] [core/efl] master 06/06: edje: unamed part are completely legit as long as no program try to interact with them.

2016-06-13 Thread Simon Lees


On 06/13/2016 03:18 PM, Viacheslav Reutskiy wrote:
> Hello,
> 
> Sorry for delay.
> 
> On 06/09/16 18:29, Cedric BAIL wrote:
>> On Jun 9, 2016 5:02 AM, "Viacheslav Reutskiy" 
>> wrote:
>>> Hello,
>>>
>>> Cedric, you broke the edje_edit. Edje_edit cann't work with unnamed parts.
>> Ah, dang ! Problem is that this was legit in the past and application are
>> using it (which is why I removed it).it also means that edje edit is not
>> robust on valid older input.Would it be possible to patch edje edit, so
>> that on open, it patches the edj and generate name as needed ? This way old
>> flee could be opened by edje edit property.
>>
>> Cedric
> 
> I can set generated name for unnamed parts, but it's wrong. As you said me:
> "It's broke ABI".
> Maybe pospone this changes to EFL 2.0? For EFL 2.0 we can rework the Edje 
> Edit to
> manage all items (parts, programs, items etc) by index for solve all issues.
> 
Unfortunately not allowing unnamed parts is a break of theme API meaning
it also can't be done till EFL 2.0.

> ---
> Viacheslav Reutskiy (rimmed)
> 
>>> Please revert this patch.
>>>
>>>
>>> On 06/09/16 01:07, Cedric BAIL wrote:
 cedric pushed a commit to branch master.


>> http://git.enlightenment.org/core/efl.git/commit/?id=088043e77af158941d9240a14f3463387f8eabfb
 commit 088043e77af158941d9240a14f3463387f8eabfb
 Author: Cedric BAIL 
 Date:   Wed Jun 8 15:00:30 2016 -0700

   edje: unamed part are completely legit as long as no program try
>> to interact with them.
 ---
src/bin/edje/edje_cc_handlers.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

 diff --git a/src/bin/edje/edje_cc_handlers.c
>> b/src/bin/edje/edje_cc_handlers.c
 index 0435713..0bbdb13 100644
 --- a/src/bin/edje/edje_cc_handlers.c
 +++ b/src/bin/edje/edje_cc_handlers.c
 @@ -15079,9 +15079,8 @@ edje_cc_handlers_hierarchy_pop(void)

if (!current_part->name)
  {
 - ERR("Parse error near %s:%i. Unnamed part exists in Group
>> \"%s\" - Pausing for a bit so you notice and remember to fix this.",
 + WRN("Parse error near %s:%i. Unnamed part exists in Group
>> \"%s\".",
 file_in, line - 1, current_de->entry);
 - sleep(10);
  }

for (i = 0; i < current_part->other.desc_count; i++)

>>> --
>>> Viacheslav Reutskiy (rimmed)
>>>
>>>
>> --
>>> What NetFlow Analyzer can do for you? Monitors network bandwidth and
>> traffic
>>> patterns at an interface-level. Reveals which users, apps, and protocols
>> are
>>> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
>>> J-Flow, sFlow and other flows. Make informed decisions using capacity
>>> planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
>>> ___
>>> enlightenment-devel mailing list
>>> enlightenment-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>>
>> --
>> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
>> patterns at an interface-level. Reveals which users, apps, and protocols are
>> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
>> J-Flow, sFlow and other flows. Make informed decisions using capacity
>> planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 

-- 

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
--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] enlightenment.org is DOWN

2016-06-13 Thread The Rasterman
On Fri, 10 Jun 2016 20:24:19 +0200 Jonathan Aquilina 
said:

> If there is build servers used heavily for builds I am more then willing
> to host the site no problem.  Beber gave me a project I hope to try and
> figure out with the planet this weekend other then that I cant
> investigate further this issue of the server that is crashing. 
> 
> @Beber not sure if you can give me access to the server in question or
> even Raster as I have a hunch that somehow either a hardware fault or
> out of memory issue that the web server is running into I would need to
> see the logs.

i don't know if this was the issue this time but the general issue where i end
up rebooting the vm host every now and again is this:

systems run for some time. the GUEST vm's at some point grind to a halt. not
quite a halt but it seems like any i/o causes some timeout. like "ls" on the
cmdline in a guest can take between 30 to 150 seconds. it doesn't spin using
cpu. it just hangs. it's like a timeout of some sore, then finally it works.
the system is not overloaded. the host machine is pretty much idle. as are the
vm's. you run top in one shell-in and do the ls in another - nothing is loaded
either there. it's as if i/o is doing something like logging and a dns lookup
or a connect is timing out.

now i have tried simply shutting down the vm in question and starting it again
- it stays "bad". i've shut down all vm's and started them again (it takes
forever thanks to the i/.o timeout issue) and nothing is fixed. the only thing
that fixes it is a reboot of the host os that brings all vm's down, reboots
the host os then starts them up and all is fine again... until the next time
this happens. i have rummaged around logs on the host and guests. i have looked
at every dmesg and more and i couldn't find anything telling me what was going
on. maybe i missed something but i only have so much time to spend on these
things before the simple "reboot the sucker" option needs to be used and we
have work to get on with.

it's not because of a build server overload - nothing is overloaded. fyi the
HOST os works just fine. no langs. i/o works perfectly. i just don't know what
it is. :(

> On 2016-06-10 18:45, Cedric BAIL wrote:
> 
> > On Fri, Jun 10, 2016 at 8:26 AM, Jonathan Aquilina
> >  wrote: 
> > 
> >> Where is this being hosted currently? If you guys want I can host a
> >> backup site on my server. Only thing I would not be able to host are the
> >> large amount of download tarballs etc.
> > 
> > I don't think it is an hosting issue at this point. We do already have
> > 3 operationals servers as I know. One master in the US (the biggest
> > one doing the build), two in france (One able to run test on GPU and
> > the other being a dev server). The current problem is I think one that
> > has been lurking around for some time. Once in a while the server goes
> > overloaded and we haven't had the opportunity to investigate what is
> > going on. Raster usually just reboot the server and that solve this. I
> > have asked Beber to look at it so that we can fix the problem instead
> > of requiring a reboot every n months.
> > 
> > Cedric
> > 
> > On 2016-06-10 16:00, Amitesh Singh wrote:
> > 
> > Hello Guys,
> > 
> > It seems like all web stuffs of e.org are down. Also git clone/pull/push is
> > super slow.
> > 
> > please check.
> > 
> > Regards 
> > --
> > What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> > patterns at an interface-level. Reveals which users, apps, and protocols are
> > consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> > J-Flow, sFlow and other flows. Make informed decisions using capacity
> > planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> > ___
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 
>  
> --
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are 
> consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
> J-Flow, sFlow and other flows. Make informed decisions using capacity 
> planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> ___
> 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


--
What NetFlow 

Re: [E-devel] RFC: New text filter API

2016-06-13 Thread Tom Hacohen
On 09/06/16 23:06, Felipe Magno de Almeida wrote:
> On Thu, Jun 9, 2016 at 12:23 PM, Cedric BAIL  wrote:
>> On Jun 9, 2016 03:14, "Tom Hacohen"  wrote:
>
> [snip]
>
>>> If rejected is set, the chunk is rejected no matter what the strbuf
>>> value is.
>
> [snip]
>
>> My main concern is actually what happen if there is more than one event
>> handler registered. I think it become pretty complex to chain them with all
>> this parameter. What if you just pass the text embedded in the strbuf
>> already and you just look at it for all behavior at the end ?
>
> Kolesa and I have argued that this will be prohibited and that
> no aliasing will be considered. So for example, JS will copy the
> boolean value and when the boolean is modified it will not
> impact the original struct of the event.
>
> This is the only sane thing to do and to avoid random crashes
> in languages that are suppose to be safe from UB.
>
> IMO. Just use an override function for this.

That makes sense, I guess.

It seems like I'll have to do something similar to what jpeg did with 
input events and pass an object for text filtering. I'll do this unless 
I hear objections (second try!). :)

>
>> Cedric
>>
>>> This is what I'm going to go with unless I hear any strong objections by
>>> Monday.
>
> I strongly object to it.

It's only you between me and my happiness! I strongly agree with you 
though. That's why I asked, I knew it didn't feel right.

--
Tom.

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] RFC: New text filter API

2016-06-13 Thread Tom Hacohen
On 09/06/16 16:23, Cedric BAIL wrote:
> On Jun 9, 2016 03:14, "Tom Hacohen"  wrote:
>> As part of reworking the text API for the next version I'm tackling the
>> text filter API. It needs to be easy to bind, easy to use and efficient.
>> I have an idea in mind, and I want to hear some feedback from people
>> who've used text filtering to know if there's something I may be
>> missing/can do better.
>>
>> What I have in mind:
>>
>> Add a text filter event with Text_Filter_Info (keeping the name short
>> for this example) as the event info.
>>
>> Text_Filter_Info looks as follows (names will change, just for the
> example):
>> orig: const char *
>>  new: Eina_Strbuf *
>>  rejected: bool
>>
>> The event is called with orig=original text, new=null, rejected=false.
>> The event callbacks can then decide to reject the text chunk (by setting
>> rejected = true), or modify the original text by creating a new strbuf
>> and setting new to it.
>> If rejected is set, the chunk is rejected no matter what the strbuf
>> value is.
>> I chose a strbuf because it's more efficient and easier to augment the
>> text with a strbuf (most likely) than with a normal allocated string.
>> However, a case could be made for a normal allocated string because in
>> almost (all?) cases, the string will not grow.
>
> My main concern is actually what happen if there is more than one event
> handler registered. I think it become pretty complex to chain them with all
> this parameter. What if you just pass the text embedded in the strbuf
> already and you just look at it for all behavior at the end ?

I disagree. This is irrelevant though because of what Felipe said. I'll 
reply to his email now.

--
Tom.


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: evas-native-tbm: fix stride mismatch and allocate image data for converting from yuv to rgb.

2016-06-13 Thread Minkyoung Kim
jpeg pushed a commit to branch master.

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

commit 93b4df1f5a506492bb322a9761b5379f5f9cf6ad
Author: Minkyoung Kim 
Date:   Mon Jun 13 15:24:14 2016 +0900

evas-native-tbm: fix stride mismatch and allocate image data for converting 
from yuv to rgb.

Summary:
1. For converting tbm buffer from yuv to rgb, image.data should be 
allocated.
2. Stride should be set by info of tbm surface.
3. The number of row is height*2. but if height is odd, last row is invalid 
in process of _evas_video_i420.

Test Plan: Local Test, Tizen2.4 Mobile

Reviewers: spacegrapher, wonsik, jpeg

Subscribers: cedric, dkdk

Differential Revision: https://phab.enlightenment.org/D3870
---
 .../engines/software_generic/evas_native_common.h  |  2 +
 .../engines/software_generic/evas_native_tbm.c | 45 +-
 .../evas/engines/software_x11/evas_engine.c| 16 ++--
 src/modules/evas/engines/wayland_shm/evas_engine.c | 16 ++--
 4 files changed, 63 insertions(+), 16 deletions(-)

diff --git a/src/modules/evas/engines/software_generic/evas_native_common.h 
b/src/modules/evas/engines/software_generic/evas_native_common.h
index 7bcc5ea..a13b7a0 100644
--- a/src/modules/evas/engines/software_generic/evas_native_common.h
+++ b/src/modules/evas/engines/software_generic/evas_native_common.h
@@ -107,11 +107,13 @@ struct _Native
 };
 
 EAPI void *_evas_native_tbm_surface_image_set(void *data, void *image, void 
*native);
+EAPI int _evas_native_tbm_surface_stride_get(void *data, void *native);
 EAPI int _evas_native_tbm_init(void);
 EAPI void _evas_native_tbm_shutdown(void);
 
 void *_evas_native_dmabuf_surface_image_set(void *image, void *native);
 
 typedef void *(*Evas_Native_Tbm_Surface_Image_Set_Call)(void *data, void 
*image, void *native);
+typedef int (*Evas_Native_Tbm_Surface_Stride_Get_Call)(void *data, void 
*native);
 
 #endif //_EVAS_NATIVE_COMMON_H
diff --git a/src/modules/evas/engines/software_generic/evas_native_tbm.c 
b/src/modules/evas/engines/software_generic/evas_native_tbm.c
index 752d750..af6a1ab 100644
--- a/src/modules/evas/engines/software_generic/evas_native_tbm.c
+++ b/src/modules/evas/engines/software_generic/evas_native_tbm.c
@@ -66,6 +66,7 @@ typedef struct _tbm_surface_info
 /* returns 0 on success */
 static int (*sym_tbm_surface_map) (tbm_surface_h surface, int opt, 
tbm_surface_info_s *info) = NULL;
 static int (*sym_tbm_surface_unmap) (tbm_surface_h surface) = NULL;
+static int (*sym_tbm_surface_get_info) (tbm_surface_h surface, 
tbm_surface_info_s *info) = NULL;
 
 EAPI int
 _evas_native_tbm_init(void)
@@ -100,6 +101,7 @@ _evas_native_tbm_init(void)
  fail = 0;
  SYM(tbm_lib, tbm_surface_map);
  SYM(tbm_lib, tbm_surface_unmap);
+ SYM(tbm_lib, tbm_surface_get_info);
  if (fail)
{
   dlclose(tbm_lib);
@@ -171,18 +173,18 @@ _evas_video_i420(unsigned char *evas_data, const unsigned 
char *source_data, uns
 
rows = (const unsigned char **)evas_data;
 
-   stride_y = EVAS_ROUND_UP_4(w);
-   stride_uv = EVAS_ROUND_UP_8(w) / 2;
+   stride_y = w;
+   stride_uv = w / 2;
 
for (i = 0; i < rh; i++)
  rows[i] = _data[i * stride_y];
 
-   for (j = 0; j < (rh / 2); j++, i++)
+   for (j = 0; j < ((rh + 1) / 2); j++, i++)
  rows[i] = _data[h * stride_y + j * stride_uv];
 
for (j = 0; j < (rh / 2); j++, i++)
  rows[i] = _data[h * stride_y +
-(rh / 2) * stride_uv +
+((rh + 1) / 2) * stride_uv +
 j * stride_uv];
 }
 
@@ -245,17 +247,40 @@ _native_free_cb(void *image)
Native *n = im->native.data;
 
if (!im) return;
+
im->native.data= NULL;
im->native.func.bind   = NULL;
im->native.func.unbind = NULL;
im->native.func.free   = NULL;
-   im->image.data = NULL;
 
free(n);
 
_evas_native_tbm_shutdown();
 }
 
+EAPI int
+_evas_native_tbm_surface_stride_get(void *data EINA_UNUSED, void *native)
+{
+   Evas_Native_Surface *ns = native;
+   tbm_surface_info_s info;
+   int stride;
+
+   if (!ns)
+ return -1;
+
+   if (!_evas_native_tbm_init())
+ {
+ERR("Could not initialize TBM!");
+return -1;
+ }
+
+   if (sym_tbm_surface_get_info(ns->data.tbm.buffer, ))
+ return -1;
+
+   stride = info.planes[0].stride;
+   return stride;
+ }
+
 EAPI void *
 _evas_native_tbm_surface_image_set(void *data EINA_UNUSED, void *image, void 
*native)
 {
@@ -277,13 +302,13 @@ _evas_native_tbm_surface_image_set(void *data 
EINA_UNUSED, void *image, void *na
   return NULL;
 
 tbm_surf = ns->data.tbm.buffer;
-
+/*
 if (!_evas_native_tbm_init())
   {
  ERR("Could not initialize TBM!");
  return NULL;
   }
-
+*/
 n = calloc(1, 

[EGIT] [core/efl] master 01/01: edje cc - remove debug printf i missed. :(

2016-06-13 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 3f426ca519794843643252520f2c9b8f3bf85a30
Author: Carsten Haitzler (Rasterman) 
Date:   Mon Jun 13 15:22:11 2016 +0900

edje cc - remove debug printf i missed. :(

oops. i removed the others but not this one. yes i did git diff etc.
---
 src/bin/edje/edje_cc_out.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index 038cbc9..8239918 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -2160,7 +2160,6 @@ data_write_scripts(Eet_File *ef)
}
 #undef BIN_EXT
 
-   fprintf(stderr, " SCRIPT\n");
for (i = 0, l = codes; l; l = eina_list_next(l), i++)
  {
Code *cd = eina_list_data_get(l);

-- 




[EGIT] [core/efl] master 01/01: edje - set up eet data descriptor right with right struct and size

2016-06-13 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit a02c32f99a37a0bd17ef0005839f018e7e1fa30c
Author: Carsten Haitzler (Rasterman) 
Date:   Mon Jun 13 15:21:22 2016 +0900

edje - set up eet data descriptor right with right struct and size

this should fix T3869
---
 src/lib/edje/edje_data.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c
index d56e0cc..6fef146 100644
--- a/src/lib/edje/edje_data.c
+++ b/src/lib/edje/edje_data.c
@@ -238,6 +238,7 @@ _eet_for_style_property(void)
eet = eet_data_descriptor_stream_new();
eet_gradient = _eet_for_style_gradient();
 
+   EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(_dash, Efl_Gfx_Dash);
eet_dash = eet_data_descriptor_stream_new(_dash);
EET_DATA_DESCRIPTOR_ADD_BASIC(eet_dash, Efl_Gfx_Dash, "length", length, 
EET_T_DOUBLE);
EET_DATA_DESCRIPTOR_ADD_BASIC(eet_dash, Efl_Gfx_Dash, "gap", gap, 
EET_T_DOUBLE);

--