[E-devel] Edje animation and ecore_job

2016-09-19 Thread Viacheslav Reutskiy
Hello, everyone.

I want to ask about ecore animator, rather edje animation, and ecore_job.
I have a next flow:
  - run ecore_exe;
  - play animation by edje, load object or emit signal to, already, created 
object;
  - handle ECORE_EXE_EVENT_DATA event.

In this case edje animation work properly, but if I add any ecore_job's in 
callback
for ECORE_EXE_EVENT_DATA, those jobs are run at the first onset. While jobs is 
small
and their little all ok, edje play animation well done. But if I have a lot of 
jobs,
1000 and more animation is freezed, while jobs is not finished.

Why it happen? Because, all jobs run after add. This can be clearly seen on 
screenshort
from evlog (link 
).

So my question: is it normal behavior or jobs should to mix with render?

-- 
Viacheslav Reutskiy (rimmed)

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


[EGIT] [core/efl] master 02/02: edje_edit: add null checking

2016-09-19 Thread Jaehwan Kim
jaehwan pushed a commit to branch master.

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

commit 3efdd5df54b3fb26b5aaaf7252865d748411188f
Author: Jaehwan Kim 
Date:   Tue Sep 20 13:46:29 2016 +0900

edje_edit: add null checking
---
 src/lib/edje/edje_edit.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index edbe5cd..f3381fa 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -2905,6 +2905,7 @@ edje_edit_external_add(Evas_Object *obj, const char 
*external)
 
if (!ed->file->external_dir)
  ed->file->external_dir = _alloc(sizeof(Edje_External_Directory));
+   if (!ed->file->external_dir) return EINA_FALSE;
 
for (i = 0; i < ed->file->external_dir->entries_count; ++i)
  if (!ed->file->external_dir->entries[i].entry)
@@ -12555,6 +12556,7 @@ edje_edit_source_generate(Evas_Object *obj)
   {
  es = eina_hash_find(ed->file->data, entry);
  str = edje_string_get(es);
+ if (!str) break;
  data_len = strlen(str);
  /* In case when data ends with '\n' character, this item recognize
   * as data.file. This data will not generated into the source code

-- 




[EGIT] [core/efl] master 01/02: ecore: fix the parameter of strerror

2016-09-19 Thread Jaehwan Kim
jaehwan pushed a commit to branch master.

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

commit 1bfb19b457e6b9eb63064903c853c4a4e823a857
Author: Jaehwan Kim 
Date:   Tue Sep 20 13:45:36 2016 +0900

ecore: fix the parameter of strerror
---
 src/lib/ecore/ecore_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/ecore/ecore_main.c b/src/lib/ecore/ecore_main.c
index 19c72a4..6b1ac3e 100644
--- a/src/lib/ecore/ecore_main.c
+++ b/src/lib/ecore/ecore_main.c
@@ -1591,7 +1591,7 @@ ecore_main_fd_handler_active_set(Ecore_Fd_Handler  
*fd_handler,
ret = _ecore_main_fdh_poll_modify(fd_handler);
if (ret < 0)
  {
-ERR("Failed to mod epoll fd %d: %s!", fd_handler->fd, strerror(ret));
+ERR("Failed to mod epoll fd %d: %s!", fd_handler->fd, strerror(errno));
  }
 }
 

-- 




[EGIT] [core/efl] master 01/01: elm fileselector: add null checking before strlen

2016-09-19 Thread WooHyun Jung
woohyun pushed a commit to branch master.

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

commit 241196641f9639b5f2b47c8e3f3c2d4d6034dfb6
Author: WooHyun Jung 
Date:   Tue Sep 20 13:40:37 2016 +0900

elm fileselector: add null checking before strlen
---
 src/lib/elementary/elc_fileselector.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elementary/elc_fileselector.c 
b/src/lib/elementary/elc_fileselector.c
index cc3a065..d697a50 100644
--- a/src/lib/elementary/elc_fileselector.c
+++ b/src/lib/elementary/elc_fileselector.c
@@ -1584,7 +1584,7 @@ _files_key_down(void *data, const Efl_Event *event)
   char buf[PATH_MAX];
   const char *en;
   en = elm_entry_entry_get(searchbar);
-  if (strlen(en) > 0)
+  if (en && strlen(en) > 0)
 {
memmove(buf, en, strlen(en) -1);
buf[strlen(en) -1] = '\0';

-- 




Re: [E-devel] EFL interface, what's left to be done

2016-09-19 Thread Gustavo Sverzut Barbieri
On Mon, Sep 19, 2016 at 7:33 PM, Cedric BAIL  wrote:
> On Mon, Sep 19, 2016 at 2:48 PM, Tom Hacohen  wrote:
>> We haven't agreed on merging Eo, Efl and Ecore. I'm actually pretty much
>> against it.
>
> There was a thread weeks ago. You indeed didn't take part of that
> discussion, but everyone else involved in that thread was ok. Actually
> the discussion evolved more into a what else to merge in. So their was
> an agreement before this email.
>
>> Eo is clean and hasn't been "polluted" by async, mainloop and etc. That's a
>> good thing. This makes our infrastructure easier to test.
>
> Please define "clean" as it is a bit abstract to me here. What I am
> looking for here is the minimal set of component I need to have
> something useful. Is Eo useful by itself ? With just Efl.Object ? Sure
> you could do C without the C library, but would you ?
>
> I think that your disagreement about merging is only and just because
> you do not want to make asynchronous request a core feature of EFL.
> The rest is mostly rhetoric. Could you please explain why you have so
> much resistance to it being rolled into more place in efl ?

[...]

> I don't want to just compile them together. I want to merge there
> headers. Make it just one library. Make efl.object, efl.future and
> efl.loop one core. Obviously because I want to see efl as providing a
> core asynchronous library with defined pattern. One asynchronous
> pattern is "events", which is like an UDP broadcast (default
> behavior)/multicast (with effort) solution. Efl.Future is more the
> equivalent of a TCP connection. I think providing one without the
> other is going to push for a world of broadcast solution which is not
> always the right pattern. Maybe we should remove events support from
> Eo to avoid this problem.

+1 fully agree with Cedric's rationale. Eo's purpose should be
solely to serve Efl's use cases, which means asynchronous event driven
programming.

promise/future should be first-class citizen... as well as iterator
and the likes. There is a start already, but refinement is really
needed, like returning an iterator should handle warn_unused, free,
own... Promise should have its own callback signature, simplified for
the user.

AND if possible, make eolian or a new tool to handle connections for
us, if it was easy to declare objects with composition of
events/promises, it would save us lots of typing and errors.


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

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


Re: [E-devel] Efl.Net and libproxy

2016-09-19 Thread Gustavo Sverzut Barbieri
On Mon, Sep 19, 2016 at 8:44 PM, Carsten Haitzler  wrote:
> On Mon, 19 Sep 2016 11:31:58 -0300 Gustavo Sverzut Barbieri
>  said:
>
>> Hi all,
>>
>> Today I did commit support for libproxy in ecore_con's new API,
>> Efl.Net.Dialer.Tcp, Efl.Net.Dialer.Http and Efl.Net.Dialer.Websocket
>> (implicit from HTTP).
>
> ummm i just am looking now (i have a lot of catching up to do). can you undo
> the changes to configure.ac and make this a dlopen/dlsym approach? well use
> eina_module. look a the old curl eina_module approach. look at what i did in
> ecore_audio too. in fact i need to look over all the efl net code, but you 
> want
> to use emile for ssl stuff and eina_module for curl too there too (i haven't
> looked yet). there are very good reasons to do all of this.

I've checked what you did for curl, since I use that and need more symbols.

my question and concern are just:
 - not being able to compile without libproxy. If we always detect,
should we remove --enable-libproxy from configure.ac?

 - I ask the above because libproxy is a monster, it will pull in a JS
loader, glib, C++... all of that, per process. If using pacrunner
(from connman guys) you can just link with libdbus, less bad.





> emile too needs to switch to using this approach internally as well.
>
>> Libproxy (https://libproxy.github.io) tries to dynamically find a
>> proxy for a given URL, unlike plain $http_proxy, $no_proxy... which
>> needs a mess to get right in complex environments such as big
>> corporations. It will also use PAC - ProxyAutoConfiguration, those
>> JavaScript like files named wpad.dat, as well as the wpad host on the
>> local network, where it tries to find the JS file.
>>
>> More than that, libproxy uses the configuration from Desktop
>> Environments. There are none for E (some volunteer?), but we can use
>> the one from Gnome3/Gnome or KDE. It will also handle envvars and some
>> /etc/sysconf configuration.
>
> what kind of config? you mean like a dbus interface exposed from e to provide
> proxy info? i haven't looked...

whatever you want, like
https://github.com/libproxy/libproxy/tree/master/libproxy/modules

they have config_envvars that check http_proxy, no_proxy... but they
also have one for gnome that uses gsettings.


>> Just be aware that libproxy is nasty and will load many crap in your
>> application binary, including mozjs to interpret JS mentioned above.
>
> ugh. i know. pac files. js in there. ugh. it's times like this that all the
> "web tech crowd" makes me want to cry. it's like they never cared about
> performance... ever. just stuff some js anywhere because we have a browser
> using it already and hey whats an extra few mb to something already needing 
> 1gb
> to run... :( oh wait1 we already have js spinning so it's no cost to us! argh!

indeed. At least pacrunner isolates this in their daemon, not every
process. And the file is shared... not to say they picked a light JS
engine (duktape) as the wpad.dat is super-simple.


>> A better solution is to use libproxy replacement from pacrunner
>> (http://git.kernel.org/cgit/network/connman/pacrunner.git/), that one
>> will only pull in libdbus and the JS is done at the daemon, which also
>> keeps shared cache not replicating it in all processes.
>
> much better, OR we even spin off a process - let it execute as a child, read
> back results in parent (and cache them until proxy data changes).

less bad, but still one per process doing networking.


>> Be traditional libproxy or pacrunner's alternative, the current code
>> should be more dynamic, however needs more testing. If you work inside
>> a proxy, give it a try and report problems, you can use the
>> src/examples/ecore/efl_io_copier or efl_net_dialer_http_example to
>> test.
>
> we do indeed live inside one at work. and there is the PAC file from hell...
>
>> It's important to get more testing as in near future I'm converting
>> parts of E/EFL that used ecore_con to use this and I don't want to
>> break things :-)
>
> please please... don't race! you bring up very important things above. also
> dlopen the sucker. don't make it a configure option + link option. runtime 
> link
> as needed. duplicate whatever elements of the libproxy headers needed to talk
> to it.

I can do this very easily, 3 functions, no public struct, just returns
a char **.


> we need to do much more of this for "rarely used dependencies". unless it's
> needed by like 80%+ of apps, then it should be dlopen'd instead of linked.
> linking is EXPENSIVE.
>
> also the issue running the PAC files... it makes sense to ecore_exe() a slave
> and have it figure it out once and store the result (ok ok PAC files
> technically have to be re-executed per connect because they can switch per
> target... urgh). we COULd do it like efreet with a daemon approach for now. we
> can support pacrunner as a daemon later too and avoid running our own. in fact
> this is likely the best approach - do it the 

Re: [E-devel] [EGIT] [core/efl] master 01/02: eina: allow graceful failure when calling eina_thread_cancel with NULL.

2016-09-19 Thread Gustavo Sverzut Barbieri
On Mon, Sep 19, 2016 at 8:08 PM, Carsten Haitzler  wrote:
> On Mon, 19 Sep 2016 09:04:15 -0300 Gustavo Sverzut Barbieri
>  said:
>
>> On Sun, Sep 18, 2016 at 2:03 PM, Carsten Haitzler 
>> wrote:
>> > On Thu, 15 Sep 2016 08:00:46 -0300 Gustavo Sverzut Barbieri
>> >  said:
>> >
>> >> isn't it better to check in ecore_thread_cancel() if the thread was
>> >> already created?
>> >
>> > that'd require keeping track of every thread we create, looking up in that
>> > list/table ever time etc. ... like eoid does. eina_thread stuff is are ally
>> > a tiny tiny tiny thin wrapper over posix (or windows or osx) threading -
>> > same with locks/semaphores etc. at this level such a complex check isn't
>> > really worth it.
>>
>> there is a single place inside ecore_thread_cancel() that calls this
>> function and it knows if t->self is 0 before calling.
>
> ummm... you're mixing ecore_thread and eina_thread. different things. :) this
> here is about eina_thread which has no t->self. t (thread) *IS* pthread_t. 
> it's
> opaque. well it hapens to be pthread_t but we could change it and alloc a
> struct in future as long as abi remains the same.
>
> so how do we check if t (Eina_Thread) has been created. basically we'd need to
>
> if (eina_list_find(all_eina_threads, t))
>   return pthread_cancel((pthread_t)t) == 0;
> return EINA_FALSE;
>
> that means a list walk every time to go find the handle. every
> eina_thread_create() has to:
>
> all_eina_threads = eina_list_append(all_eina_threads, t);
>
> We could use a hash. an array. point is we don't track all threads. we'd  have
> to start tracking them and to do a check would be a lookup like above.

we're talking about different things for different reasons :-D

I've added eina_thread_cancel() just to not expose pthread_cancel().
Most of users should never ever call that directly as they will do
mistakes with the threads. pthread_cancel() should return ESRCH if the
thread couldn't be found... not SEGV. And it's doing that for other
stuff, like pthread_join()... which we simply call without doing any
check on given Eina_Thread (thus would crash as well).

Users should use Ecore_Thread or something we may put on top (like
some Eo object). Ecore_Thread always provided ecore_thread_cancel(),
that only queues a request so users may ecore_thread_check() and stop
working.

With my change, ecore_thread_cancel() will call eina_thread_cancel(),
usually that's innocuous as thread cancellation is disabled. If the
user choose to enable thread cancellation, that is going to cancel the
thread preemptively at some well known points (man:pthreads(7)).

THUS, ecore_thread_cancel() does know if it create  the thread, if the
thread was already joined, etc. It can easily check and do not call
eina_thread_cancel().

Alternatively we may EINA_SAFETY_CHECK all entry point of
eina_thread.h, but I don't think we should do that given how low level
it is.



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

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


[EGIT] [core/efl] master 01/01: eldbus: null checking before using the pointer

2016-09-19 Thread WooHyun Jung
woohyun pushed a commit to branch master.

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

commit fa3af69e0c8e6f5fe459f1de006b5f62bd14fef9
Author: WooHyun Jung 
Date:   Tue Sep 20 11:18:52 2016 +0900

eldbus: null checking before using the pointer
---
 src/lib/eldbus/eldbus_message.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/eldbus/eldbus_message.c b/src/lib/eldbus/eldbus_message.c
index f18196c..2464d0e 100644
--- a/src/lib/eldbus/eldbus_message.c
+++ b/src/lib/eldbus/eldbus_message.c
@@ -886,6 +886,8 @@ eldbus_message_method_return_new(const Eldbus_Message *msg)
ELDBUS_MESSAGE_CHECK_RETVAL(msg, NULL);
 
reply = eldbus_message_new(EINA_TRUE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(reply, NULL);
+
reply->dbus_msg = dbus_message_new_method_return(msg->dbus_msg);
 
dbus_message_iter_init_append(reply->dbus_msg,

-- 




Re: [E-devel] Efl.Net and libproxy

2016-09-19 Thread The Rasterman
On Mon, 19 Sep 2016 11:31:58 -0300 Gustavo Sverzut Barbieri
 said:

> Hi all,
> 
> Today I did commit support for libproxy in ecore_con's new API,
> Efl.Net.Dialer.Tcp, Efl.Net.Dialer.Http and Efl.Net.Dialer.Websocket
> (implicit from HTTP).

ummm i just am looking now (i have a lot of catching up to do). can you undo
the changes to configure.ac and make this a dlopen/dlsym approach? well use
eina_module. look a the old curl eina_module approach. look at what i did in
ecore_audio too. in fact i need to look over all the efl net code, but you want
to use emile for ssl stuff and eina_module for curl too there too (i haven't
looked yet). there are very good reasons to do all of this.

emile too needs to switch to using this approach internally as well.

> Libproxy (https://libproxy.github.io) tries to dynamically find a
> proxy for a given URL, unlike plain $http_proxy, $no_proxy... which
> needs a mess to get right in complex environments such as big
> corporations. It will also use PAC - ProxyAutoConfiguration, those
> JavaScript like files named wpad.dat, as well as the wpad host on the
> local network, where it tries to find the JS file.
> 
> More than that, libproxy uses the configuration from Desktop
> Environments. There are none for E (some volunteer?), but we can use
> the one from Gnome3/Gnome or KDE. It will also handle envvars and some
> /etc/sysconf configuration.

what kind of config? you mean like a dbus interface exposed from e to provide
proxy info? i haven't looked...

> Just be aware that libproxy is nasty and will load many crap in your
> application binary, including mozjs to interpret JS mentioned above.

ugh. i know. pac files. js in there. ugh. it's times like this that all the
"web tech crowd" makes me want to cry. it's like they never cared about
performance... ever. just stuff some js anywhere because we have a browser
using it already and hey whats an extra few mb to something already needing 1gb
to run... :( oh wait1 we already have js spinning so it's no cost to us! argh!

> A better solution is to use libproxy replacement from pacrunner
> (http://git.kernel.org/cgit/network/connman/pacrunner.git/), that one
> will only pull in libdbus and the JS is done at the daemon, which also
> keeps shared cache not replicating it in all processes.

much better, OR we even spin off a process - let it execute as a child, read
back results in parent (and cache them until proxy data changes).

> Be traditional libproxy or pacrunner's alternative, the current code
> should be more dynamic, however needs more testing. If you work inside
> a proxy, give it a try and report problems, you can use the
> src/examples/ecore/efl_io_copier or efl_net_dialer_http_example to
> test.

we do indeed live inside one at work. and there is the PAC file from hell...

> It's important to get more testing as in near future I'm converting
> parts of E/EFL that used ecore_con to use this and I don't want to
> break things :-)

please please... don't race! you bring up very important things above. also
dlopen the sucker. don't make it a configure option + link option. runtime link
as needed. duplicate whatever elements of the libproxy headers needed to talk
to it.

we need to do much more of this for "rarely used dependencies". unless it's
needed by like 80%+ of apps, then it should be dlopen'd instead of linked.
linking is EXPENSIVE.

also the issue running the PAC files... it makes sense to ecore_exe() a slave
and have it figure it out once and store the result (ok ok PAC files
technically have to be re-executed per connect because they can switch per
target... urgh). we COULd do it like efreet with a daemon approach for now. we
can support pacrunner as a daemon later too and avoid running our own. in fact
this is likely the best approach - do it the efreetd way. no no. do not use
dbus. yes i know it does activation for us. no. this is far more trouble, but i
won't get into that here. just connect to a local user ipc service of our own,
if not there, spawn the daemon and try connecting again a bit later. repeat
until connect succeeded. do it in background async.

> -- 
> Gustavo Sverzut Barbieri
> --
> Mobile: +55 (16) 99354-9890
> 
> --
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


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


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


Re: [E-devel] [EGIT] [core/efl] master 03/05: render_thread: Attempt to set affinity to a random fast core

2016-09-19 Thread The Rasterman
On Mon, 19 Sep 2016 07:59:37 -0500 Derek Foreman  said:

> On 19/09/16 05:08 AM, Carsten Haitzler (The Rasterman) wrote:
> > On Mon, 19 Sep 2016 11:07:15 +0200 Stefan Schmidt 
> > said:
> > 
> >> Hello.
> >>
> >> On 16/09/16 21:11, Derek Foreman wrote:
> >>> derekf pushed a commit to branch master.
> >>>
> >>> http://git.enlightenment.org/core/efl.git/commit/?id=a17ac66f0a0b089dde0b2e550523b0d59ec97f52
> >>>
> >>> commit a17ac66f0a0b089dde0b2e550523b0d59ec97f52
> >>> Author: Derek Foreman 
> >>> Date:   Thu Sep 15 16:05:25 2016 -0500
> >>>
> >>> render_thread: Attempt to set affinity to a random fast core
> >>>
> >>> We've been pinning the render thread for every EFL process to core 0.
> >>> This is a bit silly in the first place, but some big.LITTLE arm
> >>> systems, such as exynos 5422, have the LITTLE cores first.
> >>>
> >>> On those systems we put all the render threads on a slow core.
> >>>
> >>> This attempts to fix that by using a random core from the pool of fast
> >>> cores.
> >>>
> >>> If we can't determine which cores are fast (ie: we're not on a
> >>> linux kernel with cpufreq enabled) then we'll continue doing what
> >>> we've always done.
> >>
> >> I had to revert this patch as it broke all efl builds for me. Locally 
> >> and on Jenkins. Edje_cc segfaulted on the in tree edc files. Error 
> >> message is in the revert commit message.
> >>
> >>  From the description here this change would still be needed but in a 
> >> non breaking way. :)
> > 
> > how about simply removing the pinning (affinity) entirely?
> > 
> I thought about that...  The render thread's still going to take a
> performance hit if it bounces from processor to processor much (it's
> probably pathologically bad for cache invalidation?)
> 
> Also, if it bounces around on the "LITTLE" cores on a big.LITTLE system
> it'll have really bad performance characteristics...
> 
> There's a group working on improving the scheduler to better handle non
> uniform multi-processor systems, so eventually we shouldn't need this
> anymore, but I think for now it's generally a win.

then this would need a lot more abstracting. like some special enums that ask
for a "fast core". also imagine 2 apps that pin tot he same core. the same
faster (big) core has to split rendering between 2 processes now. remember this
uses cpu_set_t under the covers ... so a special enum in eina_thread that maps
to -2, -3, -4, etc. that THEN uses cpu_set_t to set up the correct cpu set
which could include ALL big cores thus allowing it to run on any one of them.
your changes to eina_thread really didnt do this.

there's also some fun bits - some vendors use cpu hotplug for power
management... thus eina_cpu_count() often returns 1 on an 8 core system.
hooray. either way right now the best thing to do might be to disable affinity
until the above can be fixed 'right' like having specific parsing
of /proc/cpuinfo to figure out the real system we're on and how many cores
might be available, which ones are or are not "big" or "little" or otherwise
non-homogenous (evas' thread renderer started life when the 2 core athalons cam
out and well.. you had symmetric cores then... as you did when you have
multiple REAL cpu's before that and still do today). big.little upsets the
applecart with homogeneity. should rendering be forced on big always? what if
the rendering is really simple this frame? what if we're on battery and saving
power is more important than squeezing some xtra fps? :)

it's all hairy because tbh there is not enough metadata available to
userspace OR to the kernel. :( i've proposed this various times to kernel devs
"we need an interface to set scheduler/power management hints on threads like
"this is about to consume a lot of cpu for a very important user-facing task
like rendering, so having a high performance core spun up to full clock rate
RIGHT NOW would be really good!, but we're going to get in and get out asap and
won't sit and spin for 100's of ms here". ... so the kernel can make good
decisions as to where to schedule this thread, what to do with the clockrate,
memory bus clock, and more. we should call this at the start of rendering and
hope that by the time this syscall returns the kernel has decided what to do.
it may move us to a new core, or just clock  up the current one, or do nothing,
buty at least it knows what we intend to do. we're not running this thread just
to do some async i/o or parsing an xml datastream in the background or
whatever. this task we want to have as low latency as possible until it's
done, so "pretty please with a cherry on top" do the best you can to make it
happen given overall system constraints.

but such things don't exist and every kernel dev poopoos the idea thinking
there is some magical way to make this happen when the kernel has no CLUE what
code is about to execute, or the only alternatives are nasty things 

Re: [E-devel] [EGIT] [core/efl] master 01/01: tests: ecore: relax the timing precision for the promise timeout test

2016-09-19 Thread The Rasterman
On Mon, 19 Sep 2016 13:18:47 +0100 Tom Hacohen  said:

> On 19/09/16 13:08, Stefan Schmidt wrote:
> > stefan pushed a commit to branch master.
> >
> > http://git.enlightenment.org/core/efl.git/commit/?id=c25d4e8325b428122439860f9d49dd25a4b4b66d
> >
> > commit c25d4e8325b428122439860f9d49dd25a4b4b66d
> > Author: Stefan Schmidt 
> > Date:   Mon Sep 19 14:01:19 2016 +0200
> >
> > tests: ecore: relax the timing precision for the promise timeout test
> >
> > This test has been failing on Jenkins again and again. After adding the
> > debug a while ago it now shows that the value is between 0.01 and 0.02 in
> > all cases I have seen. Relaxing the timeout here a bit to make it pass in
> > situation where our CI is under load.
> > ---
> >  src/tests/ecore/ecore_test_timer.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/tests/ecore/ecore_test_timer.c
> > b/src/tests/ecore/ecore_test_timer.c index c7547e4..f3b277b 100644
> > --- a/src/tests/ecore/ecore_test_timer.c
> > +++ b/src/tests/ecore/ecore_test_timer.c
> > @@ -183,8 +183,8 @@ _ecore_promise_quit(void *data, const Efl_Event *ev)
> > double *start = success->value;
> > double delta = ecore_loop_time_get() - *start;
> >
> > -   fprintf(stderr, "Ecore promise timeout took %f (should be <= 0.01)\n",
> > delta - 0.2);
> > -   fail_if(delta - 0.2 > 0.01);
> > +   fprintf(stderr, "Ecore promise timeout took %f (should be <= 0.02)\n",
> > delta - 0.2);
> > +   fail_if(delta - 0.2 > 0.02);
> >
> > *bob = EINA_TRUE;
> > ecore_main_loop_quit();
> >
> 
> 
> Why is there an fprintf there? We don't do it in any other tests. That 
> text should be either removed or moved to a comment. No?

we do this in lots of tests. well printfs. also eina log's too. i make use of
them all the time to run a test by hand to see what is actually going on in the
test.


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


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


Re: [E-devel] [EGIT] [core/efl] master 01/02: eina: allow graceful failure when calling eina_thread_cancel with NULL.

2016-09-19 Thread The Rasterman
On Mon, 19 Sep 2016 09:04:15 -0300 Gustavo Sverzut Barbieri
 said:

> On Sun, Sep 18, 2016 at 2:03 PM, Carsten Haitzler 
> wrote:
> > On Thu, 15 Sep 2016 08:00:46 -0300 Gustavo Sverzut Barbieri
> >  said:
> >
> >> isn't it better to check in ecore_thread_cancel() if the thread was
> >> already created?
> >
> > that'd require keeping track of every thread we create, looking up in that
> > list/table ever time etc. ... like eoid does. eina_thread stuff is are ally
> > a tiny tiny tiny thin wrapper over posix (or windows or osx) threading -
> > same with locks/semaphores etc. at this level such a complex check isn't
> > really worth it.
> 
> there is a single place inside ecore_thread_cancel() that calls this
> function and it knows if t->self is 0 before calling.

ummm... you're mixing ecore_thread and eina_thread. different things. :) this
here is about eina_thread which has no t->self. t (thread) *IS* pthread_t. it's
opaque. well it hapens to be pthread_t but we could change it and alloc a
struct in future as long as abi remains the same.

so how do we check if t (Eina_Thread) has been created. basically we'd need to

if (eina_list_find(all_eina_threads, t))
  return pthread_cancel((pthread_t)t) == 0;
return EINA_FALSE;

that means a list walk every time to go find the handle. every
eina_thread_create() has to:

all_eina_threads = eina_list_append(all_eina_threads, t);

We could use a hash. an array. point is we don't track all threads. we'd  have
to start tracking them and to do a check would be a lookup like above.

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


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


[EGIT] [core/efl] master 01/01: ecore: fix warning in timer test.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 71ec6a95b8bc9fdde24271ccd2185c90f5b30367
Author: Cedric BAIL 
Date:   Mon Sep 19 16:27:14 2016 -0700

ecore: fix warning in timer test.
---
 src/tests/ecore/ecore_test_timer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/tests/ecore/ecore_test_timer.c 
b/src/tests/ecore/ecore_test_timer.c
index f3b277b..fe802bc 100644
--- a/src/tests/ecore/ecore_test_timer.c
+++ b/src/tests/ecore/ecore_test_timer.c
@@ -211,7 +211,7 @@ START_TEST(ecore_test_timeout)
 END_TEST
 
 static void
-_ecore_promise_then(void *data EINA_UNUSED, void *value EINA_UNUSED)
+_ecore_promise_then(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
 {
abort();
 }

-- 




[EGIT] [core/efl] master 01/01: elementary: patch got pushed before the complete fix.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit b5f47fbcb9d48ea74b797ed05cdd4aad9a321b8d
Author: Cedric BAIL 
Date:   Mon Sep 19 16:12:31 2016 -0700

elementary: patch got pushed before the complete fix.
---
 src/lib/elementary/efl_ui_image.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/lib/elementary/efl_ui_image.c 
b/src/lib/elementary/efl_ui_image.c
index d4370b6..546233b 100644
--- a/src/lib/elementary/efl_ui_image.c
+++ b/src/lib/elementary/efl_ui_image.c
@@ -52,7 +52,6 @@ struct _Async_Open_Data
Eina_Stringshare *file, *key;
Eina_File*f_set, *f_open;
void *map;
-   unsigned char sum;
 };
 
 static void
@@ -249,7 +248,7 @@ _efl_ui_image_async_open_do(void *data, Ecore_Thread 
*thread)
Async_Open_Data *todo = data;
Eina_File *f;
void *map = NULL;
-   size_t i, size;
+   size_t size;
 
if (ecore_thread_check(thread)) return;
 
@@ -288,7 +287,6 @@ _efl_ui_image_async_open_do(void *data, Ecore_Thread 
*thread)
  }
todo->f_open = f;
todo->map = map;
-   todo->sum = sum;
 }
 
 static void

-- 




[EGIT] [core/efl] master 01/01: elementary: be more conservative on the amount of data requested from disk.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 0d0ca579c6697aef93e84c4b8e6993120e18614a
Author: Cedric BAIL 
Date:   Mon Sep 19 16:07:03 2016 -0700

elementary: be more conservative on the amount of data requested from disk.
---
 src/lib/elementary/efl_ui_image.c | 13 -
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/src/lib/elementary/efl_ui_image.c 
b/src/lib/elementary/efl_ui_image.c
index 3a28ee4..d4370b6 100644
--- a/src/lib/elementary/efl_ui_image.c
+++ b/src/lib/elementary/efl_ui_image.c
@@ -249,7 +249,6 @@ _efl_ui_image_async_open_do(void *data, Ecore_Thread 
*thread)
Async_Open_Data *todo = data;
Eina_File *f;
void *map = NULL;
-   unsigned char *p, sum = 0;
size_t i, size;
 
if (ecore_thread_check(thread)) return;
@@ -273,17 +272,13 @@ _efl_ui_image_async_open_do(void *data, Ecore_Thread 
*thread)
  }
 
// Read just enough data for map to actually do something.
-   p = map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
size = eina_file_size_get(f);
// Read and ensure all pages are in memory for sure first just
// 1 byte per page will do. also keep a limit on how much we will
-   // blindly load in here to let's say 512M
-   if (size > (512 * 1024 * 1024)) size = 512 * 1024 * 1024;
-   for (i = 0; i < size; i += 4096)
- {
-if (ecore_thread_check(thread)) break;
-sum += p[i];
- }
+   // blindly load in here to let's say 32KB (Should be enough to get
+   // image headers without getting to much data from the hard drive).
+   size = size > 32 * 1024 ? 32 * 1024 : size;
+   map = eina_file_map_new(f, EINA_FILE_POPULATE, 0, size);
 
if (ecore_thread_check(thread))
  {

-- 




Re: [E-devel] EFL interface, what's left to be done

2016-09-19 Thread Cedric BAIL
On Mon, Sep 19, 2016 at 2:48 PM, Tom Hacohen  wrote:
> We haven't agreed on merging Eo, Efl and Ecore. I'm actually pretty much
> against it.

There was a thread weeks ago. You indeed didn't take part of that
discussion, but everyone else involved in that thread was ok. Actually
the discussion evolved more into a what else to merge in. So their was
an agreement before this email.

> Eo is clean and hasn't been "polluted" by async, mainloop and etc. That's a
> good thing. This makes our infrastructure easier to test.

Please define "clean" as it is a bit abstract to me here. What I am
looking for here is the minimal set of component I need to have
something useful. Is Eo useful by itself ? With just Efl.Object ? Sure
you could do C without the C library, but would you ?

I think that your disagreement about merging is only and just because
you do not want to make asynchronous request a core feature of EFL.
The rest is mostly rhetoric. Could you please explain why you have so
much resistance to it being rolled into more place in efl ?

As for the tests, I really don't like our eo tests. They are not
really testing a clean scenario that is possible to guess, but just a
mismatch of everything into one big C file. When something break
there, you can't just rely on the name of the tests, or reading
quickly the code to guess what's happening. Nop. You have to get
hundred of lines of tests with little logical connection to each
other. I have found them less than useful when developping (And some
times buggy, as instead of testing a scenario that makes sense, they
were just testing that the code was matching the tests). So I don't
get your argument of making it easier to tests.

> If you mean just compile them together, then there's no point in it.
> I know why you want to do it, you want to do it because you put Efl.Future
> inside libeo.so, but the correct thing to do is probably not to put it
> there.

I don't want to just compile them together. I want to merge there
headers. Make it just one library. Make efl.object, efl.future and
efl.loop one core. Obviously because I want to see efl as providing a
core asynchronous library with defined pattern. One asynchronous
pattern is "events", which is like an UDP broadcast (default
behavior)/multicast (with effort) solution. Efl.Future is more the
equivalent of a TCP connection. I think providing one without the
other is going to push for a world of broadcast solution which is not
always the right pattern. Maybe we should remove events support from
Eo to avoid this problem.

> I need to properly review this list for a more complete reply, but I just
> wanted to trigger this discussion before you go to sleep.

You mean, before you go to sleep ? I still have half a day to go ! :-)

Cheers,
  Cedric

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


[EGIT] [core/efl] efl-1.8 01/01: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.8.

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

commit d4239e073e90ed9d3dda077bfe07187dcfe487fe
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index ca2fe61..76bf062 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -332,12 +332,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/efl] efl-1.9 01/01: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.9.

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

commit 5f9bdb6120f473fbadf3cbeb7e4d04d3a87970c8
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index d86313b..1679f8a 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -332,12 +332,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/efl] efl-1.10 01/01: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.10.

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

commit e159b2cec65cbf8f957f64e149018b20e412a50b
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index d86313b..1679f8a 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -332,12 +332,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/efl] efl-1.11 01/01: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.11.

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

commit b6019a7daeb1b52bc6aa823da2eefda7513400a8
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index 08e3a2d..ef3e9d2 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -333,12 +333,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/efl] efl-1.13 01/01: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.13.

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

commit 698c213823fb9cb21f8ea956e8619f849e7222be
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index 08e3a2d..ef3e9d2 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -333,12 +333,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/efl] efl-1.12 01/01: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.12.

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

commit 18d32e8e25e3cbd209854f0c82dfd0eac0925452
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index 08e3a2d..ef3e9d2 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -333,12 +333,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/efl] efl-1.15 01/01: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.15.

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

commit 71f4064735d402c941db7e6fb15dd2d933c21502
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index 08e3a2d..ef3e9d2 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -333,12 +333,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/efl] efl-1.14 01/01: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.14.

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

commit 815e682cf14974189e11595bd299ed56a5e58691
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index 08e3a2d..ef3e9d2 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -333,12 +333,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/efl] efl-1.17 01/01: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.17.

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

commit f5e67635aa89cb48f0aedc1e5164a0ebf6466d6a
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index 08e3a2d..ef3e9d2 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -333,12 +333,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/efl] efl-1.16 01/01: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.16.

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

commit 00e085633ec564f26efd5044e81dff01f94433db
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index 08e3a2d..ef3e9d2 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -333,12 +333,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/efl] efl-1.18 01/01: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch efl-1.18.

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

commit dd48e079384e4c4753a79e851807b638a2d32fff
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index 08e3a2d..ef3e9d2 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -333,12 +333,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/enlightenment] master 01/01: fix text preview to use eina_strbuf_append_length that doesn't call strlen and crash.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit ae23533b0d5e218d8943427a6ca3bf49b3797b93
Author: Cedric BAIL 
Date:   Mon Sep 19 14:47:50 2016 -0700

fix text preview to use eina_strbuf_append_length that doesn't call strlen 
and crash.
---
 src/bin/e_widget_filepreview.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_widget_filepreview.c b/src/bin/e_widget_filepreview.c
index 8363965..2602895 100644
--- a/src/bin/e_widget_filepreview.c
+++ b/src/bin/e_widget_filepreview.c
@@ -932,7 +932,7 @@ _e_wid_fprev_preview_txt_map_success(void *data, Eio_File 
*handler EINA_UNUSED,
Evas_Coord mw, mh;
 
buf = eina_strbuf_new();
-   eina_strbuf_append_n(buf, map, length);
+   eina_strbuf_append_length(buf, map, length);
msg = evas_textblock_text_utf8_to_markup(NULL, eina_strbuf_string_get(buf));
eina_strbuf_reset(buf);
 

-- 




Re: [E-devel] EFL interface, what's left to be done

2016-09-19 Thread Tom Hacohen
We haven't agreed on merging Eo, Efl and Ecore. I'm actually pretty much
against it.
Eo is clean and hasn't been "polluted" by async, mainloop and etc. That's a
good thing. This makes our infrastructure easier to test.
If you mean just compile them together, then there's no point in it.
I know why you want to do it, you want to do it because you put Efl.Future
inside libeo.so, but the correct thing to do is probably not to put it
there.

I need to properly review this list for a more complete reply, but I just
wanted to trigger this discussion before you go to sleep.

--
Tom.

On Mon, Sep 19, 2016 at 10:05 PM, Cedric BAIL  wrote:

> Hello everyone,
>
> So this email is going over what is left to be done to call EFL
> interface done. Most of this require still discussion also. Here it
> goes :
>
> - Merge Eo, Efl and Ecore
> - Make efl_uri_set/efl_file_set asynchronous
> - Convert Ecore_Exe to the new efl_io API
> - Fixup efl/interface/*.eo to all be in the correct namespace
> - Disable installation of evas/canvas/evas*.eo
> - Convert edje to become efl_canvas_layout
> - Update Edje with the new Text API
> - Convert elm_layout to become efl_ui_layout
> - Convert elm_widget to be an efl_ui_object of some sort
> - Update all efl data model to use efl_future/efl_promise
> - Add proper View and Controller for Genlist/Gengrid (see D3952 for some
> ideas)
> - There is still a large amount of .eo in elementary that are in elm
> namespace. This shouldn't be installed nor appear anywhere in the
> hierarchy.
> - Finish porting some of the widget to Efl.Ui namespace (photocam,
> index, entry, button, calendar, clock, menu, ...). This needs to be
> clarified with some pending patch in phab.
>
> This are quite a large todo list to be done with, hopefully it will...
> --
> Cedric BAIL
>
> 
> --
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] EFL interface, what's left to be done

2016-09-19 Thread Andrew Williams
Hi Cedric,

Great list thanks :)

Along with all the breaking changes I thought I would throw a suggestion
into the mix...
How about we move non-core Elementary widgets out to an elm_extra library
not in main efl? There is so much in there that we are struggling to add
important stuff like tabs etc. If we could maintain a little less as a core
group this might be the time?
Also new widgets could start here rather than in efl...

Cheers,
Andy
On Mon, 19 Sep 2016 at 22:06, Cedric BAIL  wrote:

> Hello everyone,
>
> So this email is going over what is left to be done to call EFL
> interface done. Most of this require still discussion also. Here it
> goes :
>
> - Merge Eo, Efl and Ecore
> - Make efl_uri_set/efl_file_set asynchronous
> - Convert Ecore_Exe to the new efl_io API
> - Fixup efl/interface/*.eo to all be in the correct namespace
> - Disable installation of evas/canvas/evas*.eo
> - Convert edje to become efl_canvas_layout
> - Update Edje with the new Text API
> - Convert elm_layout to become efl_ui_layout
> - Convert elm_widget to be an efl_ui_object of some sort
> - Update all efl data model to use efl_future/efl_promise
> - Add proper View and Controller for Genlist/Gengrid (see D3952 for some
> ideas)
> - There is still a large amount of .eo in elementary that are in elm
> namespace. This shouldn't be installed nor appear anywhere in the
> hierarchy.
> - Finish porting some of the widget to Efl.Ui namespace (photocam,
> index, entry, button, calendar, clock, menu, ...). This needs to be
> clarified with some pending patch in phab.
>
> This are quite a large todo list to be done with, hopefully it will...
> --
> Cedric BAIL
>
>
> --
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [RFC] EFL Multi-seat

2016-09-19 Thread Christopher Michael
On 09/19/2016 05:27 PM, Guilherme Íscaro wrote:
> On Fri, Sep 16, 2016 at 6:17 PM, Christopher Michael > wrote:
>
>> On 09/16/2016 05:11 PM, Guilherme Íscaro wrote:
>>> Hey guys, Here's a version 2.
>>>
>>> = Changes on Evas =
>>>
>>>-
>>>
>>>_Evas_Public_Data should contain a hash indexed by seat of focused
>>>Evas_Objects. From “pd->focused” to “pd->focused[seat]”.
>>>-
>>>
>>>evas_canvas_focus_get() should return the object focused by the
>> default
>>>seat.
>>>-
>>>
>>>evas_canvas_pointer_canvas_xy_get() Should return the XY from the
>>>default seat.
>>>-
>>>
>>
>> I still maintain that any functions dealing with a single specific seat
>> are going to come back and bite you when true multi-seat is
>> implemented... perhaps (for those type of functions) they should have a
>> parameter "seat" or something ??? If no seat is passed in, then assume
>> "default" seat...
>>
>> dh
>>
>
> Hey Christopher,
>
> In teori we plan to refactor evas_canvas_pointer_canvas_xy_get() and make
> it use  evas_canvas_seat_pointer_canvas_xy_get() internally.  Do you think
> this might be a problem as well ?
>
>

I think that, eventually, when True multi-seat is supported 
(systemd/logind multiseat), Any API functions which assume "default" 
seat are going to end up (likely) having to be changed in order to 
support devices which are Not on the default seat. If we would like to 
be proactive and look to the future (without causing us major headaches 
at that time), then (IMO) these API functions should also take a "seat" 
parameter. When dealing with the "default" seat, that parameter can just 
be passed a NULL.

dh

>>>evas_canvas_seat_pointer_canvas_xy_get() - Same thing as
>>>evas_canvas_pointer_canvas_xy_get(), however it returns the XY based
>> on the
>>>seat.
>>>-
>>>
>>>evas_object_focus_set() - his function will be refactored to use
>>>evas_canvas_object_focus_by_seat_set().
>>>-
>>>
>>>evas_canvas_object_focus_by_seat_set() should be added
>>>-
>>>
>>>Evas will automatically create Evas_Devices
>>>-
>>>
>>>All functions that handle multi-seat should be implement as
>> non-legacy,
>>>this is using EO.
>>>-
>>>
>>>For every new Evas_Device creation an event
>>>(EFL_CANVAS_EVENT_DEVICE_ADD) should be generated containing the new
>>>Evas_Device.
>>>-
>>>
>>>When a device is removed another event will be generated
>>>(EFL_CANVAS_EVENT_DEVICE_DEL).
>>>-
>>>
>>>Every time an object/canvas receives focus a new event will be
>>>generated. The event
>>>(EFL_CANVAS_EVENT_DEVICE_FOCUS_IN/OUT)/(EFL_CANVAS_
>> EVENT_OBJECT_DEVICE_FOCUS_IN/OUT)
>>>will contain the device itself that generated the focus event and the
>>>focused object/canvas.
>>>-
>>>
>>>Add new EO event functions: evas_canvas_event_*(EO *evas, Evas_Device
>>>*device_that_originated_the_event, ...Event Args….);
>>>-
>>>
>>>   All the existing evas_events_*() functions will be refactored to
>> use
>>>   the new event functions passing NULL as device, this will flag
>>> that device
>>>   belongs to the default seat.
>>>   -
>>>
>>>   Internally EFL will be refactored to replace the old evas_event_*
>>>   functions and use the new ones.
>>>
>>>
>>>
>>> = Changes on Ecore_Evas =
>>>
>>>-
>>>
>>>Eina_Bool ecore_evas_x11_vnc_server_start(Ecore_Evas *ee, const char
>>>*addr, int port, Accept_Client_Cb cb, void *cb_data); -> This will
>> enable
>>>vnc server for the ecore_evas x11 module.
>>>-
>>>
>>>The Accept_Client_Cb will have the following signature: typedef
>>>Eina_Bool (Accept_Client_Cb)(void *data, Ecore_Evas *ee, const char
>>>*client_addr). This callback should return EINA_TRUE to accept the VNC
>>>client or EINA_FALSE otherwise.
>>>-
>>>
>>>The struct _Ecore_Evas_Interface_X11 should contain a new function
>> with
>>>the following signature Eina_Bool _setup_vnc_server() that will
>> create the
>>>vnc server and start listening for clients.
>>>-
>>>
>>>ecore_evas_x11_vnc_server_stop(Ecore_Evas *ee);
>>>-
>>>
>>>Ecore_Evas_x11 will create Efl_Input_Devices for every new user and
>> set
>>>the emulated seat.
>>>-
>>>
>>>In case of x11 - For every new vnc client an Efl_Input_Device will be
>>>created and added to the Evas canvas.
>>>
>>>
>>>
>>> = Changes on Evas x11 engine =
>>>
>>>-
>>>
>>>A callback will be created in order to notify the ecore_evas_x11
>> backend
>>>with the modified pixels. This will be used to properly draw the VNC
>> remote
>>>screen.
>>>
>>>
>>>
>>> = Changes on Ecore_Wl2 =
>>>
>>>-
>>>
>>>Implement the _seat_cb_name() function in order to collect the seat
>> name.
>>>-
>>>
>>>For every wl_pointer/wl_keyboard/wl_seat it will be create an
>>>Efl_Input_Device. The wl_pointer and wl_keyboard will have the
>> wl_seat as
>>>  

Re: [E-devel] [RFC] EFL Multi-seat

2016-09-19 Thread Guilherme Íscaro
s/teori/theory/

On Mon, Sep 19, 2016 at 6:27 PM, Guilherme Íscaro 
wrote:

>
>
> On Fri, Sep 16, 2016 at 6:17 PM, Christopher Michael <
> cp.mich...@samsung.com> wrote:
>
>> On 09/16/2016 05:11 PM, Guilherme Íscaro wrote:
>> > Hey guys, Here's a version 2.
>> >
>> > = Changes on Evas =
>> >
>> >-
>> >
>> >_Evas_Public_Data should contain a hash indexed by seat of focused
>> >Evas_Objects. From “pd->focused” to “pd->focused[seat]”.
>> >-
>> >
>> >evas_canvas_focus_get() should return the object focused by the
>> default
>> >seat.
>> >-
>> >
>> >evas_canvas_pointer_canvas_xy_get() Should return the XY from the
>> >default seat.
>> >-
>> >
>>
>> I still maintain that any functions dealing with a single specific seat
>> are going to come back and bite you when true multi-seat is
>> implemented... perhaps (for those type of functions) they should have a
>> parameter "seat" or something ??? If no seat is passed in, then assume
>> "default" seat...
>>
>> dh
>>
>
> Hey Christopher,
>
> In teori we plan to refactor evas_canvas_pointer_canvas_xy_get() and make
> it use  evas_canvas_seat_pointer_canvas_xy_get() internally.  Do you
> think this might be a problem as well ?
>
>
>> >evas_canvas_seat_pointer_canvas_xy_get() - Same thing as
>> >evas_canvas_pointer_canvas_xy_get(), however it returns the XY
>> based on the
>> >seat.
>> >-
>> >
>> >evas_object_focus_set() - his function will be refactored to use
>> >evas_canvas_object_focus_by_seat_set().
>> >-
>> >
>> >evas_canvas_object_focus_by_seat_set() should be added
>> >-
>> >
>> >Evas will automatically create Evas_Devices
>> >-
>> >
>> >All functions that handle multi-seat should be implement as
>> non-legacy,
>> >this is using EO.
>> >-
>> >
>> >For every new Evas_Device creation an event
>> >(EFL_CANVAS_EVENT_DEVICE_ADD) should be generated containing the new
>> >Evas_Device.
>> >-
>> >
>> >When a device is removed another event will be generated
>> >(EFL_CANVAS_EVENT_DEVICE_DEL).
>> >-
>> >
>> >Every time an object/canvas receives focus a new event will be
>> >generated. The event
>> >(EFL_CANVAS_EVENT_DEVICE_FOCUS_IN/OUT)/(EFL_CANVAS_EVENT_
>> OBJECT_DEVICE_FOCUS_IN/OUT)
>> >will contain the device itself that generated the focus event and the
>> >focused object/canvas.
>> >-
>> >
>> >Add new EO event functions: evas_canvas_event_*(EO *evas, Evas_Device
>> >*device_that_originated_the_event, ...Event Args….);
>> >-
>> >
>> >   All the existing evas_events_*() functions will be refactored to
>> use
>> >   the new event functions passing NULL as device, this will flag
>> > that device
>> >   belongs to the default seat.
>> >   -
>> >
>> >   Internally EFL will be refactored to replace the old evas_event_*
>> >   functions and use the new ones.
>> >
>> >
>> >
>> > = Changes on Ecore_Evas =
>> >
>> >-
>> >
>> >Eina_Bool ecore_evas_x11_vnc_server_start(Ecore_Evas *ee, const char
>> >*addr, int port, Accept_Client_Cb cb, void *cb_data); -> This will
>> enable
>> >vnc server for the ecore_evas x11 module.
>> >-
>> >
>> >The Accept_Client_Cb will have the following signature: typedef
>> >Eina_Bool (Accept_Client_Cb)(void *data, Ecore_Evas *ee, const char
>> >*client_addr). This callback should return EINA_TRUE to accept the
>> VNC
>> >client or EINA_FALSE otherwise.
>> >-
>> >
>> >The struct _Ecore_Evas_Interface_X11 should contain a new function
>> with
>> >the following signature Eina_Bool _setup_vnc_server() that will
>> create the
>> >vnc server and start listening for clients.
>> >-
>> >
>> >ecore_evas_x11_vnc_server_stop(Ecore_Evas *ee);
>> >-
>> >
>> >Ecore_Evas_x11 will create Efl_Input_Devices for every new user and
>> set
>> >the emulated seat.
>> >-
>> >
>> >In case of x11 - For every new vnc client an Efl_Input_Device will be
>> >created and added to the Evas canvas.
>> >
>> >
>> >
>> > = Changes on Evas x11 engine =
>> >
>> >-
>> >
>> >A callback will be created in order to notify the ecore_evas_x11
>> backend
>> >with the modified pixels. This will be used to properly draw the VNC
>> remote
>> >screen.
>> >
>> >
>> >
>> > = Changes on Ecore_Wl2 =
>> >
>> >-
>> >
>> >Implement the _seat_cb_name() function in order to collect the seat
>> name.
>> >-
>> >
>> >For every wl_pointer/wl_keyboard/wl_seat it will be create an
>> >Efl_Input_Device. The wl_pointer and wl_keyboard will have the
>> wl_seat as
>> >parent. After creation of these Efl_Input_Devices an ecore_event
>> will be
>> >generated, so ecore_evas_input can grab it and properly add the
>> devices
>> >into the canvas.
>> >
>> >
>> >
>> > = Ecore =
>> >
>> >-
>> >
>> >Ecore_Events structs should contain the Efl_Input_Device that
>> originated
>> >the 

Re: [E-devel] [RFC] EFL Multi-seat

2016-09-19 Thread Guilherme Íscaro
On Fri, Sep 16, 2016 at 6:17 PM, Christopher Michael  wrote:

> On 09/16/2016 05:11 PM, Guilherme Íscaro wrote:
> > Hey guys, Here's a version 2.
> >
> > = Changes on Evas =
> >
> >-
> >
> >_Evas_Public_Data should contain a hash indexed by seat of focused
> >Evas_Objects. From “pd->focused” to “pd->focused[seat]”.
> >-
> >
> >evas_canvas_focus_get() should return the object focused by the
> default
> >seat.
> >-
> >
> >evas_canvas_pointer_canvas_xy_get() Should return the XY from the
> >default seat.
> >-
> >
>
> I still maintain that any functions dealing with a single specific seat
> are going to come back and bite you when true multi-seat is
> implemented... perhaps (for those type of functions) they should have a
> parameter "seat" or something ??? If no seat is passed in, then assume
> "default" seat...
>
> dh
>

Hey Christopher,

In teori we plan to refactor evas_canvas_pointer_canvas_xy_get() and make
it use  evas_canvas_seat_pointer_canvas_xy_get() internally.  Do you think
this might be a problem as well ?


> >evas_canvas_seat_pointer_canvas_xy_get() - Same thing as
> >evas_canvas_pointer_canvas_xy_get(), however it returns the XY based
> on the
> >seat.
> >-
> >
> >evas_object_focus_set() - his function will be refactored to use
> >evas_canvas_object_focus_by_seat_set().
> >-
> >
> >evas_canvas_object_focus_by_seat_set() should be added
> >-
> >
> >Evas will automatically create Evas_Devices
> >-
> >
> >All functions that handle multi-seat should be implement as
> non-legacy,
> >this is using EO.
> >-
> >
> >For every new Evas_Device creation an event
> >(EFL_CANVAS_EVENT_DEVICE_ADD) should be generated containing the new
> >Evas_Device.
> >-
> >
> >When a device is removed another event will be generated
> >(EFL_CANVAS_EVENT_DEVICE_DEL).
> >-
> >
> >Every time an object/canvas receives focus a new event will be
> >generated. The event
> >(EFL_CANVAS_EVENT_DEVICE_FOCUS_IN/OUT)/(EFL_CANVAS_
> EVENT_OBJECT_DEVICE_FOCUS_IN/OUT)
> >will contain the device itself that generated the focus event and the
> >focused object/canvas.
> >-
> >
> >Add new EO event functions: evas_canvas_event_*(EO *evas, Evas_Device
> >*device_that_originated_the_event, ...Event Args….);
> >-
> >
> >   All the existing evas_events_*() functions will be refactored to
> use
> >   the new event functions passing NULL as device, this will flag
> > that device
> >   belongs to the default seat.
> >   -
> >
> >   Internally EFL will be refactored to replace the old evas_event_*
> >   functions and use the new ones.
> >
> >
> >
> > = Changes on Ecore_Evas =
> >
> >-
> >
> >Eina_Bool ecore_evas_x11_vnc_server_start(Ecore_Evas *ee, const char
> >*addr, int port, Accept_Client_Cb cb, void *cb_data); -> This will
> enable
> >vnc server for the ecore_evas x11 module.
> >-
> >
> >The Accept_Client_Cb will have the following signature: typedef
> >Eina_Bool (Accept_Client_Cb)(void *data, Ecore_Evas *ee, const char
> >*client_addr). This callback should return EINA_TRUE to accept the VNC
> >client or EINA_FALSE otherwise.
> >-
> >
> >The struct _Ecore_Evas_Interface_X11 should contain a new function
> with
> >the following signature Eina_Bool _setup_vnc_server() that will
> create the
> >vnc server and start listening for clients.
> >-
> >
> >ecore_evas_x11_vnc_server_stop(Ecore_Evas *ee);
> >-
> >
> >Ecore_Evas_x11 will create Efl_Input_Devices for every new user and
> set
> >the emulated seat.
> >-
> >
> >In case of x11 - For every new vnc client an Efl_Input_Device will be
> >created and added to the Evas canvas.
> >
> >
> >
> > = Changes on Evas x11 engine =
> >
> >-
> >
> >A callback will be created in order to notify the ecore_evas_x11
> backend
> >with the modified pixels. This will be used to properly draw the VNC
> remote
> >screen.
> >
> >
> >
> > = Changes on Ecore_Wl2 =
> >
> >-
> >
> >Implement the _seat_cb_name() function in order to collect the seat
> name.
> >-
> >
> >For every wl_pointer/wl_keyboard/wl_seat it will be create an
> >Efl_Input_Device. The wl_pointer and wl_keyboard will have the
> wl_seat as
> >parent. After creation of these Efl_Input_Devices an ecore_event will
> be
> >generated, so ecore_evas_input can grab it and properly add the
> devices
> >into the canvas.
> >
> >
> >
> > = Ecore =
> >
> >-
> >
> >Ecore_Events structs should contain the Efl_Input_Device that
> originated
> >the event.
> >
> >
> >-
> >
> >These functions may be useful:
> >-
> >
> >   Eina_List *ecore_input_seats_get() - Return all the available seats
> >   - Ecore_Seat * ecore_input_seat_find(const char *name)
> >
> >
> > On Fri, Sep 16, 2016 at 12:51 PM, Gustavo Sverzut 

[E-devel] EFL interface, what's left to be done

2016-09-19 Thread Cedric BAIL
Hello everyone,

So this email is going over what is left to be done to call EFL
interface done. Most of this require still discussion also. Here it
goes :

- Merge Eo, Efl and Ecore
- Make efl_uri_set/efl_file_set asynchronous
- Convert Ecore_Exe to the new efl_io API
- Fixup efl/interface/*.eo to all be in the correct namespace
- Disable installation of evas/canvas/evas*.eo
- Convert edje to become efl_canvas_layout
- Update Edje with the new Text API
- Convert elm_layout to become efl_ui_layout
- Convert elm_widget to be an efl_ui_object of some sort
- Update all efl data model to use efl_future/efl_promise
- Add proper View and Controller for Genlist/Gengrid (see D3952 for some ideas)
- There is still a large amount of .eo in elementary that are in elm
namespace. This shouldn't be installed nor appear anywhere in the
hierarchy.
- Finish porting some of the widget to Efl.Ui namespace (photocam,
index, entry, button, calendar, clock, menu, ...). This needs to be
clarified with some pending patch in phab.

This are quite a large todo list to be done with, hopefully it will...
-- 
Cedric BAIL

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


[EGIT] [core/efl] master 01/02: ecore: remove useless ecore_parent.eo.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit e4958e9faa7bbf5992aea9d908374350f88f7efe
Author: Cedric BAIL 
Date:   Mon Sep 19 13:05:32 2016 -0700

ecore: remove useless ecore_parent.eo.
---
 src/Makefile_Ecore.am | 3 +--
 src/lib/ecore/ecore.c | 6 --
 src/lib/ecore/ecore_parent.eo | 4 
 src/lib/ecore/ecore_poller.c  | 2 +-
 src/lib/ecore/ecore_private.h | 3 ---
 5 files changed, 2 insertions(+), 16 deletions(-)

diff --git a/src/Makefile_Ecore.am b/src/Makefile_Ecore.am
index 606ae66..e409dff 100644
--- a/src/Makefile_Ecore.am
+++ b/src/Makefile_Ecore.am
@@ -19,8 +19,7 @@ ecore_eolian_files_public = \
lib/ecore/efl_io_stdout.eo \
lib/ecore/efl_io_stderr.eo \
lib/ecore/efl_io_file.eo \
-lib/ecore/efl_io_copier.eo \
-   lib/ecore/ecore_parent.eo
+lib/ecore/efl_io_copier.eo
 
 ecore_eolian_files = \
$(ecore_eolian_files_public) \
diff --git a/src/lib/ecore/ecore.c b/src/lib/ecore/ecore.c
index acf2822..6cca015 100644
--- a/src/lib/ecore/ecore.c
+++ b/src/lib/ecore/ecore.c
@@ -59,8 +59,6 @@ static FILE *_ecore_memory_statistic_file = NULL;
 
 static Eina_Bool _no_system_modules = EINA_FALSE;
 
-Eo *_ecore_parent = NULL;
-
 static const char *_ecore_magic_string_get(Ecore_Magic m);
 static int _ecore_init_count = 0;
 static int _ecore_init_count_threshold = 0;
@@ -278,7 +276,6 @@ ecore_init(void)
 #if defined(GLIB_INTEGRATION_ALWAYS)
if (_ecore_glib_always_integrate) ecore_main_loop_glib_integrate();
 #endif
-   _ecore_parent = efl_add(ECORE_PARENT_CLASS, NULL);
 
 #if defined(HAVE_MALLINFO) || defined(HAVE_MALLOC_INFO)
if (getenv("ECORE_MEM_STAT"))
@@ -440,7 +437,6 @@ ecore_shutdown(void)
  eina_prefix_free(_ecore_pfx);
  _ecore_pfx = NULL;
 
- efl_unref(_ecore_parent);
  efl_object_shutdown();
 
  eina_shutdown();
@@ -1063,5 +1059,3 @@ ecore_memory_state_set(Ecore_Memory_State state)
_ecore_memory_state = state;
ecore_event_add(ECORE_EVENT_MEMORY_STATE, NULL, NULL, NULL);
 }
-
-#include "ecore_parent.eo.c"
diff --git a/src/lib/ecore/ecore_parent.eo b/src/lib/ecore/ecore_parent.eo
deleted file mode 100644
index 239aa64..000
--- a/src/lib/ecore/ecore_parent.eo
+++ /dev/null
@@ -1,4 +0,0 @@
-class Ecore.Parent (Efl.Object)
-{
-   data: null;
-}
diff --git a/src/lib/ecore/ecore_poller.c b/src/lib/ecore/ecore_poller.c
index 5942616..7e476e6 100644
--- a/src/lib/ecore/ecore_poller.c
+++ b/src/lib/ecore/ecore_poller.c
@@ -237,7 +237,7 @@ ecore_poller_add(Ecore_Poller_Type type EINA_UNUSED,
  const void   *data)
 {
Ecore_Poller *poller;
-   poller = efl_add(MY_CLASS, _ecore_parent, 
ecore_poller_constructor(efl_added, type, interval, func, data));
+   poller = efl_add(MY_CLASS, _mainloop_singleton, 
ecore_poller_constructor(efl_added, type, interval, func, data));
return poller;
 }
 
diff --git a/src/lib/ecore/ecore_private.h b/src/lib/ecore/ecore_private.h
index f31b2f5..e053c15 100644
--- a/src/lib/ecore/ecore_private.h
+++ b/src/lib/ecore/ecore_private.h
@@ -366,10 +366,7 @@ GENERIC_ALLOC_FREE_HEADER(Ecore_Win32_Handler, 
ecore_win32_handler);
 #undef GENERIC_ALLOC_FREE_HEADER
 
 extern Eo *_mainloop_singleton;
-extern Eo *_ecore_parent;
 extern Efl_Version _app_efl_version;
-#define ECORE_PARENT_CLASS ecore_parent_class_get()
-EAPI const Efl_Class *ecore_parent_class_get(void) EINA_CONST;
 
 void ecore_loop_future_register(Efl_Loop *l EINA_UNUSED, Efl_Future *f);
 void ecore_loop_future_unregister(Efl_Loop *l EINA_UNUSED, Efl_Future *f);

-- 




[EGIT] [core/efl] master 02/02: eina: populate memory in the right limit.

2016-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 25aef34aa044503024b6b608feb87d4d4e02ff3b
Author: Cedric BAIL 
Date:   Mon Sep 19 14:02:43 2016 -0700

eina: populate memory in the right limit.
---
 src/lib/eina/eina_file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c
index b1f9328..994905f 100644
--- a/src/lib/eina/eina_file.c
+++ b/src/lib/eina/eina_file.c
@@ -316,12 +316,14 @@ _eina_file_map_populate(char *map, unsigned int size, 
Eina_Bool hugetlb)
unsigned int i;
unsigned int s;
 
+   if (size == 0) return 0;
+
s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE;
 
for (i = 0; i < size; i += s)
  r ^= map[i];
 
-   r ^= map[size];
+   r ^= map[size - 1];
 
return r;
 }

-- 




[EGIT] [core/enlightenment] master 02/02: force bgpreview widget to resize after a wallpaper update

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit a85d142b93f88f96ffaa10629f0051511e0af899
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 16:18:14 2016 -0400

force bgpreview widget to resize after a wallpaper update

ref be1b11ca28dbaeaaab4fd8f308ec31029d104397

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

diff --git a/src/bin/e_widget_bgpreview.c b/src/bin/e_widget_bgpreview.c
index ee6fc7e..f66eb80 100644
--- a/src/bin/e_widget_bgpreview.c
+++ b/src/bin/e_widget_bgpreview.c
@@ -387,6 +387,7 @@ _e_wid_cb_bg_update(void *data, int type, void *event)
   {
  dd->live = o = e_video_add(e, bgfile, EINA_TRUE);
   }
+_e_wid_livethumb_resize_job(dd);
 eina_stringshare_del(bgfile);
 
 evas_object_size_hint_weight_set(dd->live, 1, 1);

-- 




[EGIT] [core/enlightenment] master 01/02: add gadget doc note for gadget_destroyed callback re:object lifetimes

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 09cf90b05ae0499289df2eb5e4b8d9fe15b23895
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 16:05:58 2016 -0400

add gadget doc note for gadget_destroyed callback re:object lifetimes
---
 src/bin/e_gadget.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_gadget.h b/src/bin/e_gadget.h
index f44f634..2304054 100644
--- a/src/bin/e_gadget.h
+++ b/src/bin/e_gadget.h
@@ -14,7 +14,8 @@
   "gadget_created"
- a gadget object was created on the site
   "gadget_destroyed"
-   - a gadget object was destroyed on the site
+   - a gadget object was destroyed on the site; all objects created by the
+ gadget infrastructure are now dead
   "gadget_moved"
- a gadget is preparing to move from its current site
   "gadget_removed"

-- 




[EGIT] [core/enlightenment] master 01/01: always use largest available size for free-oriented gadgets

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit d1953c2205747ef4bbe9e97fd88d70912b717c38
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 15:50:55 2016 -0400

always use largest available size for free-oriented gadgets

ensure that gadgets don't unexpectedly clamp to minimum size
---
 src/bin/e_gadget.c | 13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index 7b87556..54ef51c 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -373,8 +373,8 @@ _site_gadget_resize(Evas_Object *g, int w, int h, 
Evas_Coord *ww, Evas_Coord *hh
else
  {
 *ww = mnw, *hh = mnh;
-if (!(*ww)) *ww = w;
-if (!(*hh)) *hh = h;
+if ((!(*ww)) || ((*ww) < w)) *ww = w;
+if ((!(*hh)) || ((*hh) < h)) *hh = h;
  }
if (aspect && ax && ay)
  {
@@ -395,7 +395,14 @@ _site_gadget_resize(Evas_Object *g, int w, int h, 
Evas_Coord *ww, Evas_Coord *hh
{
   double ar = ax / (double) ay;
 
-  if (ar > 1.0)
+  if (ax == ay)
+{
+   if (*ww > *hh)
+ *hh = *ww;
+   else
+ *ww = *hh;
+}
+  else if (ar > 1.0)
 *hh = (*ww * ay / ax);
   else
 *ww = (*hh * ax / ay);

-- 




[EGIT] [core/enlightenment] master 01/01: add backspace/delete for clearing all lockscreen gadgets

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 9439228816d07083e193441de4523ad8a0001c7e
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 15:18:06 2016 -0400

add backspace/delete for clearing all lockscreen gadgets

this was turning into a total wasteland
---
 src/bin/e_gadget.c | 33 -
 1 file changed, 28 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index 2114337..7b87556 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -726,15 +726,21 @@ _gadget_act_configure(E_Object *obj, const char *params 
EINA_UNUSED, E_Binding_E
 }
 
 static void
-_gadget_menu_remove(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi 
EINA_UNUSED)
+_gadget_remove(E_Gadget_Config *zgc)
 {
-   E_Gadget_Config *zgc = data;
-
evas_object_smart_callback_call(zgc->site->layout, "gadget_removed", 
zgc->gadget);
zgc->site->gadget_list = eina_inlist_remove(zgc->site->gadget_list, 
EINA_INLIST_GET(zgc));
zgc->site->gadgets = eina_list_remove(zgc->site->gadgets, zgc);
-   evas_object_smart_need_recalculate_set(zgc->site->layout, 1);
_gadget_free(zgc);
+}
+
+static void
+_gadget_menu_remove(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi 
EINA_UNUSED)
+{
+   E_Gadget_Config *zgc = data;
+
+   _gadget_remove(zgc);
+   evas_object_smart_need_recalculate_set(zgc->site->layout, 1);
e_config_save_queue();
 }
 
@@ -1955,11 +1961,27 @@ _edit_end()
e_comp_ungrab_input(1, 1);
 }
 
+static void
+_gadget_desklock_clear(void)
+{
+   Eina_List *l;
+   E_Gadget_Site *zgs;
+
+   EINA_LIST_FOREACH(sites->sites, l, zgs)
+ if (zgs->autoadd && zgs->layout && strstr(zgs->name, "desklock."))
+   {
+  E_LIST_FOREACH(zgs->gadgets, _gadget_remove);
+   }
+   e_config_save_queue();
+}
+
 static Eina_Bool
 _gadget_key_handler(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Key 
*ev)
 {
if (eina_streq(ev->key, "Escape"))
  _gadget_desklock_del();
+   else if (eina_streq(ev->key, "Delete") || eina_streq(ev->key, "Backspace"))
+ _gadget_desklock_clear();
return ECORE_CALLBACK_DONE;
 }
 
@@ -1998,7 +2020,8 @@ _gadget_desklock_handler(void *d EINA_UNUSED, int t 
EINA_UNUSED, E_Event_Comp_Ob
memset(, 0, sizeof(E_Notification_Notify));
n.timeout = 3000;
n.summary = _("Lockscreen Gadgets");
-   n.body = _("Press Escape or click the background to exit.");
+   n.body = _("Press Escape or click the background to exit."
+  "Use Backspace or Delete to remove all gadgets from this 
screen");
n.urgency = E_NOTIFICATION_NOTIFY_URGENCY_NORMAL;
e_notification_client_send(, NULL, NULL);
return ECORE_CALLBACK_RENEW;

-- 




[EGIT] [core/enlightenment] master 02/06: add separate codepath for handling layout of moving gadgets

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 4dd99ed66939bf195134320cfec896f96222700c
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 14:53:20 2016 -0400

add separate codepath for handling layout of moving gadgets

these get sized and positioned in a passthrough manner, so avoid doing any 
calc
---
 src/bin/e_gadget.c | 23 ++-
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index 5196963..1382a19 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -532,16 +532,21 @@ _site_layout(Evas_Object *o, Evas_Object_Box_Data *priv 
EINA_UNUSED, void *data)
 int ww, hh, ow, oh;
 
 if (!zgc->display) continue;
-_site_gadget_resize(zgc->gadget, w * zgc->w, h * zgc->h, , , 
, );
-if (zgc->x > -1.0)
-  {
- gx = zgc->x * w;
- gx += (Evas_Coord)(((double)(ww - ow)) * 0.5 * -ax);
-  }
-if (zgc->y > -1.0)
+if (zgc->moving)
+  _site_gadget_resize(zgc->gadget, w, h, , , , );
+else
   {
- gy = zgc->y * h;
- gy += (Evas_Coord)(((double)(hh - oh)) * 0.5 * -ay);
+ _site_gadget_resize(zgc->gadget, w * zgc->w, h * zgc->h, , 
, , );
+ if (zgc->x > -1.0)
+   {
+  gx = zgc->x * w;
+  gx += (Evas_Coord)(((double)(ww - ow)) * 0.5 * -ax);
+   }
+ if (zgc->y > -1.0)
+   {
+  gy = zgc->y * h;
+  gy += (Evas_Coord)(((double)(hh - oh)) * 0.5 * -ay);
+   }
   }
 if (zgs->gravity)
   {

-- 




[EGIT] [core/enlightenment] master 01/06: set gadget added flag any time a gadget is created or wizarded

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 42056009a50174a6dd3e864c67ae91432b561b0f
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 14:32:20 2016 -0400

set gadget added flag any time a gadget is created or wizarded

ensure that desktop gadget editor doesn't exit when attempting to add
subsequent gadgets
---
 src/bin/e_gadget.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index 45fe094..5196963 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -297,6 +297,7 @@ _gadget_object_create(E_Gadget_Config *zgc)
 if (t->wizard)
   {
  t->wizard(_gadget_wizard_end, zgc);
+ added = 1;
  return EINA_TRUE;
   }
  }
@@ -306,6 +307,7 @@ _gadget_object_create(E_Gadget_Config *zgc)
 */
g = t->cb(zgc->site->layout, >id, zgc->site->orient);
EINA_SAFETY_ON_NULL_RETURN_VAL(g, EINA_FALSE);
+   added = 1;
 
zgc->e_obj_inherit = E_OBJECT_ALLOC(E_Object, E_GADGET_TYPE, 
_gadget_object_free);
e_object_data_set(zgc->e_obj_inherit, g);

-- 




[EGIT] [core/enlightenment] master 06/06: check visibility of gadget site 'events' member to determine drop availability

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 682dd5f8355d0e4f688114adefb465d8c59e5c80
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 15:04:47 2016 -0400

check visibility of gadget site 'events' member to determine drop 
availability

the layout object of a gadget site does not need to be visible since it may 
be
used for desktop gadgets or a transparent overlay
---
 src/bin/e_gadget.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index 20d85fe..2114337 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -1771,7 +1771,7 @@ _editor_pointer_button(Gadget_Item *active, int t 
EINA_UNUSED, Ecore_Event_Mouse
  EINA_LIST_FOREACH(sites->sites, l, zgs)
{
   if (!zgs->layout) continue;
-  if (!evas_object_visible_get(zgs->layout)) continue;
+  if (!evas_object_visible_get(zgs->events)) continue;
   evas_object_geometry_get(zgs->layout, , , , );
   if (!E_INSIDE(ev->x, ev->y, x, y, w, h)) continue;
   /* FIXME: technically not accurate since objects on the same 
layer

-- 




[EGIT] [core/enlightenment] master 03/06: force smart calc on gadget sites at key points during move operations

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 8923415f8b9ae3085b2ecee72707b8f75da458d7
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 14:54:35 2016 -0400

force smart calc on gadget sites at key points during move operations

ensure that gadget info and visuals match up
---
 src/bin/e_gadget.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index 1382a19..7333e10 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -642,6 +642,7 @@ _gadget_act_resize_end(E_Object *obj, const char *params 
EINA_UNUSED, E_Binding_
zgc->moving = 0;
 
E_FREE_FUNC(zgc->site->move_handler, ecore_event_handler_del);
+   evas_object_smart_need_recalculate_set(zgc->site->layout, 1);
return EINA_TRUE;
 }
 
@@ -905,6 +906,8 @@ _site_drop(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info)
evas_pointer_canvas_xy_get(e_comp->evas, , );
evas_object_geometry_get(zgs->layout, , , , );
if (!E_INSIDE(mx, my, x, y, w, h)) return;
+   if (evas_object_smart_need_recalculate_get(event_info))
+ evas_object_smart_calculate(event_info);
EINA_LIST_FOREACH(zgs->gadgets, l, zgc)
  {
 if (!zgc->display) continue;
@@ -1805,6 +1808,8 @@ _editor_pointer_move(Gadget_Item *active EINA_UNUSED, int 
t EINA_UNUSED, Ecore_E
 
evas_object_geometry_get(pointer_site, NULL, NULL, , );
evas_object_move(pointer_site, ev->x - (w / 2), ev->y - (h / 2));
+   if (!e_gadget_site_orient_get(pointer_site))
+ evas_object_smart_need_recalculate_set(pointer_site, 1);
return ECORE_CALLBACK_RENEW;
 }
 

-- 




[EGIT] [core/enlightenment] master 04/06: attempt to retain gadget size when executing move operations

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit d4450d8eb6463affef173990f045072b8c83a482
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 14:55:28 2016 -0400

attempt to retain gadget size when executing move operations
---
 src/bin/e_gadget.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index 7333e10..59260b4 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -651,6 +651,7 @@ _gadget_act_move(E_Object *obj, const char *params 
EINA_UNUSED, E_Binding_Event_
 {
E_Gadget_Config *zgc, *z;
Evas_Object *g;
+   int w, h;
 
if (obj->type != E_GADGET_TYPE) return EINA_FALSE;
 
@@ -663,6 +664,8 @@ _gadget_act_move(E_Object *obj, const char *params 
EINA_UNUSED, E_Binding_Event_
ZGS_GET(pointer_site);
_gadget_util_add(zgs, zgc->type, zgc->id);
z = eina_list_data_get(zgs->gadgets);
+   evas_object_geometry_get(g, NULL, NULL, , );
+   evas_object_resize(pointer_site, w, h);
eina_stringshare_refplace(>style.name, zgc->style.name);
z->orig = zgc;
return EINA_TRUE;

-- 




[EGIT] [core/enlightenment] master 05/06: adjust gadget drop coords for pointer offset

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit b5701bdb1b585aed7517061fe886da2e0791747e
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 14:55:53 2016 -0400

adjust gadget drop coords for pointer offset

gadgets are centered on the pointer when moved, so the drop coord needs to
then be uncentered to avoid unintended movement
---
 src/bin/e_gadget.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index 59260b4..20d85fe 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -1035,8 +1035,8 @@ _site_drop(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info)
   zgs->gadget_list = eina_inlist_append(zgs->gadget_list,
 EINA_INLIST_GET(dzgc));
   zgs->gadgets = eina_list_append(zgs->gadgets, dzgc);
-  dzgc->x = ((gx - dx) / (double)dw) + ((mx - x) / (double)w);
-  dzgc->y = ((gy - dy) / (double)dh) + ((my - y) / (double)h);
+  dzgc->x = ((gx - dx) / (double)dw) + ((mx - x - (mx - gx)) / 
(double)w);
+  dzgc->y = ((gy - dy) / (double)dh) + ((my - y - (my - gy)) / 
(double)h);
   dzgc->w = gw / (double)w;
   dzgc->h = gh / (double)h;
   dzgc->site = zgs;

-- 




[EGIT] [tools/eflete] master 01/01: UI/UX: update sizes of libraries.

2016-09-19 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

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

commit 9b2588764b6efbf185920282016370cb3658974a
Author: Mykyta Biliavskyi 
Date:   Mon Sep 19 20:56:31 2016 +0300

UI/UX: update sizes of libraries.

Property block now is 400px.
---
 data/themes/tizen/widgets/inwin.edc   | 2 +-
 data/themes/tizen/widgets/layouts/manager.edc | 4 ++--
 src/bin/ui/colorclass_manager.c   | 2 +-
 src/bin/ui/image_manager.c| 2 +-
 src/bin/ui/sound_manager.c| 2 +-
 src/bin/ui/style_manager.c| 2 +-
 6 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/data/themes/tizen/widgets/inwin.edc 
b/data/themes/tizen/widgets/inwin.edc
index 268d1cf..4e94c20 100644
--- a/data/themes/tizen/widgets/inwin.edc
+++ b/data/themes/tizen/widgets/inwin.edc
@@ -46,7 +46,7 @@ group { name: "elm/win/inwin/modal_window";
   part { name: "bg";
  type: RECT;
  description { state: "default" 0.0;
-max: 960 625;
+max: 1005 625;
 rel1.relative: 0.1 0.1;
 rel2.relative: 0.9 0.9;
  }
diff --git a/data/themes/tizen/widgets/layouts/manager.edc 
b/data/themes/tizen/widgets/layouts/manager.edc
index 4e78c59..ae36bc3 100644
--- a/data/themes/tizen/widgets/layouts/manager.edc
+++ b/data/themes/tizen/widgets/layouts/manager.edc
@@ -251,8 +251,8 @@ group { name: "elm/layout/manager/property";
  type: RECT;
  description { state: "default" 0.0;
 align: 0.5 0.0;
-min: 355 480;
-max: 355 -1;
+min: 400 480;
+max: 400 -1;
 color_class: "manager_content_border";
 rel1 {
relative: 0.0 1.0;
diff --git a/src/bin/ui/colorclass_manager.c b/src/bin/ui/colorclass_manager.c
index 757e0f2..dcab7d5 100644
--- a/src/bin/ui/colorclass_manager.c
+++ b/src/bin/ui/colorclass_manager.c
@@ -458,7 +458,7 @@ colorclass_manager_add(void)
elm_layout_text_set(mng.layout, "elm.subtext", _("Color classes list"));
mng.panes = elm_panes_add(mng.win);
elm_panes_content_right_size_set(mng.panes, 0);
-   elm_panes_content_right_min_size_set(mng.panes, 355);
+   elm_panes_content_right_min_size_set(mng.panes, 400);
elm_object_content_set(mng.win, mng.panes);
elm_object_part_content_set(mng.panes, "left", mng.layout);
elm_object_part_content_set(mng.panes, "right", ap.property.color_manager);
diff --git a/src/bin/ui/image_manager.c b/src/bin/ui/image_manager.c
index 3b0d6fa..082ba25 100644
--- a/src/bin/ui/image_manager.c
+++ b/src/bin/ui/image_manager.c
@@ -532,7 +532,7 @@ image_manager_add(void)
elm_layout_text_set(mng.layout, "elm.subtext", _("Image Gallery"));
mng.panes = elm_panes_add(mng.win);
elm_panes_content_right_size_set(mng.panes, 0);
-   elm_panes_content_right_min_size_set(mng.panes, 355);
+   elm_panes_content_right_min_size_set(mng.panes, 400);
elm_object_style_set(mng.panes, "manager");
elm_object_part_content_set(mng.panes, "left", mng.layout);
elm_object_part_content_set(mng.panes, "right", ap.property.image_manager);
diff --git a/src/bin/ui/sound_manager.c b/src/bin/ui/sound_manager.c
index 3bf1fc8..ceb9148 100644
--- a/src/bin/ui/sound_manager.c
+++ b/src/bin/ui/sound_manager.c
@@ -594,7 +594,7 @@ sound_manager_add(void)
elm_object_part_content_set(mng.property_panes, "right", 
ap.property.sound_manager);
 #endif
elm_panes_content_right_size_set(mng.panes, 0);
-   elm_panes_content_right_min_size_set(mng.panes, 355);
+   elm_panes_content_right_min_size_set(mng.panes, 400);
 
if (!gic)
  {
diff --git a/src/bin/ui/style_manager.c b/src/bin/ui/style_manager.c
index b4099fa..ef11b1a 100644
--- a/src/bin/ui/style_manager.c
+++ b/src/bin/ui/style_manager.c
@@ -830,7 +830,7 @@ style_manager_add()
elm_layout_text_set(mng.layout, "elm.subtext", _("Font list"));
mng.panes = elm_panes_add(mng.win);
elm_panes_content_right_size_set(mng.panes, 0);
-   elm_panes_content_right_min_size_set(mng.panes, 355);
+   elm_panes_content_right_min_size_set(mng.panes, 400);
elm_object_style_set(mng.panes, "manager");
elm_object_part_content_set(mng.panes, "left", mng.layout);
elm_object_part_content_set(mng.panes, "right", ap.property.style_manager);

-- 




Re: [E-devel] socks proxy: bind usage

2016-09-19 Thread Gustavo Sverzut Barbieri
 :-)

I'm testing against Dante, it does authentication and also hostname
(v5). It seems like the recommended SOCKS proxy for UNIX... would be
nice to test with some windows version, just to be sure

On Mon, Sep 19, 2016 at 2:28 PM, Mike Blumenkrantz
 wrote:
> I would, but I wrote it so long ago that I have zero memories of anything
> related to it. I tested against ssh/d and that was enough then, so I'd guess
> it should be enough to verify anything you do now.
>
> On Mon, Sep 19, 2016 at 1:22 PM Gustavo Sverzut Barbieri
>  wrote:
>>
>> Nice zmike,
>>
>> Then I'm leaving it out and I kindly request that you give it a review, or
>> at least a test since likely you found some bugs during your development and
>> you can check if I had them in my code.
>>
>>
>> Em segunda-feira, 19 de setembro de 2016, Michael Blumenkrantz
>>  escreveu:
>>>
>>> On Sun, 18 Sep 2016 23:21:38 -0300
>>> Gustavo Sverzut Barbieri  wrote:
>>>
>>> > Hi all,
>>> >
>>> > I'm implementing the proxy for the new efl_net API and while reading
>>> > the old code and the SOCKS spec I'm confused about the bind usage.
>>> >
>>> > According to the spec https://tools.ietf.org/html/rfc1928:
>>> >
>>> >The BIND request is used in protocols which require the client to
>>> >accept connections from the server.  FTP is a well-known example,
>>> >which uses the primary client-to-server connection for commands and
>>> >status reports, but may use a server-to-client connection for
>>> >transferring data on demand (e.g. LS, GET, PUT).
>>> >
>>> >It is expected that the client side of an application protocol will
>>> >use the BIND request only to establish secondary connections after a
>>> >primary connection is established using CONNECT.  In is expected
>>> > that
>>> >a SOCKS server will use DST.ADDR and DST.PORT in evaluating the BIND
>>> >request.
>>> >
>>> > This does not work to create a random server via the proxy, after all
>>> > you can't accept multiple connections.
>>> >
>>> > In old code, to enable bind one had to call
>>> > ecore_con_socks_bind_set(), but none of efl.git does that. Likely that
>>> > is untested.
>>> >
>>> > Then I'm wondering if I should bother to implement this at all. The
>>> > code to implement it is not that much, but it won't be used unless I
>>> > can understand how to expose this in our API, currently we can connect
>>> > to some server (ie: Efl.Net.Dialer) or be the server (ie:
>>> > Efl.Net.Server), there is no "dialer that connect back", not eve sure
>>> > how to call that braindead idea of FTP :-/
>>> >
>>> >
>>> >
>>>
>>> I wrote all the existing SOCKS code in ecore. My tests (many years ago)
>>> of all the apis were against openssh.
>>>
>>> I added it for completeness at the time since I was primarily doing the
>>> client-side parts. I'm skeptical that it would ever be used.
>>
>>
>> --
>> Gustavo Sverzut Barbieri
>> --
>> Mobile: +55 (16) 99354-9890
>>
>>
>



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

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


[EGIT] [tools/eflete] master 01/01: Tizen: update shortcut popup accordingly to guidelines.

2016-09-19 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

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

commit 4c0ce155ebfced6dcbf48b542114aee8135e1c5b
Author: Mykyta Biliavskyi 
Date:   Mon Sep 19 20:13:15 2016 +0300

Tizen: update shortcut popup accordingly to guidelines.
---
 data/themes/tizen/widgets/genlist.edc | 134 +
 data/themes/tizen/widgets/layout.edc  |  12 +++
 data/themes/tizen/widgets/popup.edc   | 119 +
 src/bin/ui/main_window.c  | 138 +-
 4 files changed, 402 insertions(+), 1 deletion(-)

diff --git a/data/themes/tizen/widgets/genlist.edc 
b/data/themes/tizen/widgets/genlist.edc
index 4d6deb6..235bf4b 100644
--- a/data/themes/tizen/widgets/genlist.edc
+++ b/data/themes/tizen/widgets/genlist.edc
@@ -5,6 +5,140 @@
 #define BG_COLOR 39 42 43 255
 #define LIST_ITEM_REORDERED_COLOR 200 150 0 255
 
+group { name: "elm/genlist/item/group_index/default";
+   data {
+  item: "texts" "elm.text";
+  item: "treesize " "0";
+  item: "contents" "";
+  item: "stacking" "above";
+  item: "selectraise" "off";
+   }
+   parts {
+  part { name: "bg";
+ type: RECT;
+ description { state: "default" 0.0;
+color_class: "manager_bg";
+rel2.to_y: "separator";
+ }
+  }
+  part { name: "elm.swallow.pad";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+align: 0.0 0.5;
+fixed: 1 0;
+rel1.offset: 20 0;
+rel2.relative: 0.0 1.0;
+ }
+  }
+  part { name: "elm.text";
+ type: TEXT;
+ description {state: "default" 0.0;
+color_class: "button_text";
+text {
+   font: FN_B;
+   size: 13;
+   min: 1 1;
+   max: 1 1;
+   align: 0 0.5;
+   ellipsis: -1;
+}
+align: 0 0;
+rel1.offset: 30 0;
+ }
+  }
+  part { name: "separator";
+ type: RECT;
+ description { state: "default" 0.0;
+color_class: "border";
+min: 0 1;
+max: 360 1;
+align: 0 0;
+rel1.to: "elm.text";
+rel1.relative: 0 1;
+rel1.offset: 0 10;
+rel2.offset: -31 0;
+ }
+  }
+  part { name: "elm.text.size";
+ type: TEXT;
+ description {state: "default" 0.0;
+color: 0 0 0 0;
+text {
+   font: FN;
+   size: 8;
+   min: 1 1;
+   max: 1 1;
+   align: 0 0.5;
+   ellipsis: -1;
+}
+align: 0 0;
+rel1.to: "separator";
+ }
+  }
+}
+}
+
+group { name: "elm/genlist/item/shortcuts/default";
+   data {
+  item: "texts" "elm.text";
+  item: "treesize " "0";
+  item: "contents" "";
+  item: "stacking" "above";
+  item: "selectraise" "off";
+   }
+   parts {
+  part { name: "elm.swallow.pad";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+align: 0.0 0.5;
+fixed: 1 0;
+rel1.offset: 20 0;
+rel2.relative: 0.0 1.0;
+ }
+  }
+  part { name: "elm.text";
+ type: TEXT;
+ description {state: "default" 0.0;
+color: 88 88 88 255;
+text {
+   font: FN;
+   size: 13;
+   min: 1 1;
+   max: 1 1;
+   align: 0 0.5;
+   ellipsis: -1;
+}
+align: 0 0.5;
+rel1.offset: 30 0;
+ }
+  }
+   }
+}
+group { name: "elm/genlist/item/empty/default";
+   data {
+  item: "texts" "";
+  item: "treesize " "0";
+  item: "contents" "";
+  item: "stacking" "above";
+  item: "selectraise" "off";
+   }
+   parts {
+ part { name: "elm.text";
+ type: TEXT;
+ description {state: "default" 0.0;
+color: 0 0 0 0;
+text {
+   text: "M";
+   font: FN;
+   size: 21;
+   min: 1 1;
+   max: 1 1;
+   ellipsis: -1;
+}
+ }
+  }
+   }
+}
 /*   group { name: "elm/genlist/item/default/default";
   data {
  item: "texts" "elm.text";
diff --git a/data/themes/tizen/widgets/layout.edc 
b/data/themes/tizen/widgets/layout.edc
index 1b54d02..ccafba7 100644
--- a/data/themes/tizen/widgets/layout.edc
+++ b/data/themes/tizen/widgets/layout.edc
@@ -2257,6 +2257,18 @@ group { name: "elm/layout/about/default";
}
 }
 
+group { name: "elm/layout/shortcuts/default";
+   parts {
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+min: 420 420;
+max: 420 420;
+   

Re: [E-devel] socks proxy: bind usage

2016-09-19 Thread Mike Blumenkrantz
I would, but I wrote it so long ago that I have zero memories of anything
related to it. I tested against ssh/d and that was enough then, so I'd
guess it should be enough to verify anything you do now.

On Mon, Sep 19, 2016 at 1:22 PM Gustavo Sverzut Barbieri 
wrote:

> Nice zmike,
>
> Then I'm leaving it out and I kindly request that you give it a review, or
> at least a test since likely you found some bugs during your development
> and you can check if I had them in my code.
>
>
> Em segunda-feira, 19 de setembro de 2016, Michael Blumenkrantz <
> michael.blumenkra...@gmail.com> escreveu:
>
>> On Sun, 18 Sep 2016 23:21:38 -0300
>> Gustavo Sverzut Barbieri  wrote:
>>
>> > Hi all,
>> >
>> > I'm implementing the proxy for the new efl_net API and while reading
>> > the old code and the SOCKS spec I'm confused about the bind usage.
>> >
>> > According to the spec https://tools.ietf.org/html/rfc1928:
>> >
>> >The BIND request is used in protocols which require the client to
>> >accept connections from the server.  FTP is a well-known example,
>> >which uses the primary client-to-server connection for commands and
>> >status reports, but may use a server-to-client connection for
>> >transferring data on demand (e.g. LS, GET, PUT).
>> >
>> >It is expected that the client side of an application protocol will
>> >use the BIND request only to establish secondary connections after a
>> >primary connection is established using CONNECT.  In is expected that
>> >a SOCKS server will use DST.ADDR and DST.PORT in evaluating the BIND
>> >request.
>> >
>> > This does not work to create a random server via the proxy, after all
>> > you can't accept multiple connections.
>> >
>> > In old code, to enable bind one had to call
>> > ecore_con_socks_bind_set(), but none of efl.git does that. Likely that
>> > is untested.
>> >
>> > Then I'm wondering if I should bother to implement this at all. The
>> > code to implement it is not that much, but it won't be used unless I
>> > can understand how to expose this in our API, currently we can connect
>> > to some server (ie: Efl.Net.Dialer) or be the server (ie:
>> > Efl.Net.Server), there is no "dialer that connect back", not eve sure
>> > how to call that braindead idea of FTP :-/
>> >
>> >
>> >
>>
>> I wrote all the existing SOCKS code in ecore. My tests (many years ago)
>> of all the apis were against openssh.
>>
>> I added it for completeness at the time since I was primarily doing the
>> client-side parts. I'm skeptical that it would ever be used.
>>
>
> --
> Gustavo Sverzut Barbieri
> --
> Mobile: +55 (16) 99354-9890
>
>
>
--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] socks proxy: bind usage

2016-09-19 Thread Gustavo Sverzut Barbieri
Nice zmike,

Then I'm leaving it out and I kindly request that you give it a review, or
at least a test since likely you found some bugs during your development
and you can check if I had them in my code.

Em segunda-feira, 19 de setembro de 2016, Michael Blumenkrantz <
michael.blumenkra...@gmail.com> escreveu:

> On Sun, 18 Sep 2016 23:21:38 -0300
> Gustavo Sverzut Barbieri > wrote:
>
> > Hi all,
> >
> > I'm implementing the proxy for the new efl_net API and while reading
> > the old code and the SOCKS spec I'm confused about the bind usage.
> >
> > According to the spec https://tools.ietf.org/html/rfc1928:
> >
> >The BIND request is used in protocols which require the client to
> >accept connections from the server.  FTP is a well-known example,
> >which uses the primary client-to-server connection for commands and
> >status reports, but may use a server-to-client connection for
> >transferring data on demand (e.g. LS, GET, PUT).
> >
> >It is expected that the client side of an application protocol will
> >use the BIND request only to establish secondary connections after a
> >primary connection is established using CONNECT.  In is expected that
> >a SOCKS server will use DST.ADDR and DST.PORT in evaluating the BIND
> >request.
> >
> > This does not work to create a random server via the proxy, after all
> > you can't accept multiple connections.
> >
> > In old code, to enable bind one had to call
> > ecore_con_socks_bind_set(), but none of efl.git does that. Likely that
> > is untested.
> >
> > Then I'm wondering if I should bother to implement this at all. The
> > code to implement it is not that much, but it won't be used unless I
> > can understand how to expose this in our API, currently we can connect
> > to some server (ie: Efl.Net.Dialer) or be the server (ie:
> > Efl.Net.Server), there is no "dialer that connect back", not eve sure
> > how to call that braindead idea of FTP :-/
> >
> >
> >
>
> I wrote all the existing SOCKS code in ecore. My tests (many years ago) of
> all the apis were against openssh.
>
> I added it for completeness at the time since I was primarily doing the
> client-side parts. I'm skeptical that it would ever be used.
>


-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890
--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] socks proxy: bind usage

2016-09-19 Thread Michael Blumenkrantz
On Sun, 18 Sep 2016 23:21:38 -0300
Gustavo Sverzut Barbieri  wrote:

> Hi all,
> 
> I'm implementing the proxy for the new efl_net API and while reading
> the old code and the SOCKS spec I'm confused about the bind usage.
> 
> According to the spec https://tools.ietf.org/html/rfc1928:
> 
>The BIND request is used in protocols which require the client to
>accept connections from the server.  FTP is a well-known example,
>which uses the primary client-to-server connection for commands and
>status reports, but may use a server-to-client connection for
>transferring data on demand (e.g. LS, GET, PUT).
> 
>It is expected that the client side of an application protocol will
>use the BIND request only to establish secondary connections after a
>primary connection is established using CONNECT.  In is expected that
>a SOCKS server will use DST.ADDR and DST.PORT in evaluating the BIND
>request.
> 
> This does not work to create a random server via the proxy, after all
> you can't accept multiple connections.
> 
> In old code, to enable bind one had to call
> ecore_con_socks_bind_set(), but none of efl.git does that. Likely that
> is untested.
> 
> Then I'm wondering if I should bother to implement this at all. The
> code to implement it is not that much, but it won't be used unless I
> can understand how to expose this in our API, currently we can connect
> to some server (ie: Efl.Net.Dialer) or be the server (ie:
> Efl.Net.Server), there is no "dialer that connect back", not eve sure
> how to call that braindead idea of FTP :-/
> 
> 
> 

I wrote all the existing SOCKS code in ecore. My tests (many years ago) of all 
the apis were against openssh.

I added it for completeness at the time since I was primarily doing the 
client-side parts. I'm skeptical that it would ever be used.

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


[EGIT] [core/efl] master 01/01: eina_cpu: Fix coverity defects in eina_cpu_map_init

2016-09-19 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 9799d45ee7ecc9667fe079ab8121ca9da008db3e
Author: Derek Foreman 
Date:   Mon Sep 19 10:34:44 2016 -0500

eina_cpu: Fix coverity defects in eina_cpu_map_init

Fixes a potential fd leak on failure and wrong core to
speed mapping on systems with > 31 cpu cores

CID: 1362860
CID: 1362859
CID: 1362857
---
 src/lib/eina/eina_cpu.c | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/lib/eina/eina_cpu.c b/src/lib/eina/eina_cpu.c
index b5e6b90..9f4ab4b 100644
--- a/src/lib/eina/eina_cpu.c
+++ b/src/lib/eina/eina_cpu.c
@@ -323,6 +323,7 @@ eina_cpu_map_init(void)
fastest_core_speed = -1;
 
 #if defined (__linux__) || defined(__GLIBC__)
+   FILE *f = NULL;
Eina_Iterator *it;
Eina_Strbuf *fname;
const Eina_File_Direct_Info *f_info;
@@ -339,7 +340,6 @@ eina_cpu_map_init(void)
 eina_str_has_prefix(f_info->path,
 "/sys/devices/system/cpu/cpufreq/policy"))
   {
- FILE *f;
  int num, speed;
 
  eina_strbuf_append_printf(fname, "%s%s", f_info->path, 
"/cpuinfo_max_freq");
@@ -349,6 +349,7 @@ eina_cpu_map_init(void)
  speed = -1;
  num = fscanf(f, "%d", );
  fclose(f);
+ f = NULL;
  if ((num != 1) || (speed == -1)) goto err;
 
  slowest_core_speed = MIN(speed, slowest_core_speed);
@@ -370,15 +371,17 @@ eina_cpu_map_init(void)
 {
corelist = malloc(sizeof(*corelist));
if (!corelist) goto err;
-   *corelist = 1 << core;
+   *corelist = 1LL << core;
eina_hash_add(cpu_hash, , corelist);
 }
-  *corelist |= 1 << core;
+  *corelist |= 1LL << core;
} while (num != EOF);
  fclose(f);
+ f = NULL;
   }
  }
 err:
+   if (f) fclose(f);
eina_strbuf_free(fname);
eina_iterator_free(it);
 #endif

-- 




[EGIT] [core/efl] master 01/01: edje_edit: make tweens able to work with image sets

2016-09-19 Thread Vitalii Vorobiov
furrymyad pushed a commit to branch master.

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

commit b324b754f3390e2ba7404bcc27e59d43514c5a0f
Author: Vitalii Vorobiov 
Date:   Mon Sep 19 18:09:13 2016 +0300

edje_edit: make tweens able to work with image sets

it's important because some tweens of loaded edje group might use image sets
instead of images, so now making edje_edit API to work with them correctly

@fix
---
 src/lib/edje/edje_edit.c | 13 -
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 1ef59ab..edbe5cd 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -10263,6 +10263,7 @@ edje_edit_state_tween_add(Evas_Object *obj, const char 
*part, const char *state,
Edje_Part_Image_Id **tmp;
Edje_Part_Image_Id *i;
int id;
+   Eina_Bool set = EINA_FALSE;
 
GET_PD_OR_RETURN(EINA_FALSE);
 
@@ -10270,12 +10271,19 @@ edje_edit_state_tween_add(Evas_Object *obj, const 
char *part, const char *state,
  return EINA_FALSE;
 
id = _edje_image_id_find(eed, tween);
+   if (id < EINA_FALSE)
+ {
+set = EINA_TRUE;
+id = _edje_set_id_find(eed, tween);
+ }
+
if (id < EINA_FALSE) return 0;
 
/* alloc Edje_Part_Image_Id */
i = _alloc(sizeof(Edje_Part_Image_Id));
if (!i) return EINA_FALSE;
i->id = id;
+   i->set = set;
 
img = (Edje_Part_Description_Image *)pd;
 
@@ -10361,7 +10369,10 @@ edje_edit_state_tween_del(Evas_Object *obj, const char 
*part, const char *state,
 
if (!img->image.tweens_count) return EINA_FALSE;
 
-   search = _edje_image_id_find(eed, tween);
+   search = _edje_set_id_find(eed, tween);
+   if (search < 0)
+ search = _edje_image_id_find(eed, tween);
+
if (search < 0) return EINA_FALSE;
 
for (i = 0; i < img->image.tweens_count; ++i)

-- 




[EGIT] [tools/eflete] master 02/02: signals: move used eflete_widget signals to signals struct

2016-09-19 Thread Andrii Kroitor
rimmed pushed a commit to branch master.

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

commit 8b03d81a33acda0e1da40f3bb04ad0ab898bec75
Author: Andrii Kroitor 
Date:   Mon Sep 19 17:12:16 2016 +0300

signals: move used eflete_widget signals to signals struct
---
 src/bin/common/signals.c  | 33 ++
 src/bin/common/signals.h  | 34 +++
 src/bin/ui/colorclass_manager.c   |  4 ++--
 src/bin/ui/image_manager.c|  4 ++--
 src/bin/ui/modal_window/modal_window.c| 11 -
 src/bin/ui/property/property_color_control.c  |  4 ++--
 src/bin/ui/property/property_common.c | 10 
 src/bin/ui/property/property_common_image.c   |  2 +-
 src/bin/ui/property/property_common_tween.c   |  4 ++--
 src/bin/ui/property/property_image_selector.c |  2 +-
 src/bin/ui/sound_manager.c|  4 ++--
 src/bin/ui/style_manager.c|  4 ++--
 src/bin/ui/workspace/container.c  | 17 --
 src/bin/ui/workspace/groupview.c  |  6 ++---
 src/bin/ui/workspace/highlight.c  |  6 ++---
 src/bin/ui/workspace/workspace.c  |  2 +-
 16 files changed, 101 insertions(+), 46 deletions(-)

diff --git a/src/bin/common/signals.c b/src/bin/common/signals.c
index d1f9242..4407337 100644
--- a/src/bin/common/signals.c
+++ b/src/bin/common/signals.c
@@ -81,6 +81,39 @@ const Signals signals = {
   },
  },
 
+ .eflete = {
+  .modal_window = {
+   .done   = "[eflete]done",
+   .cancel = "[eflete]cancel",
+   .show_animation_finished= "[eflete]show,animation,finished",
+   .hide_animation_finished= "[eflete]hide,animation,finished",
+  },
+  .container = {
+   .changed= "[eflete]changed",
+   .handler_br_moved   = "[eflete]handler,BR,moved",
+  },
+  .highlight = {
+   .drag_start = "[eflete]hl,drag,start",
+   .drag_stop  = "[eflete]hl,drag,stop",
+   .changed= "[eflete]changed",
+  },
+  .property = {
+   .color_control = {
+.changed   = "[eflete]color,changed",
+.dismissed = "[eflete]color,dismissed",
+   },
+   .image_normal_control = {
+.changed   = "[eflete]image,normal,changed",
+   },
+   .image_tween_control = {
+.changed   = "[eflete]image,tween,changed",
+   },
+   .image_selector = {
+.changed   = "[eflete]image,selector,changed",
+   },
+  },
+ },
+
  .elm = {
   .spinner = {
.changed= "changed",
diff --git a/src/bin/common/signals.h b/src/bin/common/signals.h
index 4fa4d26..35492be 100644
--- a/src/bin/common/signals.h
+++ b/src/bin/common/signals.h
@@ -80,6 +80,40 @@ typedef struct {
  } zoom;
   } workspace;
} shortcut;
+
+   const struct {
+  const struct {
+ const char *done;
+ const char *cancel;
+ const char *show_animation_finished;
+ const char *hide_animation_finished;
+  } modal_window;
+  const struct {
+ const char *changed;
+ const char *handler_br_moved;
+  } container;
+  const struct {
+ const char *drag_start;
+ const char *drag_stop;
+ const char *changed;
+  } highlight;
+  const struct {
+ const struct {
+const char *changed;
+const char *dismissed;
+ } color_control;
+ const struct {
+const char *changed;
+ } image_normal_control;
+ const struct {
+const char *changed;
+ } image_tween_control;
+ const struct {
+const char *changed;
+ } image_selector;
+  } property;
+   } eflete;
+
const struct {
   const struct {
  const char *changed;
diff --git a/src/bin/ui/colorclass_manager.c b/src/bin/ui/colorclass_manager.c
index 312300a..757e0f2 100644
--- a/src/bin/ui/colorclass_manager.c
+++ b/src/bin/ui/colorclass_manager.c
@@ -443,8 +443,8 @@ colorclass_manager_add(void)
/* Creating main layout of window */
mng.win = mw_add();
mw_title_set(mng.win, _("Color class manager"));
-   evas_object_smart_callback_add(mng.win, "cancel", _mw_cancel_cb, NULL);
-   evas_object_smart_callback_add(mng.win, "done", _mw_done_cb, NULL);
+   evas_object_smart_callback_add(mng.win, signals.eflete.modal_window.cancel, 
_mw_cancel_cb, NULL);
+   evas_object_smart_callback_add(mng.win, signals.eflete.modal_window.done, 

[EGIT] [tools/enventor] master 01/01: fix broken batman svg resource.

2016-09-19 Thread Hermet Park
hermet pushed a commit to branch master.

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

commit 2ee529fde26878d3c421d4d016e421a6c2967473
Author: Hermet Park 
Date:   Mon Sep 19 23:41:41 2016 +0900

fix broken batman svg resource.

correct missing '/' at the end of svg tag.
---
 data/images/ENVENTOR_EMBEDDED_BAT2.svg | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/data/images/ENVENTOR_EMBEDDED_BAT2.svg 
b/data/images/ENVENTOR_EMBEDDED_BAT2.svg
index 852764b..333bb08 100644
--- a/data/images/ENVENTOR_EMBEDDED_BAT2.svg
+++ b/data/images/ENVENTOR_EMBEDDED_BAT2.svg
@@ -1,3 +1,3 @@
 http://www.w3.org/2000/svg; stroke-linejoin="round" viewBox="50 
-100 500 500">
-
+
 

-- 




[EGIT] [core/efl] master 01/01: render_thread: Attempt to set affinity to a random fast core

2016-09-19 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 541b72dcb2aa7a0a09c6b57603da2800d8caac01
Author: Derek Foreman 
Date:   Mon Sep 19 09:39:35 2016 -0500

render_thread: Attempt to set affinity to a random fast core

We've been pinning the render thread for every EFL process to core 0.
This is a bit silly in the first place, but some big.LITTLE arm systems,
such as exynos 5422, have the LITTLE cores first.

On those systems we put all the render threads on a slow core.

This attempts to fix that by using a random core from the pool of fast
cores.

If we can't determine which cores are fast (ie: we're not on a
linux kernel with cpufreq enabled) then we'll continue doing what we've
always done - pin to core 0.
---
 src/lib/evas/common/evas_thread_render.c | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/common/evas_thread_render.c 
b/src/lib/evas/common/evas_thread_render.c
index 623e40e..3489c5a 100644
--- a/src/lib/evas/common/evas_thread_render.c
+++ b/src/lib/evas/common/evas_thread_render.c
@@ -1,4 +1,5 @@
 #include "evas_common_private.h"
+#include "eina_cpu_private.h"
 
 #include 
 
@@ -125,6 +126,7 @@ out:
 void
 evas_thread_init(void)
 {
+int core;
 if (init_count++) return;
 
 eina_threads_init();
@@ -135,7 +137,13 @@ evas_thread_init(void)
   CRI("Could not create draw thread lock");
 if (!eina_condition_new(_thread_queue_condition, 
_thread_queue_lock))
   CRI("Could not create draw thread condition");
-if (!eina_thread_create(_thread_worker, EINA_THREAD_NORMAL, 0,
+
+core = _eina_cpu_fast_core_get();
+/* Keep previous behaviour of pinning to core 0 if finding a fast
+ * core fails.
+ */
+if (core < 0) core = 0;
+if (!eina_thread_create(_thread_worker, EINA_THREAD_NORMAL, core,
   evas_thread_worker_func, NULL))
   if (!eina_thread_create(_thread_worker, EINA_THREAD_NORMAL, -1,
 evas_thread_worker_func, NULL))

-- 




[EGIT] [core/efl] master 01/01: edje example: fix broken batman svg resource.

2016-09-19 Thread ChunEon Park
hermet pushed a commit to branch master.

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

commit 2569a8c880773c64857d2e627fafa0daa9a0d47a
Author: Hermet Park 
Date:   Mon Sep 19 23:39:19 2016 +0900

edje example: fix broken batman svg resource.

correct missing '/' at the end of svg tag.
---
 src/examples/edje/batman2.svg | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/examples/edje/batman2.svg b/src/examples/edje/batman2.svg
index 852764b..333bb08 100644
--- a/src/examples/edje/batman2.svg
+++ b/src/examples/edje/batman2.svg
@@ -1,3 +1,3 @@
 http://www.w3.org/2000/svg; stroke-linejoin="round" viewBox="50 
-100 500 500">
-
+
 

-- 




Re: [E-devel] Efl.Net and libproxy

2016-09-19 Thread Gustavo Sverzut Barbieri
On Mon, Sep 19, 2016 at 11:31 AM, Gustavo Sverzut Barbieri
 wrote:
> Hi all,
>
> Today I did commit support for libproxy in ecore_con's new API,
> Efl.Net.Dialer.Tcp, Efl.Net.Dialer.Http and Efl.Net.Dialer.Websocket
> (implicit from HTTP).
>
> Libproxy (https://libproxy.github.io) tries to dynamically find a
> proxy for a given URL, unlike plain $http_proxy, $no_proxy... which
> needs a mess to get right in complex environments such as big
> corporations. It will also use PAC - ProxyAutoConfiguration, those
> JavaScript like files named wpad.dat, as well as the wpad host on the
> local network, where it tries to find the JS file.
>
> More than that, libproxy uses the configuration from Desktop
> Environments. There are none for E (some volunteer?), but we can use
> the one from Gnome3/Gnome or KDE. It will also handle envvars and some
> /etc/sysconf configuration.
>
> Just be aware that libproxy is nasty and will load many crap in your
> application binary, including mozjs to interpret JS mentioned above.
>
> A better solution is to use libproxy replacement from pacrunner
> (http://git.kernel.org/cgit/network/connman/pacrunner.git/), that one
> will only pull in libdbus and the JS is done at the daemon, which also
> keeps shared cache not replicating it in all processes.
>
> Be traditional libproxy or pacrunner's alternative, the current code
> should be more dynamic, however needs more testing. If you work inside
> a proxy, give it a try and report problems, you can use the
> src/examples/ecore/efl_io_copier or efl_net_dialer_http_example to
> test.
>
> It's important to get more testing as in near future I'm converting
> parts of E/EFL that used ecore_con to use this and I don't want to
> break things :-)

Ah, and I forgot to mention that pacrunner is developed by the same
team as connman, so uses its configuration... all nicely integrated
:-)


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

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


[E-devel] Efl.Net and libproxy

2016-09-19 Thread Gustavo Sverzut Barbieri
Hi all,

Today I did commit support for libproxy in ecore_con's new API,
Efl.Net.Dialer.Tcp, Efl.Net.Dialer.Http and Efl.Net.Dialer.Websocket
(implicit from HTTP).

Libproxy (https://libproxy.github.io) tries to dynamically find a
proxy for a given URL, unlike plain $http_proxy, $no_proxy... which
needs a mess to get right in complex environments such as big
corporations. It will also use PAC - ProxyAutoConfiguration, those
JavaScript like files named wpad.dat, as well as the wpad host on the
local network, where it tries to find the JS file.

More than that, libproxy uses the configuration from Desktop
Environments. There are none for E (some volunteer?), but we can use
the one from Gnome3/Gnome or KDE. It will also handle envvars and some
/etc/sysconf configuration.

Just be aware that libproxy is nasty and will load many crap in your
application binary, including mozjs to interpret JS mentioned above.

A better solution is to use libproxy replacement from pacrunner
(http://git.kernel.org/cgit/network/connman/pacrunner.git/), that one
will only pull in libdbus and the JS is done at the daemon, which also
keeps shared cache not replicating it in all processes.

Be traditional libproxy or pacrunner's alternative, the current code
should be more dynamic, however needs more testing. If you work inside
a proxy, give it a try and report problems, you can use the
src/examples/ecore/efl_io_copier or efl_net_dialer_http_example to
test.

It's important to get more testing as in near future I'm converting
parts of E/EFL that used ecore_con to use this and I don't want to
break things :-)


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

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


[EGIT] [core/efl] master 01/01: eina_cpu: Fix error handling in eina_cpu_fast_core_get

2016-09-19 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit bd1de560a1403a3e549938ae244f2f04f7e0b990
Author: Derek Foreman 
Date:   Mon Sep 19 09:23:59 2016 -0500

eina_cpu: Fix error handling in eina_cpu_fast_core_get

I introduced a crash on linux systems where the cpufreq directory
doesn't exist.  This fixes it.
---
 src/lib/eina/eina_cpu.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/lib/eina/eina_cpu.c b/src/lib/eina/eina_cpu.c
index 1de86d8..b5e6b90 100644
--- a/src/lib/eina/eina_cpu.c
+++ b/src/lib/eina/eina_cpu.c
@@ -396,6 +396,9 @@ _eina_cpu_fast_core_get(void)
 
if (fastest_core_speed == 0) eina_cpu_map_init();
 
+   /* Check again now that it's actually set up */
+   if (fastest_core_speed == -1) return -1;
+
corelist = eina_hash_find(cpu_hash, _core_speed);
cores = *corelist;
bit = rand() % __builtin_popcount(cores);

-- 




[EGIT] [tools/eflete] master 01/01: signals: move used elm_widget signals to signals struct

2016-09-19 Thread Andrii Kroitor
rimmed pushed a commit to branch master.

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

commit 83614a462adaf6cde2ed51a09d4488b79a1f019d
Author: Andrii Kroitor 
Date:   Mon Sep 19 16:15:54 2016 +0300

signals: move used elm_widget signals to signals struct
---
 src/bin/common/signals.c   | 158 +++--
 src/bin/common/signals.h   |  74 ++
 src/bin/ui/colorclass_manager.c|  18 +--
 src/bin/ui/history_ui.c|  16 +--
 src/bin/ui/image_manager.c |  10 +-
 src/bin/ui/live_view/elementary/live_ctxpopup.c|   2 +-
 src/bin/ui/live_view/elementary/live_genlist.c |  12 +-
 src/bin/ui/live_view/elementary/live_naviframe.c   |   8 +-
 src/bin/ui/live_view/elementary/live_notify.c  |   2 +-
 .../ui/live_view/elementary/live_widget_common.c   |   8 +-
 src/bin/ui/main_window.c   |   2 +-
 src/bin/ui/modal_window/modal_window.c |  12 +-
 src/bin/ui/popup.c |  24 ++--
 src/bin/ui/project_navigator.c |  26 ++--
 src/bin/ui/property/property.c |  12 +-
 src/bin/ui/property/property_common.c  |  26 ++--
 src/bin/ui/property/property_common_image.c|   4 +-
 src/bin/ui/property/property_common_tween.c|   4 +-
 src/bin/ui/property/property_image_selector.c  |   4 +-
 src/bin/ui/shortcuts/shortcuts.c   |   2 +-
 src/bin/ui/sound_manager.c |  14 +-
 src/bin/ui/sound_player/sound_player.c |   4 +-
 src/bin/ui/splash.c|   2 +-
 src/bin/ui/style_manager.c |  26 ++--
 src/bin/ui/tab_home_common.c   |   2 +-
 src/bin/ui/tab_home_import_edc.c   |  10 +-
 src/bin/ui/tab_home_import_edj.c   |  20 +--
 src/bin/ui/tab_home_info.c |  10 +-
 src/bin/ui/tab_home_new.c  |  10 +-
 src/bin/ui/tab_home_open.c |  12 +-
 src/bin/ui/tabs.c  |   2 +-
 src/bin/ui/workspace/demo_group.c  |  12 +-
 src/bin/ui/workspace/group_navigator.c |  58 
 src/bin/ui/workspace/workspace.c   |  32 ++---
 34 files changed, 391 insertions(+), 247 deletions(-)

diff --git a/src/bin/common/signals.c b/src/bin/common/signals.c
index 8540542..d1f9242 100644
--- a/src/bin/common/signals.c
+++ b/src/bin/common/signals.c
@@ -22,75 +22,149 @@
 
 const Signals signals = {
  .shortcut = {
-  .del  = "signal.shortcut.del",
-  .help = "signal.shortcut.help",
-  .quit = "signal.shortcut.quit",
-  .save = "signal.shortcut.save",
+  .del = "signal.shortcut.del",
+  .help= "signal.shortcut.help",
+  .quit= "signal.shortcut.quit",
+  .save= "signal.shortcut.save",
   .add = {
-   .data_item   = "signal.shortcut.add.data_item",
-   .group   = "signal.shortcut.add.group",
-   .item= "signal.shortcut.add.item",
-   .part= "signal.shortcut.add.part",
-   .program = "signal.shortcut.add.program",
-   .state   = "signal.shortcut.add.state",
+   .data_item  = "signal.shortcut.add.data_item",
+   .group  = "signal.shortcut.add.group",
+   .item   = "signal.shortcut.add.item",
+   .part   = "signal.shortcut.add.part",
+   .program= "signal.shortcut.add.program",
+   .state  = "signal.shortcut.add.state",
   },
   .history = {
-   .redo= "signal.shortcut.history.redo",
-   .undo= "signal.shortcut.history.undo",
+   .redo   = "signal.shortcut.history.redo",
+   .undo   = "signal.shortcut.history.undo",
   },
   .manager = {
-   .color_class = "signal.shortcut.manager.color_class",
-   .image   = "signal.shortcut.manager.image",
-   .sound   = "signal.shortcut.manager.sound",
-   .style   = "signal.shortcut.manager.style",
+   .color_class= "signal.shortcut.manager.color_class",
+   .image  = "signal.shortcut.manager.image",
+   .sound  = 

[EGIT] [core/enlightenment] master 01/01: use same layer in bryce editor for "above window" setting

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 6ee205ec576702879b29ec930fb7b2400bacf384
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 09:56:38 2016 -0400

use same layer in bryce editor for "above window" setting
---
 src/bin/e_bryce_editor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_bryce_editor.c b/src/bin/e_bryce_editor.c
index 895e4a6..46450e8 100644
--- a/src/bin/e_bryce_editor.c
+++ b/src/bin/e_bryce_editor.c
@@ -100,7 +100,7 @@ _editor_bryce_add(Evas_Object *obj)
e_bryce_style_set(b, bi->style);
e_bryce_autohide_set(b, bi->autohide);
e_bryce_autosize_set(b, bi->autosize);
-   evas_object_layer_set(b, bi->stack_under ? E_LAYER_DESKTOP : 
E_LAYER_CLIENT_EDGE);
+   evas_object_layer_set(b, bi->stack_under ? E_LAYER_DESKTOP : 
E_LAYER_CLIENT_ABOVE);
evas_object_del(obj);
 }
 

-- 




[EGIT] [core/enlightenment] master 01/01: clamp bryces to a lower canvas layer

2016-09-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 9313121e79a520269c189057a596cc4229b72701
Author: Mike Blumenkrantz 
Date:   Mon Sep 19 09:53:35 2016 -0400

clamp bryces to a lower canvas layer

note to self: if you remember why you had these at POPUP, annotate the 
reason
here...
---
 src/bin/e_bryce.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_bryce.c b/src/bin/e_bryce.c
index 090fd1c..aa406a3 100644
--- a/src/bin/e_bryce.c
+++ b/src/bin/e_bryce.c
@@ -1,6 +1,6 @@
 #include "e.h"
 
-#define DEFAULT_LAYER E_LAYER_POPUP
+#define DEFAULT_LAYER E_LAYER_CLIENT_ABOVE
 #define E_BRYCE_TYPE 0xE31338
 
 typedef struct Bryce
@@ -1171,6 +1171,7 @@ e_bryce_init(void)
 EINA_LIST_FOREACH(bryces->bryces, l, b)
   {
  if (!e_comp_zone_number_get(b->zone)) continue;
+ b->layer = E_CLAMP(b->layer, E_LAYER_DESKTOP, 
E_LAYER_CLIENT_ABOVE);
  _bryce_create(b, e_comp->elm);
  evas_object_show(b->bryce);
   }

-- 




Re: [E-devel] [EGIT] [core/efl] master 01/01: tests: ecore: relax the timing precision for the promise timeout test

2016-09-19 Thread Tom Hacohen
On 19/09/16 14:01, Stefan Schmidt wrote:
> Hello.
>
> On 19/09/16 14:18, Tom Hacohen wrote:
>> On 19/09/16 13:08, Stefan Schmidt wrote:
>>> stefan pushed a commit to branch master.
>>>
>>> http://git.enlightenment.org/core/efl.git/commit/?id=c25d4e8325b428122439860f9d49dd25a4b4b66d
>>>
>>> commit c25d4e8325b428122439860f9d49dd25a4b4b66d
>>> Author: Stefan Schmidt 
>>> Date:   Mon Sep 19 14:01:19 2016 +0200
>>>
>>> tests: ecore: relax the timing precision for the promise timeout test
>>>
>>> This test has been failing on Jenkins again and again. After adding the 
>>> debug
>>> a while ago it now shows that the value is between 0.01 and 0.02 in all 
>>> cases
>>> I have seen. Relaxing the timeout here a bit to make it pass in 
>>> situation where
>>> our CI is under load.
>>> ---
>>>  src/tests/ecore/ecore_test_timer.c | 4 ++--
>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/src/tests/ecore/ecore_test_timer.c 
>>> b/src/tests/ecore/ecore_test_timer.c
>>> index c7547e4..f3b277b 100644
>>> --- a/src/tests/ecore/ecore_test_timer.c
>>> +++ b/src/tests/ecore/ecore_test_timer.c
>>> @@ -183,8 +183,8 @@ _ecore_promise_quit(void *data, const Efl_Event *ev)
>>> double *start = success->value;
>>> double delta = ecore_loop_time_get() - *start;
>>>
>>> -   fprintf(stderr, "Ecore promise timeout took %f (should be <= 0.01)\n", 
>>> delta - 0.2);
>>> -   fail_if(delta - 0.2 > 0.01);
>>> +   fprintf(stderr, "Ecore promise timeout took %f (should be <= 0.02)\n", 
>>> delta - 0.2);
>>> +   fail_if(delta - 0.2 > 0.02);
>>>
>>> *bob = EINA_TRUE;
>>> ecore_main_loop_quit();
>>>
>>
>>
>> Why is there an fprintf there? We don't do it in any other tests. That
>> text should be either removed or moved to a comment. No?
>
> I already added it before this commit. For the exact reason to get some
> debug information while this runs on Jenkins (where the problem happens).
>
> I left it in to verify that all works as expect for a while and after
> that it can go.

You have ck_assert_int_le() (or something like that) for that. It will 
print the values when it fails.

for example:

ck_assert_int_le(delta - 0.2, 0.02);

Had the original author used that, you wouldn't have needed to even 
change the code.

Just a reminder for all of us (myself included), to use those macros more.

--
Tom.

--
Tom.


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


[EGIT] [core/efl] master 02/03: efl_net_dialer_tcp: use libproxy settings.

2016-09-19 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 0d478c301f49fccfd94a107c060696f79490c30d
Author: Gustavo Sverzut Barbieri 
Date:   Mon Sep 19 03:19:16 2016 -0300

efl_net_dialer_tcp: use libproxy settings.

libproxy allows various means to configure a proxy, will load from
gnome and kde configuration settings, envvars, macos and even windows
registry.

curl still doesn't use it, but we can make that later.
---
 configure.ac  |  13 
 src/lib/ecore_con/ecore_con.c | 110 +-
 src/lib/ecore_con/ecore_con_private.h |   5 ++
 3 files changed, 127 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index d0b9962..a403484 100644
--- a/configure.ac
+++ b/configure.ac
@@ -224,6 +224,7 @@ case "$host_os" in
;;
freebsd*)
   have_freebsd="yes"
+  want_libproxy="yes"
   ELM_UNIX_DEF="#define"
;;
darwin*)
@@ -234,6 +235,7 @@ case "$host_os" in
   have_linux="yes"
   have_systemd_pkg="auto"
   want_systemd="yes"
+  want_libproxy="yes"
   ELM_UNIX_DEF="#define"
;;
*)
@@ -3032,6 +3034,16 @@ EFL_LIB_START([Ecore_Con])
 
 ### Default values
 
+AC_ARG_ENABLE([libproxy],
+   [AS_HELP_STRING([--enable-libproxy],[Enable libproxy support. 
@<:@default=enabled@:>@])],
+   [
+if test "x${enableval}" = "xyes" ; then
+   want_libproxy="yes"
+else
+   want_libproxy="no"
+fi
+   ])
+
 want_ecore_con_local_sockets="yes"
 want_ecore_con_abstract_sockets="yes"
 
@@ -3068,6 +3080,7 @@ EFL_INTERNAL_DEPEND_PKG([ECORE_CON], [emile])
 EFL_ADD_LIBS([ECORE_CON], [-lm])
 
 EFL_OPTIONAL_DEPEND_PKG([ECORE_CON], [${want_systemd}], [SYSTEMD], 
[libsystemd])
+EFL_OPTIONAL_DEPEND_PKG([ECORE_CON], [${want_libproxy}], [LIBPROXY], 
[libproxy-1.0])
 
 EFL_ADD_FEATURE([ECORE_CON], [local-sockets], 
[${want_ecore_con_local_sockets}])
 EFL_ADD_FEATURE([ECORE_CON], [abstract-sockets], 
[${want_ecore_con_abstract_sockets}])
diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c
index 7d8c379..d79c77e 100644
--- a/src/lib/ecore_con/ecore_con.c
+++ b/src/lib/ecore_con/ecore_con.c
@@ -191,6 +191,10 @@ int _ecore_con_log_dom = -1;
 Ecore_Con_Socks *_ecore_con_proxy_once = NULL;
 Ecore_Con_Socks *_ecore_con_proxy_global = NULL;
 
+#ifdef HAVE_LIBPROXY
+pxProxyFactory *_ecore_con_libproxy_factory = NULL;
+#endif
+
 EAPI int
 ecore_con_init(void)
 {
@@ -275,6 +279,14 @@ ecore_con_shutdown(void)
if (--_ecore_con_init_count != 0)
  return _ecore_con_init_count;
 
+#ifdef HAVE_LIBPROXY
+   if (_ecore_con_libproxy_factory)
+ {
+px_proxy_factory_free(_ecore_con_libproxy_factory);
+_ecore_con_libproxy_factory = NULL;
+ }
+#endif
+
eina_log_timing(_ecore_con_log_dom,
EINA_LOG_STATE_START,
EINA_LOG_STATE_SHUTDOWN);
@@ -4432,12 +,32 @@ 
_efl_net_ip_connect_async_run_socks5h(Efl_Net_Ip_Connect_Async_Data *d, const ch
EINA_THREAD_CLEANUP_POP(EINA_TRUE); /* free(str) */
 }
 
+#ifdef HAVE_LIBPROXY
+static void
+_cleanup_proxies(void *data)
+{
+   char **proxies = data;
+   char **itr;
+
+   if (!proxies) return;
+
+   for (itr = proxies; *itr != NULL; itr++)
+ free(*itr);
+   free(proxies);
+}
+#endif
+
 static void
 _efl_net_ip_connect_async_run(void *data, Ecore_Thread *thread EINA_UNUSED)
 {
Efl_Net_Ip_Connect_Async_Data *d = data;
const char *host, *port, *proxy;
char *addrcopy;
+#ifdef HAVE_LIBPROXY
+   char **proxies = NULL;
+   int proxies_idx = 0;
+   Eina_Bool is_libproxy = EINA_FALSE;
+#endif
 
addrcopy = strdup(d->address);
if (!addrcopy)
@@ -4453,8 +4485,52 @@ _efl_net_ip_connect_async_run(void *data, Ecore_Thread 
*thread EINA_UNUSED)
 return;
  }
if (!port) port = "0";
+   EINA_THREAD_CLEANUP_PUSH(free, addrcopy);
 
proxy = d->proxy;
+
+#ifdef HAVE_LIBPROXY
+   if ((!proxy) && (_ecore_con_libproxy_factory))
+ {
+/* libproxy is thread-safe but not cancellable.  the provided
+ * parameter must be a URL with schema, otherwise it won't
+ * return anything.
+ */
+char *url;
+
+asprintf(, "%s://%s:%s", d->protocol == IPPROTO_UDP ? "udp" : 
"tcp", host, port);
+proxies = px_proxy_factory_get_proxies(_ecore_con_libproxy_factory, 
url);
+free(url);
+ }
+
+   EINA_THREAD_CLEANUP_PUSH(_cleanup_proxies, proxies);
+ next_proxy:
+   if ((!proxy) && (proxies) && (proxies_idx >= 0))
+ {
+proxy = proxies[proxies_idx];
+if (!proxy)
+  {
+ is_libproxy = EINA_FALSE;
+ proxies_idx = -1;
+  }
+else
+  {
+ if (strcmp(proxy, "direct://") == 0)
+   {
+  /* give a chance to try envvars */
+  proxy = NULL;
+  is_libproxy = 

[EGIT] [core/efl] master 01/03: efl_net_dialer_websocket: remove unused variable.

2016-09-19 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 696692ab90d055b67f48490f6216a010e35844a3
Author: Gustavo Sverzut Barbieri 
Date:   Mon Sep 19 03:18:35 2016 -0300

efl_net_dialer_websocket: remove unused variable.

efl-future will null the pointer, so pd is not needed anymore.
---
 src/lib/ecore_con/efl_net_dialer_websocket.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/lib/ecore_con/efl_net_dialer_websocket.c 
b/src/lib/ecore_con/efl_net_dialer_websocket.c
index 613181e..fb126dd 100644
--- a/src/lib/ecore_con/efl_net_dialer_websocket.c
+++ b/src/lib/ecore_con/efl_net_dialer_websocket.c
@@ -1493,7 +1493,6 @@ static void
 _efl_net_dialer_websocket_close_request_timeout(void *data, const Efl_Event 
*ev EINA_UNUSED)
 {
Eo *o = data;
-   Efl_Net_Dialer_Websocket_Data *pd = efl_data_scope_get(o, MY_CLASS);
 
DBG("server did not close the TCP socket, timeout");
efl_event_callback_call(o, EFL_IO_CLOSER_EVENT_CLOSED, NULL);

-- 




[EGIT] [core/efl] master 03/03: efl_net_dialer_http: use libproxy.

2016-09-19 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 8550a33b27b35065b4f5bd6defbece003e1af0de
Author: Gustavo Sverzut Barbieri 
Date:   Mon Sep 19 10:00:36 2016 -0300

efl_net_dialer_http: use libproxy.

query libproxy in a thread (since it's nasty and blocks), then apply
proxy to curl and execute the request.
---
 src/lib/ecore_con/efl_net_dialer_http.c | 146 ++--
 1 file changed, 137 insertions(+), 9 deletions(-)

diff --git a/src/lib/ecore_con/efl_net_dialer_http.c 
b/src/lib/ecore_con/efl_net_dialer_http.c
index 1e7fd54..1b5b20b 100644
--- a/src/lib/ecore_con/efl_net_dialer_http.c
+++ b/src/lib/ecore_con/efl_net_dialer_http.c
@@ -181,6 +181,9 @@ typedef struct
Eina_Stringshare *address_remote;
Eina_Stringshare *method;
Eina_Stringshare *user_agent;
+#ifdef HAVE_LIBPROXY
+   Ecore_Thread *libproxy_thread;
+#endif
struct {
   struct curl_slist *headers;
   int64_t content_length;
@@ -1166,6 +1169,13 @@ _efl_net_dialer_http_efl_object_constructor(Eo *o, 
Efl_Net_Dialer_Http_Data *pd)
 EOLIAN static void
 _efl_net_dialer_http_efl_object_destructor(Eo *o, Efl_Net_Dialer_Http_Data *pd)
 {
+#ifdef HAVE_LIBPROXY
+   if (pd->libproxy_thread)
+ {
+ecore_thread_cancel(pd->libproxy_thread);
+pd->libproxy_thread = NULL;
+ }
+#endif
if (pd->in_curl_callback)
  {
 DBG("deleting HTTP dialer=%p from CURL callback.", o);
@@ -1234,10 +1244,99 @@ _efl_net_dialer_http_efl_object_destructor(Eo *o, 
Efl_Net_Dialer_Http_Data *pd)
_secure_free(>authentication.password);
 }
 
+static void
+_efl_net_dialer_http_curl_start(Eo *o, Efl_Net_Dialer_Http_Data *pd)
+{
+   Efl_Net_Dialer_Http_Curlm *cm;
+
+   // TODO: move this to be per-loop once multiple mainloops are supported
+   // this would need to attach something to the loop
+   cm = &_cm_global;
+   if (!cm->loop) cm->loop = efl_loop_user_loop_get(o);
+   if (!_efl_net_dialer_http_curlm_add(cm, o, pd->easy))
+ {
+ERR("dialer=%p could not add curl easy handle to multi manager", o);
+return;
+ }
+
+   pd->cm = cm;
+   DBG("started curl request easy=%p, cm=%p", pd->easy, pd->cm);
+}
+
+#ifdef HAVE_LIBPROXY
+typedef struct _Efl_Net_Dialer_Http_Libproxy_Context {
+   Eo *o;
+   char *url;
+   char *proxy;
+} Efl_Net_Dialer_Http_Libproxy_Context;
+
+static void
+_efl_net_dialer_http_libproxy_run(void *data, Ecore_Thread *thread EINA_UNUSED)
+{
+   Efl_Net_Dialer_Http_Libproxy_Context *ctx = data;
+   char **proxies = px_proxy_factory_get_proxies(_ecore_con_libproxy_factory, 
ctx->url);
+   char **itr;
+
+   if (!proxies) return;
+
+   for (itr = proxies; *itr != NULL; itr++)
+ {
+if (itr != proxies) free(*itr);
+else
+  {
+ if (strcmp(*itr, "direct://") != 0) ctx->proxy = *itr;
+ else
+   {
+  /* NULL not "" so we let curl use envvars */
+  ctx->proxy = NULL;
+  free(*itr);
+   }
+  }
+ }
+   free(proxies);
+}
+
+static void
+_efl_net_dialer_http_libproxy_context_free(Efl_Net_Dialer_Http_Libproxy_Context
 *ctx)
+{
+   free(ctx->proxy);
+   free(ctx->url);
+   free(ctx);
+}
+
+static void
+_efl_net_dialer_http_libproxy_end(void *data, Ecore_Thread *thread EINA_UNUSED)
+{
+   Efl_Net_Dialer_Http_Libproxy_Context *ctx = data;
+   Eo *o = ctx->o;
+   Efl_Net_Dialer_Http_Data *pd = efl_data_scope_get(o, MY_CLASS);
+
+   if (ctx->proxy)
+ {
+CURLcode r = curl_easy_setopt(pd->easy, CURLOPT_PROXY, ctx->proxy);
+if (r != CURLE_OK)
+  ERR("dialer=%p could not set proxy to '%s': %s",
+  o, ctx->proxy, curl_easy_strerror(r));
+else
+  DBG("libproxy said %s for %s", ctx->proxy, pd->address_dial);
+ }
+
+   _efl_net_dialer_http_libproxy_context_free(ctx);
+
+   _efl_net_dialer_http_curl_start(o, pd);
+}
+
+static void
+_efl_net_dialer_http_libproxy_cancel(void *data, Ecore_Thread *thread 
EINA_UNUSED)
+{
+   Efl_Net_Dialer_Http_Libproxy_Context *ctx = data;
+   _efl_net_dialer_http_libproxy_context_free(ctx);
+}
+#endif
+
 EOLIAN static Eina_Error
 _efl_net_dialer_http_efl_net_dialer_dial(Eo *o, Efl_Net_Dialer_Http_Data *pd, 
const char *address)
 {
-   Efl_Net_Dialer_Http_Curlm *cm;
CURLcode r;
 
EINA_SAFETY_ON_NULL_RETURN_VAL(address, EINVAL);
@@ -1258,17 +1357,46 @@ _efl_net_dialer_http_efl_net_dialer_dial(Eo *o, 
Efl_Net_Dialer_Http_Data *pd, co
 return EINVAL;
  }
 
-   // TODO: move this to be per-loop once multiple mainloops are supported
-   // this would need to attach something to the loop
-   cm = &_cm_global;
-   if (!cm->loop) cm->loop = efl_loop_user_loop_get(o);
-   if (!_efl_net_dialer_http_curlm_add(cm, o, pd->easy))
+#ifdef HAVE_LIBPROXY
+   if (!pd->proxy)
  {
-ERR("dialer=%p could not add curl easy 

Re: [E-devel] [EGIT] [core/efl] master 01/01: tests: ecore: relax the timing precision for the promise timeout test

2016-09-19 Thread Stefan Schmidt
Hello.

On 19/09/16 14:18, Tom Hacohen wrote:
> On 19/09/16 13:08, Stefan Schmidt wrote:
>> stefan pushed a commit to branch master.
>>
>> http://git.enlightenment.org/core/efl.git/commit/?id=c25d4e8325b428122439860f9d49dd25a4b4b66d
>>
>> commit c25d4e8325b428122439860f9d49dd25a4b4b66d
>> Author: Stefan Schmidt 
>> Date:   Mon Sep 19 14:01:19 2016 +0200
>>
>> tests: ecore: relax the timing precision for the promise timeout test
>>
>> This test has been failing on Jenkins again and again. After adding the 
>> debug
>> a while ago it now shows that the value is between 0.01 and 0.02 in all 
>> cases
>> I have seen. Relaxing the timeout here a bit to make it pass in 
>> situation where
>> our CI is under load.
>> ---
>>  src/tests/ecore/ecore_test_timer.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/tests/ecore/ecore_test_timer.c 
>> b/src/tests/ecore/ecore_test_timer.c
>> index c7547e4..f3b277b 100644
>> --- a/src/tests/ecore/ecore_test_timer.c
>> +++ b/src/tests/ecore/ecore_test_timer.c
>> @@ -183,8 +183,8 @@ _ecore_promise_quit(void *data, const Efl_Event *ev)
>> double *start = success->value;
>> double delta = ecore_loop_time_get() - *start;
>>
>> -   fprintf(stderr, "Ecore promise timeout took %f (should be <= 0.01)\n", 
>> delta - 0.2);
>> -   fail_if(delta - 0.2 > 0.01);
>> +   fprintf(stderr, "Ecore promise timeout took %f (should be <= 0.02)\n", 
>> delta - 0.2);
>> +   fail_if(delta - 0.2 > 0.02);
>>
>> *bob = EINA_TRUE;
>> ecore_main_loop_quit();
>>
>
>
> Why is there an fprintf there? We don't do it in any other tests. That
> text should be either removed or moved to a comment. No?

I already added it before this commit. For the exact reason to get some 
debug information while this runs on Jenkins (where the problem happens).

I left it in to verify that all works as expect for a while and after 
that it can go.

regards
Stefan Schmidt

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


Re: [E-devel] [EGIT] [core/efl] master 03/05: render_thread: Attempt to set affinity to a random fast core

2016-09-19 Thread Derek Foreman
On 19/09/16 05:08 AM, Carsten Haitzler (The Rasterman) wrote:
> On Mon, 19 Sep 2016 11:07:15 +0200 Stefan Schmidt  
> said:
> 
>> Hello.
>>
>> On 16/09/16 21:11, Derek Foreman wrote:
>>> derekf pushed a commit to branch master.
>>>
>>> http://git.enlightenment.org/core/efl.git/commit/?id=a17ac66f0a0b089dde0b2e550523b0d59ec97f52
>>>
>>> commit a17ac66f0a0b089dde0b2e550523b0d59ec97f52
>>> Author: Derek Foreman 
>>> Date:   Thu Sep 15 16:05:25 2016 -0500
>>>
>>> render_thread: Attempt to set affinity to a random fast core
>>>
>>> We've been pinning the render thread for every EFL process to core 0.
>>> This is a bit silly in the first place, but some big.LITTLE arm systems,
>>> such as exynos 5422, have the LITTLE cores first.
>>>
>>> On those systems we put all the render threads on a slow core.
>>>
>>> This attempts to fix that by using a random core from the pool of fast
>>> cores.
>>>
>>> If we can't determine which cores are fast (ie: we're not on a
>>> linux kernel with cpufreq enabled) then we'll continue doing what we've
>>> always done.
>>
>> I had to revert this patch as it broke all efl builds for me. Locally 
>> and on Jenkins. Edje_cc segfaulted on the in tree edc files. Error 
>> message is in the revert commit message.
>>
>>  From the description here this change would still be needed but in a 
>> non breaking way. :)
> 
> how about simply removing the pinning (affinity) entirely?
> 
I thought about that...  The render thread's still going to take a
performance hit if it bounces from processor to processor much (it's
probably pathologically bad for cache invalidation?)

Also, if it bounces around on the "LITTLE" cores on a big.LITTLE system
it'll have really bad performance characteristics...

There's a group working on improving the scheduler to better handle non
uniform multi-processor systems, so eventually we shouldn't need this
anymore, but I think for now it's generally a win.

--
___
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: tests: ecore: relax the timing precision for the promise timeout test

2016-09-19 Thread Tom Hacohen
On 19/09/16 13:08, Stefan Schmidt wrote:
> stefan pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=c25d4e8325b428122439860f9d49dd25a4b4b66d
>
> commit c25d4e8325b428122439860f9d49dd25a4b4b66d
> Author: Stefan Schmidt 
> Date:   Mon Sep 19 14:01:19 2016 +0200
>
> tests: ecore: relax the timing precision for the promise timeout test
>
> This test has been failing on Jenkins again and again. After adding the 
> debug
> a while ago it now shows that the value is between 0.01 and 0.02 in all 
> cases
> I have seen. Relaxing the timeout here a bit to make it pass in situation 
> where
> our CI is under load.
> ---
>  src/tests/ecore/ecore_test_timer.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/tests/ecore/ecore_test_timer.c 
> b/src/tests/ecore/ecore_test_timer.c
> index c7547e4..f3b277b 100644
> --- a/src/tests/ecore/ecore_test_timer.c
> +++ b/src/tests/ecore/ecore_test_timer.c
> @@ -183,8 +183,8 @@ _ecore_promise_quit(void *data, const Efl_Event *ev)
> double *start = success->value;
> double delta = ecore_loop_time_get() - *start;
>
> -   fprintf(stderr, "Ecore promise timeout took %f (should be <= 0.01)\n", 
> delta - 0.2);
> -   fail_if(delta - 0.2 > 0.01);
> +   fprintf(stderr, "Ecore promise timeout took %f (should be <= 0.02)\n", 
> delta - 0.2);
> +   fail_if(delta - 0.2 > 0.02);
>
> *bob = EINA_TRUE;
> ecore_main_loop_quit();
>


Why is there an fprintf there? We don't do it in any other tests. That 
text should be either removed or moved to a comment. No?

--
Tom.

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


[EGIT] [core/efl] master 01/01: tests: ecore: relax the timing precision for the promise timeout test

2016-09-19 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit c25d4e8325b428122439860f9d49dd25a4b4b66d
Author: Stefan Schmidt 
Date:   Mon Sep 19 14:01:19 2016 +0200

tests: ecore: relax the timing precision for the promise timeout test

This test has been failing on Jenkins again and again. After adding the 
debug
a while ago it now shows that the value is between 0.01 and 0.02 in all 
cases
I have seen. Relaxing the timeout here a bit to make it pass in situation 
where
our CI is under load.
---
 src/tests/ecore/ecore_test_timer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/tests/ecore/ecore_test_timer.c 
b/src/tests/ecore/ecore_test_timer.c
index c7547e4..f3b277b 100644
--- a/src/tests/ecore/ecore_test_timer.c
+++ b/src/tests/ecore/ecore_test_timer.c
@@ -183,8 +183,8 @@ _ecore_promise_quit(void *data, const Efl_Event *ev)
double *start = success->value;
double delta = ecore_loop_time_get() - *start;
 
-   fprintf(stderr, "Ecore promise timeout took %f (should be <= 0.01)\n", 
delta - 0.2);
-   fail_if(delta - 0.2 > 0.01);
+   fprintf(stderr, "Ecore promise timeout took %f (should be <= 0.02)\n", 
delta - 0.2);
+   fail_if(delta - 0.2 > 0.02);
 
*bob = EINA_TRUE;
ecore_main_loop_quit();

-- 




Re: [E-devel] [EGIT] [core/efl] master 01/02: eina: allow graceful failure when calling eina_thread_cancel with NULL.

2016-09-19 Thread Gustavo Sverzut Barbieri
On Sun, Sep 18, 2016 at 2:03 PM, Carsten Haitzler  wrote:
> On Thu, 15 Sep 2016 08:00:46 -0300 Gustavo Sverzut Barbieri
>  said:
>
>> isn't it better to check in ecore_thread_cancel() if the thread was
>> already created?
>
> that'd require keeping track of every thread we create, looking up in that
> list/table ever time etc. ... like eoid does. eina_thread stuff is are ally a
> tiny tiny tiny thin wrapper over posix (or windows or osx) threading - same
> with locks/semaphores etc. at this level such a complex check isn't really 
> worth
> it.

there is a single place inside ecore_thread_cancel() that calls this
function and it knows if t->self is 0 before calling.




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

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


[EGIT] [apps/epour] master 01/01: libtorrent compatibility fixes

2016-09-19 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=c8344819e060965bddac5628f0e716e1fe2f0b1f

commit c8344819e060965bddac5628f0e716e1fe2f0b1f
Author: Kai Huuhko 
Date:   Mon Sep 19 15:00:08 2016 +0300

libtorrent compatibility fixes
---
 epour/session.py | 28 
 1 file changed, 24 insertions(+), 4 deletions(-)

diff --git a/epour/session.py b/epour/session.py
index 32c92a1..29fee9e 100644
--- a/epour/session.py
+++ b/epour/session.py
@@ -77,7 +77,7 @@ def read_resume_data(info_hash):
 t_path = os.path.join(p, "%s.fastresume" % info_hash)
 if os.path.exists(t_path):
 with open(t_path, "rb") as fp:
-data = lt.read_resume_data(fp.read())
+data = fp.read()
 break
 
 if data:
@@ -86,6 +86,12 @@ def read_resume_data(info_hash):
 raise ValueError("Fast Resume data not found")
 
 
+def lt_compatibility_convert(params):
+for k, v in params.items():
+if type(v) == lt.sha1_hash:
+params[k] = v.to_bytes()
+
+
 class Session(lt.session):
 
 def __init__(self, conf, shutdown_cb):
@@ -283,6 +289,7 @@ class Session(lt.session):
 params_dict = torrent.get_params()
 
 params = None
+ti = None
 
 if "ti" in params_dict and params_dict["ti"]:
 try:
@@ -291,15 +298,28 @@ class Session(lt.session):
 log.exception("Opening torrent %s failed", 
info_hash)
 else:
 params_dict["ti"] = ti
+
+if ti:
+if lt_version < LooseVersion("1.2.0.0"):
+try:
+data = read_resume_data(info_hash)
+except Exception:
+log.exception("Reading resume data failed.")
+else:
+params_dict["resume_data"] = data
+else:
 try:
-params = read_resume_data(info_hash)
+data = read_resume_data(info_hash)
+params = lt.read_resume_data(data)
 except Exception:
-pass
+log.exception("Reading resume data failed.")
 else:
 params.trackers = list(set(params.trackers))
 
-if lt_version < LooseVersion("1.1.1.0"):
+if lt_version < LooseVersion("1.2.0.0"):
 if params is None:
+log.warn("Falling back to < lt 1.2 compatibility 
handling.")
+lt_compatibility_convert(params_dict)
 params = params_dict
 else:
 if params is None:

-- 




[EGIT] [tools/eflete] master 01/01: Revert "Tizen : fix the usage of the spinner in tizen"

2016-09-19 Thread Andrii Kroitor
rimmed pushed a commit to branch master.

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

commit a01b46bc5a2c1edb82b9e8eff5234262f5f32ca9
Author: Andrii Kroitor 
Date:   Mon Sep 19 11:47:06 2016 +0300

Revert "Tizen : fix the usage of the spinner in tizen"

This reverts commit c339fb1016af6705e540190e9afc7a6239dc008f.

Issue with spinner was fixed more globaly.

-- 




[EGIT] [core/efl] master 02/03: eo: fix reference to constants

2016-09-19 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 5a3cf323efbf141e1d2e18561801c85904604bbc
Author: Marcel Hollerbach 
Date:   Mon Sep 19 12:58:52 2016 +0200

eo: fix reference to constants

they are renamed from the prefix EO_ to EFL_
---
 src/lib/eo/efl_object.eo | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/eo/efl_object.eo b/src/lib/eo/efl_object.eo
index 6b9c56c..537a179 100644
--- a/src/lib/eo/efl_object.eo
+++ b/src/lib/eo/efl_object.eo
@@ -37,9 +37,9 @@ struct Efl.Dbg_Info {
 type Efl.Callback_Priority: short; [[Callback priority value. Range is -32k - 
32k.
 The lower the number, the higher the 
priority.
 
-See \@ref EO_CALLBACK_PRIORITY_AFTER,
-\@ref EO_CALLBACK_PRIORITY_BEFORE
-\@ref EO_CALLBACK_PRIORITY_DEFAULT
+See \@ref EFL_CALLBACK_PRIORITY_AFTER,
+\@ref EFL_CALLBACK_PRIORITY_BEFORE
+\@ref EFL_CALLBACK_PRIORITY_DEFAULT
   ]]
 
 abstract Efl.Object ()

-- 




[EGIT] [core/efl] master 01/03: eo: fix callback cmp

2016-09-19 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 907bbbf9650d4737259f5229f47dfac7fb924106
Author: Marcel Hollerbach 
Date:   Sat Sep 17 15:17:25 2016 +0200

eo: fix callback cmp

Summary:
as told in _eina_stringshared_key_cmp in eina_hash.c:

originally we want to do this:
   return key1 - key2;
but since they are ptrs and an int can't store the different of 2 ptrs in
either 32 or 64bit (signed hasn't got enough range for the diff of 2
32bit values regardless of their type... we'd need 33bits or 65bits)

So changing this to the same logic.

Reviewers: tasn, raster

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4298
---
 src/lib/eo/eo.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 7aa36f4..a7dc3ce 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -2154,5 +2154,7 @@ efl_manual_free(Eo *obj_id)
 EAPI int
 efl_callbacks_cmp(const Efl_Callback_Array_Item *a, const 
Efl_Callback_Array_Item *b)
 {
-   return (const unsigned char *) a->desc - (const unsigned char *) b->desc;
+   if (a->desc == b->desc) return 0;
+   else if (a->desc > b->desc) return 1;
+   else return -1;
 }

-- 




[EGIT] [core/efl] master 03/03: eo: fix headr to header

2016-09-19 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit f63cd63e5403c99a1b1678d4f36cd277f69a53e6
Author: Marcel Hollerbach 
Date:   Mon Sep 19 13:00:36 2016 +0200

eo: fix headr to header

if you enable EO_DEBUG you cannot build eo, since the field is called
header not headr
---
 src/lib/eo/eo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index a7dc3ce..f2e9f31 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -1708,7 +1708,7 @@ _efl_data_xunref_internal(_Eo_Object *obj, void *data, 
const _Eo_Object *ref_obj
  ((char *)data < (((char *) obj) + klass->obj_size)));
if (!in_range)
  {
-ERR("Data %p is not in the data range of the object %p (%s).", data, 
(Eo *)obj->headr.id, obj->klass->desc->name);
+ERR("Data %p is not in the data range of the object %p (%s).", data, 
(Eo *)obj->header.id, obj->klass->desc->name);
  }
 #else
(void) obj;

-- 




[EGIT] [tools/eflete] master 01/01: Revert "Tizen : fix the usage of the spinner in tizen"

2016-09-19 Thread Andrii Kroitor
rimmed pushed a commit to branch master.

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

commit dd94c9f440534074f8e6eca7ac4f144b3e250065
Author: Andrii Kroitor 
Date:   Mon Sep 19 11:47:06 2016 +0300

Revert "Tizen : fix the usage of the spinner in tizen"

This reverts commit c339fb1016af6705e540190e9afc7a6239dc008f.

Issue with spinner was fixed more globaly.
---
 src/bin/ui/property/property_common.c |   4 -
 src/bin/ui/property/property_group.c  | 197 --
 2 files changed, 93 insertions(+), 108 deletions(-)

diff --git a/src/bin/ui/property/property_common.c 
b/src/bin/ui/property/property_common.c
index 16d7388..55436c6 100644
--- a/src/bin/ui/property/property_common.c
+++ b/src/bin/ui/property/property_common.c
@@ -168,10 +168,6 @@ _start_change_stop_cb(void *data,
   Evas_Object *obj,
   void *event_info __UNUSED__)
 {
-#ifdef HAVE_TIZEN
-   Eina_Bool by_api = evas_object_data_get(obj, "by_api");
-   if (by_api) return;
-#endif
PROPERTY_DATA_GET(obj);
Property_Attribute *pa = data;
 
diff --git a/src/bin/ui/property/property_group.c 
b/src/bin/ui/property/property_group.c
index bb528d7..4743220 100644
--- a/src/bin/ui/property/property_group.c
+++ b/src/bin/ui/property/property_group.c
@@ -205,17 +205,6 @@ static const char *image_border_fill_strings[] = { 
STR_NONE,
"Default",
"Solid",
NULL};
-_spinner_value_set(Evas_Object *obj, double val)
-{
-#ifdef HAVE_TIZEN
-   evas_object_data_set(obj, "by_api", EINA_TRUE);
-#endif
-   elm_spinner_value_set(obj, val);
-#ifdef HAVE_TIZEN
-   evas_object_data_set(obj, "by_api", EINA_FALSE);
-#endif
-}
-
 /* defines for args */
 static inline const char *
 _part_name_get(void)
@@ -1781,19 +1770,19 @@ _update_cb(Property_Attribute *pa, Property_Action 
*action)
  return images_list == NULL;
   case ATTRIBUTE_GROUP_MIN_W:
  int_val1 = edje_edit_group_min_w_get(EDIT_OBJ);
- _spinner_value_set(action->control, int_val1);
+ elm_spinner_value_set(action->control, int_val1);
  return !int_val1;
   case ATTRIBUTE_GROUP_MIN_H:
  int_val1 = edje_edit_group_min_h_get(EDIT_OBJ);
- _spinner_value_set(action->control, int_val1);
+ elm_spinner_value_set(action->control, int_val1);
  return !int_val1;
   case ATTRIBUTE_GROUP_MAX_W:
  int_val1 = edje_edit_group_max_w_get(EDIT_OBJ);
- _spinner_value_set(action->control, int_val1);
+ elm_spinner_value_set(action->control, int_val1);
  return !int_val1;
   case ATTRIBUTE_GROUP_MAX_H:
  int_val1 = edje_edit_group_max_h_get(EDIT_OBJ);
- _spinner_value_set(action->control, int_val1);
+ elm_spinner_value_set(action->control, int_val1);
  return !int_val1;
   case ATTRIBUTE_PART_NAME:
  property_entry_set(action->control, PART_ARGS);
@@ -1865,27 +1854,27 @@ _update_cb(Property_Attribute *pa, Property_Action 
*action)
  return editor_part_text_shadow_direction_default_is(EDIT_OBJ, 
PART_ARGS);
   case ATTRIBUTE_PART_DRAG_X:
  int_val1 = edje_edit_part_drag_x_get(EDIT_OBJ, PART_ARGS);
- _spinner_value_set(action->control, int_val1);
+ elm_spinner_value_set(action->control, int_val1);
  return editor_part_drag_x_default_is(EDIT_OBJ, PART_ARGS);
   case ATTRIBUTE_PART_DRAG_Y:
  int_val1 = edje_edit_part_drag_y_get(EDIT_OBJ, PART_ARGS);
- _spinner_value_set(action->control, int_val1);
+ elm_spinner_value_set(action->control, int_val1);
  return editor_part_drag_y_default_is(EDIT_OBJ, PART_ARGS);
   case ATTRIBUTE_PART_DRAG_STEP_X:
  int_val1 = edje_edit_part_drag_step_x_get(EDIT_OBJ, PART_ARGS);
- _spinner_value_set(action->control, int_val1);
+ elm_spinner_value_set(action->control, int_val1);
  return editor_part_drag_step_x_default_is(EDIT_OBJ, PART_ARGS);
   case ATTRIBUTE_PART_DRAG_STEP_Y:
  int_val1 = edje_edit_part_drag_step_y_get(EDIT_OBJ, PART_ARGS);
- _spinner_value_set(action->control, int_val1);
+ elm_spinner_value_set(action->control, int_val1);
  return editor_part_drag_step_y_default_is(EDIT_OBJ, PART_ARGS);
   case ATTRIBUTE_PART_DRAG_COUNT_X:
  int_val1 = edje_edit_part_drag_count_x_get(EDIT_OBJ, PART_ARGS);
- _spinner_value_set(action->control, int_val1);
+ elm_spinner_value_set(action->control, int_val1);
  return editor_part_drag_count_x_default_is(EDIT_OBJ, PART_ARGS);
   case ATTRIBUTE_PART_DRAG_COUNT_Y:
  int_val1 = edje_edit_part_drag_count_y_get(EDIT_OBJ, PART_ARGS);
- _spinner_value_set(action->control, int_val1);
+ 

[EGIT] [core/efl] master 01/01: edje_svg_loader: Initialize char array.

2016-09-19 Thread Jaehyun Cho
jaehyun pushed a commit to branch master.

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

commit 42b3bc1e8ad61644c2b91ac3e13fbd376021afe1
Author: Jaehyun Cho 
Date:   Mon Sep 19 19:46:27 2016 +0900

edje_svg_loader: Initialize char array.

Initialize char array before calling strcmp().
---
 src/bin/edje/edje_svg_loader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/edje/edje_svg_loader.c b/src/bin/edje/edje_svg_loader.c
index 1b23913..781f141 100644
--- a/src/bin/edje/edje_svg_loader.c
+++ b/src/bin/edje/edje_svg_loader.c
@@ -1734,7 +1734,7 @@ _evas_svg_loader_xml_open_parser(Evas_SVG_Loader *loader,
const char *attrs = NULL;
int attrs_length = 0;
int sz = length;
-   char tag_name[20];
+   char tag_name[20] = "";
Factory_Method method;
Gradient_Factory_Method gradient_method;
Svg_Node *node = NULL, *parent;

-- 




Re: [E-devel] [EGIT] [core/efl] master 03/05: render_thread: Attempt to set affinity to a random fast core

2016-09-19 Thread The Rasterman
On Mon, 19 Sep 2016 11:07:15 +0200 Stefan Schmidt  said:

> Hello.
> 
> On 16/09/16 21:11, Derek Foreman wrote:
> > derekf pushed a commit to branch master.
> >
> > http://git.enlightenment.org/core/efl.git/commit/?id=a17ac66f0a0b089dde0b2e550523b0d59ec97f52
> >
> > commit a17ac66f0a0b089dde0b2e550523b0d59ec97f52
> > Author: Derek Foreman 
> > Date:   Thu Sep 15 16:05:25 2016 -0500
> >
> > render_thread: Attempt to set affinity to a random fast core
> >
> > We've been pinning the render thread for every EFL process to core 0.
> > This is a bit silly in the first place, but some big.LITTLE arm systems,
> > such as exynos 5422, have the LITTLE cores first.
> >
> > On those systems we put all the render threads on a slow core.
> >
> > This attempts to fix that by using a random core from the pool of fast
> > cores.
> >
> > If we can't determine which cores are fast (ie: we're not on a
> > linux kernel with cpufreq enabled) then we'll continue doing what we've
> > always done.
> 
> I had to revert this patch as it broke all efl builds for me. Locally 
> and on Jenkins. Edje_cc segfaulted on the in tree edc files. Error 
> message is in the revert commit message.
> 
>  From the description here this change would still be needed but in a 
> non breaking way. :)

how about simply removing the pinning (affinity) entirely?

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


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


[EGIT] [tools/eflete] master 01/02: export: fix to call the popup dismiss.

2016-09-19 Thread Jaehwan Kim
jaehwan pushed a commit to branch master.

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

commit 9b71b0c064d086f8678bb5229eeaa1aff8443b8b
Author: Jaehwan Kim 
Date:   Mon Sep 19 17:04:14 2016 +0900

export: fix to call the popup dismiss.

If the export is executed by command option, don't call the function
that is related to popup.
---
 src/bin/ui/project_export.c | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/bin/ui/project_export.c b/src/bin/ui/project_export.c
index 1e44af2..5c9e184 100644
--- a/src/bin/ui/project_export.c
+++ b/src/bin/ui/project_export.c
@@ -46,7 +46,8 @@ _after_export_dev_check(void *data)
ap.splash = splash_add(ap.win, _export_develop_setup, _export_teardown, 
NULL, data);
evas_object_focus_set(ap.splash, true);
evas_object_show(ap.splash);
-   popup_fileselector_helper_dismiss();
+   if (!ap.path.export_edj)
+ popup_fileselector_helper_dismiss();
 }
 
 static Eina_Bool
@@ -122,7 +123,8 @@ _after_export_release_check(void *data)
NULL, data);
evas_object_focus_set(ap.splash, true);
evas_object_show(ap.splash);
-   popup_fileselector_helper_dismiss();
+   if (!ap.path.export_edj)
+ popup_fileselector_helper_dismiss();
 }
 
 static Eina_Bool
@@ -202,7 +204,8 @@ _after_export_source_code_check(void *data)
ap.splash = splash_add(ap.win, _export_source_code_setup, _export_teardown, 
NULL, data);
evas_object_focus_set(ap.splash, true);
evas_object_show(ap.splash);
-   popup_fileselector_helper_dismiss();
+   if (!ap.path.export_edc.path)
+ popup_fileselector_helper_dismiss();
 }
 
 static Eina_Bool

-- 




[EGIT] [tools/eflete] master 02/02: project_close: don't make a project close popup in Tizen

2016-09-19 Thread Jaehwan Kim
jaehwan pushed a commit to branch master.

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

commit 7e35bd40a8fa31bfa361ddecec1658b90f69d83a
Author: Jaehwan Kim 
Date:   Mon Sep 19 17:49:32 2016 +0900

project_close: don't make a project close popup in Tizen
---
 src/bin/ui/project_close.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bin/ui/project_close.c b/src/bin/ui/project_close.c
index 1339e6d..cc83d8e 100644
--- a/src/bin/ui/project_close.c
+++ b/src/bin/ui/project_close.c
@@ -177,6 +177,7 @@ project_close(void)
 
assert(ap.project != NULL);
 
+#ifndef HAVE_TIZEN
if (ap.project->changed)
  {
 title = eina_stringshare_printf(_("Close project %s"), 
ap.project->name);
@@ -189,6 +190,7 @@ project_close(void)
 eina_stringshare_del(title);
 return false;
  }
+#endif
 
ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_BASE, true);
ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_STYLE_ONLY, true);

-- 




Re: [E-devel] [EGIT] [core/efl] master 03/05: render_thread: Attempt to set affinity to a random fast core

2016-09-19 Thread Stefan Schmidt
Hello.

On 16/09/16 21:11, Derek Foreman wrote:
> derekf pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=a17ac66f0a0b089dde0b2e550523b0d59ec97f52
>
> commit a17ac66f0a0b089dde0b2e550523b0d59ec97f52
> Author: Derek Foreman 
> Date:   Thu Sep 15 16:05:25 2016 -0500
>
> render_thread: Attempt to set affinity to a random fast core
>
> We've been pinning the render thread for every EFL process to core 0.
> This is a bit silly in the first place, but some big.LITTLE arm systems,
> such as exynos 5422, have the LITTLE cores first.
>
> On those systems we put all the render threads on a slow core.
>
> This attempts to fix that by using a random core from the pool of fast
> cores.
>
> If we can't determine which cores are fast (ie: we're not on a
> linux kernel with cpufreq enabled) then we'll continue doing what we've
> always done.

I had to revert this patch as it broke all efl builds for me. Locally 
and on Jenkins. Edje_cc segfaulted on the in tree edc files. Error 
message is in the revert commit message.

 From the description here this change would still be needed but in a 
non breaking way. :)

regards
Stefan Schmidt

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


[EGIT] [core/efl] master 01/01: Revert "render_thread: Attempt to set affinity to a random fast core"

2016-09-19 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 6bf537d43d2f7ebcfee15dfcbb559dbe9cf89b12
Author: Stefan Schmidt 
Date:   Mon Sep 19 10:41:58 2016 +0200

Revert "render_thread: Attempt to set affinity to a random fast core"

This reverts commit a17ac66f0a0b089dde0b2e550523b0d59ec97f52.

This change broke every efl build locally, as well as on Jenkins, for me.

CLD lib/ethumb_client/libethumb_client.la
/bin/sh: line 2: 10047 Segmentation fault  (core dumped) 
EFL_RUN_IN_TREE=1
../src/bin/edje/edje_cc -id . -fd . -id ./tests/emotion/data 
tests/emotion/data/theme.edc
tests/emotion/data/theme.edj
Makefile:52584: recipe for target 'tests/emotion/data/theme.edj' failed
make[4]: *** [tests/emotion/data/theme.edj] Error 139
make[4]: *** Waiting for unfinished jobs
/bin/sh: line 2: 10088 Segmentation fault  (core dumped) 
EFL_RUN_IN_TREE=1
../src/bin/edje/edje_cc -id . -fd . -id ./modules/ethumb/emotion 
modules/ethumb/emotion/template.edc
modules/ethumb/emotion/template.edj
Makefile:52590: recipe for target 'modules/ethumb/emotion/template.edj' 
failed
make[4]: *** [modules/ethumb/emotion/template.edj] Error 139
/bin/sh: line 2: 10119 Segmentation fault  (core dumped) 
EFL_RUN_IN_TREE=1
../src/bin/edje/edje_cc -id . -fd . -id ../src/modules/elementary/prefs/
modules/elementary/prefs/elm_prefs_swallow.edc 
modules/elementary/prefs/elm_prefs_swallow.edj
Makefile:52614: recipe for target 
'modules/elementary/prefs/elm_prefs_swallow.edj' failed
make[4]: *** [modules/elementary/prefs/elm_prefs_swallow.edj] Error 139
---
 src/lib/evas/common/evas_thread_render.c | 7 +--
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/src/lib/evas/common/evas_thread_render.c 
b/src/lib/evas/common/evas_thread_render.c
index 562ef29..623e40e 100644
--- a/src/lib/evas/common/evas_thread_render.c
+++ b/src/lib/evas/common/evas_thread_render.c
@@ -1,5 +1,4 @@
 #include "evas_common_private.h"
-#include "eina_cpu_private.h"
 
 #include 
 
@@ -126,8 +125,6 @@ out:
 void
 evas_thread_init(void)
 {
-int core;
-
 if (init_count++) return;
 
 eina_threads_init();
@@ -138,9 +135,7 @@ evas_thread_init(void)
   CRI("Could not create draw thread lock");
 if (!eina_condition_new(_thread_queue_condition, 
_thread_queue_lock))
   CRI("Could not create draw thread condition");
-
-core = _eina_cpu_fast_core_get();
-if (!eina_thread_create(_thread_worker, EINA_THREAD_NORMAL, core,
+if (!eina_thread_create(_thread_worker, EINA_THREAD_NORMAL, 0,
   evas_thread_worker_func, NULL))
   if (!eina_thread_create(_thread_worker, EINA_THREAD_NORMAL, -1,
 evas_thread_worker_func, NULL))

-- 




[EGIT] [core/efl] master 01/01: evas_object_image: fix alpha_set bug.

2016-09-19 Thread Ji-Youn Park
jypark pushed a commit to branch master.

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

commit fc0c0a6e0b967fb283f121ee38d396e848e4f73e
Author: Ji-Youn Park 
Date:   Mon Sep 19 17:02:40 2016 +0830

evas_object_image: fix alpha_set bug.

if image object's first alpha value is false, evas_object_image_alpha_set 
function did not work.
opaque_valid is always 1 even though has_alpha value changed.
---
 src/lib/evas/canvas/evas_object_image.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/evas_object_image.c 
b/src/lib/evas/canvas/evas_object_image.c
index 2dca630..9f41edb 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -752,7 +752,10 @@ _efl_canvas_image_internal_efl_gfx_buffer_alpha_set(Eo 
*eo_obj, Evas_Image_Data
  return;
 
EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
- state_write->has_alpha = has_alpha;
+ {
+state_write->has_alpha = has_alpha;
+state_write->opaque_valid = 0;
+ }
EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
 
if (o->engine_data)

-- 




[EGIT] [tools/enventor] master 01/01: search: fix the wrong replace behavior

2016-09-19 Thread Taehyub Kim
hermet pushed a commit to branch master.

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

commit db198e890152977835e9cccad4865aa926c53e78
Author: Taehyub Kim 
Date:   Mon Sep 19 17:26:44 2016 +0900

search: fix the wrong replace behavior

Summary: fix the wrong behavior of replace logic

Test Plan:
1. launch enventor with basic template
2. open search window
3. input part keyword to the find entry
4. input some text to the replace with entry
5. press next button and find part keyword
6. press replace button again and again until all of keyword are changed
7. check it is working correctly

Reviewers: Jaehyun_Cho, NikaWhite, bowonryu, Hermet

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

diff --git a/src/bin/search.c b/src/bin/search.c
index 12a7453..6cd821c 100644
--- a/src/bin/search.c
+++ b/src/bin/search.c
@@ -228,6 +228,7 @@ replace_proc(search_data *sd)
if (strcmp(find, utf8)) return EINA_FALSE;
const char *replace = elm_entry_entry_get(sd->en_replace);
enventor_item_text_insert(sd->it, replace);
+   enventor_item_select_none(sd->it);
free(utf8);
return EINA_TRUE;
 }

-- 




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

2016-09-19 Thread Stefan Schmidt
Hello.

Summary:
o Enabled systemd on Jenkins builds again as the dependency is available now
o Around 40 new test cases have been added

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: 29.97% (30.62%) failed.
https://build.enlightenment.org/

Unit tests:
o 884 (845) unit tests for efl

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

Coverity:
o EFL: Outstanding defects 84 (85) with a density of 0.08 (0.08)
o Enlightenment: Outstanding defects 0 (0) with a density of 0 (0)
o Terminology: Outstanding defects 0 (0) with a density of 0 (0)
o Rage: Outstanding defects 0 (0) with a density of 0 (0)

Phab:
o Total bug count: 973 (947)
https://phab.enlightenment.org/maniphest/report/burn/
o Pending patch reviews: 109 (107)

regards
Stefan Schmidt

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


[EGIT] [core/efl] master 01/01: elm_menu: fix callback deletion from NULL object

2016-09-19 Thread Andrii Kroitor
hermet pushed a commit to branch master.

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

commit 1d08e8d30a7e2f7a217ffb5526f29db87127dc2e
Author: Andrii Kroitor 
Date:   Mon Sep 19 16:47:28 2016 +0900

elm_menu: fix callback deletion from NULL object

Reviewers: cedric, raster, Hermet

Reviewed By: Hermet

Subscribers: jpeg, reutskiy.v.v

Differential Revision: https://phab.enlightenment.org/D4294
---
 src/lib/elementary/elm_menu.c | 11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/lib/elementary/elm_menu.c b/src/lib/elementary/elm_menu.c
index 8ec5507..86822e3 100644
--- a/src/lib/elementary/elm_menu.c
+++ b/src/lib/elementary/elm_menu.c
@@ -701,10 +701,13 @@ _elm_menu_efl_canvas_group_group_del(Eo *obj, 
Elm_Menu_Data *sd)
 
_elm_dbus_menu_unregister(obj);
 
-   evas_object_event_callback_del_full
- (sd->parent, EVAS_CALLBACK_RESIZE, _parent_resize_cb, obj);
-   evas_object_event_callback_del_full
- (sd->parent, EVAS_CALLBACK_DEL, _parent_del_cb, obj);
+   if (sd->parent)
+ {
+evas_object_event_callback_del_full
+   (sd->parent, EVAS_CALLBACK_RESIZE, _parent_resize_cb, obj);
+evas_object_event_callback_del_full
+   (sd->parent, EVAS_CALLBACK_DEL, _parent_del_cb, obj);
+ }
 
EINA_LIST_FREE(sd->items, eo_item)
  _item_del(eo_item);

-- 




[EGIT] [core/enlightenment] master 01/01: fix korean translation mismatch

2016-09-19 Thread YeongJong Lee
hermet pushed a commit to branch master.

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

commit 8c354cf36fcf7383b29855a658f63d1d9cb9d7f0
Author: YeongJong Lee 
Date:   Mon Sep 19 16:43:02 2016 +0900

fix korean translation mismatch

Summary:
other 'edge' is translated into '가장자리'.
but this one is translated into '테두리'

Test Plan:
Open Settings Panel - Input - Edge Bindings - Add
Select Left Edge

Reviewers: zmike!, Hermet

Reviewed By: Hermet

Subscribers: cedric, conr2d

Differential Revision: https://phab.enlightenment.org/D4297
---
 po/ko.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/po/ko.po b/po/ko.po
index 2a6730e..77fd2c5 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -5705,7 +5705,7 @@ msgstr "WIN"
 
 #: src/modules/conf_bindings/e_int_config_edgebindings.c:1393
 msgid "Left Edge"
-msgstr "왼쪽 테두리"
+msgstr "왼쪽 가장자리"
 
 #: src/modules/conf_bindings/e_int_config_edgebindings.c:1397
 msgid "Top Edge"

--