Re: [E-devel] eina_log and threads

2016-10-28 Thread The Rasterman
On Sat, 29 Oct 2016 01:50:21 -0200 Gustavo Sverzut Barbieri
 said:

> On Sat, Oct 29, 2016 at 12:07 AM, Carsten Haitzler 
> wrote:
> > On Fri, 28 Oct 2016 14:15:39 +0200 thomasg  said:
> >
> >> On Fri, Oct 28, 2016 at 4:08 AM, Carsten Haitzler 
> >> wrote:
> >>
> >> > On Thu, 27 Oct 2016 09:16:02 -0200 Gustavo Sverzut Barbieri
> >> >  said:
> >> >
> >> > > Hi all,
> >> > >
> >> > > eina_log has a feature to print the thread that generated the log as
> >> > > in "[T:XX]" prefix, which is handy during development or debug.
> >> > >
> >> > > But that is off by default and the only way to enable is using
> >> > > eina_log_threads_enable() call.
> >> > >
> >> > > So:
> >> > >
> >> > >  1) could we make that an envvar to enable/disable it?
> >> >
> >> > i see no reason why not
> >> >
> >> > >  2) could we default to TRUE if no envvar was used?
> >> >
> >> > hmmm we already putr pid, process, file, line number, function... a
> >> > T:0x3f wouldnt really hurt. of an 80 wide terminal 100 chars is just
> >> > this header already. may as well start making this multi-line anyway. :)
> >> >
> >>
> >> While any extra debugging info is nice, and I like that it can be
> >> controlled at runtime, I think it should be off by default.
> >
> > have you seen the log lines? its 100 chars of stuff long before the log
> > itself... does an extra integer or hex value like th:0x123 really make a
> > difference?
> >
> >> Log output that contains only really necessary information is much more
> >> readable, and most of the time, thread information will not be at all
> >> relevant nor useful.
> >>
> >> Logging isn't necessarily used for program debugging, it mainly is used for
> >> error reporting, which may be any number of errors, be it user or input
> >> errors.
> >> Threading information is exclusively useful for debugging, and I do think
> >> debugging should always be off by default and only activated when actually
> >> needed.
> >
> > actually it might be useful for user reporting. like thread 0x12 says A and
> > thread 0x54 says b. knowing this is useful for a report. the PID there
> > always and is in the same ballpark of usefulness.
> 
> agreed, that's why it's nice to know if it was done in a thread or not.
> 
> as for long lines, we already have separate vars that disable a big
> part of it... maybe offer an EINA_LOG_SHORTLINE=1 that disables them
> all?

that makes sense. making thread info optional but the rest all there by default
makes no sense to me. having a "short line" that maybe just reports filename
+line number would be useful (that's enough to track it down in most cases).
remove the full path from the file too- just the last file after the last / if
there are /'s. :)

and maybe a minimal which is just "ERR: xxx" where xxx is the log string
content and no file/line/process etc.

but thread info imho belongs together with pid and other such info anyway.:)

> >> To be honest, I think eina_log default output is already a little bit too
> >> cluttered and it may indeed already be useful to make it a seperate line
> >> header.
> >>
> >> That said, I love eina_log and it is certainly one of my favorite EFL
> >> features!
> 
> :-)
> 
> -- 
> Gustavo Sverzut Barbieri
> --
> Mobile: +55 (16) 99354-9890
> 
> --
> The Command Line: Reinvented for Modern Developers
> Did the resurgence of CLI tooling catch you by surprise?
> Reconnect with the command line and become more productive. 
> Learn the new .NET and ASP.NET CLI. Get your free copy!
> http://sdm.link/telerik
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


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


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


Re: [E-devel] eina_log and threads

2016-10-28 Thread Gustavo Sverzut Barbieri
On Sat, Oct 29, 2016 at 12:07 AM, Carsten Haitzler  wrote:
> On Fri, 28 Oct 2016 14:15:39 +0200 thomasg  said:
>
>> On Fri, Oct 28, 2016 at 4:08 AM, Carsten Haitzler 
>> wrote:
>>
>> > On Thu, 27 Oct 2016 09:16:02 -0200 Gustavo Sverzut Barbieri
>> >  said:
>> >
>> > > Hi all,
>> > >
>> > > eina_log has a feature to print the thread that generated the log as
>> > > in "[T:XX]" prefix, which is handy during development or debug.
>> > >
>> > > But that is off by default and the only way to enable is using
>> > > eina_log_threads_enable() call.
>> > >
>> > > So:
>> > >
>> > >  1) could we make that an envvar to enable/disable it?
>> >
>> > i see no reason why not
>> >
>> > >  2) could we default to TRUE if no envvar was used?
>> >
>> > hmmm we already putr pid, process, file, line number, function... a T:0x3f
>> > wouldnt really hurt. of an 80 wide terminal 100 chars is just this header
>> > already. may as well start making this multi-line anyway. :)
>> >
>>
>> While any extra debugging info is nice, and I like that it can be
>> controlled at runtime, I think it should be off by default.
>
> have you seen the log lines? its 100 chars of stuff long before the log
> itself... does an extra integer or hex value like th:0x123 really make a
> difference?
>
>> Log output that contains only really necessary information is much more
>> readable, and most of the time, thread information will not be at all
>> relevant nor useful.
>>
>> Logging isn't necessarily used for program debugging, it mainly is used for
>> error reporting, which may be any number of errors, be it user or input
>> errors.
>> Threading information is exclusively useful for debugging, and I do think
>> debugging should always be off by default and only activated when actually
>> needed.
>
> actually it might be useful for user reporting. like thread 0x12 says A and
> thread 0x54 says b. knowing this is useful for a report. the PID there always
> and is in the same ballpark of usefulness.

agreed, that's why it's nice to know if it was done in a thread or not.

as for long lines, we already have separate vars that disable a big
part of it... maybe offer an EINA_LOG_SHORTLINE=1 that disables them
all?


>> To be honest, I think eina_log default output is already a little bit too
>> cluttered and it may indeed already be useful to make it a seperate line
>> header.
>>
>> That said, I love eina_log and it is certainly one of my favorite EFL
>> features!

:-)

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

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


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

2016-10-28 Thread The Rasterman
On Fri, 28 Oct 2016 10:22:19 -0200 "Eduardo Lima (Etrunko)" 
said:

> On Thu, Oct 27, 2016 at 9:24 PM, Simon Lees  wrote:
> 
> >
> >
> > On 10/28/2016 04:37 AM, Eduardo Lima (Etrunko) wrote:
> > > Hmm, maybe it is related to the issue I reported these days, can you
> > please
> > > try the steps I and see what  you got?
> > >
> > > https://phab.enlightenment.org/T4730
> > >
> > > On Thu, Oct 27, 2016 at 11:44 AM, Jeff Hoogland 
> > > wrote:
> > >
> > >> Finally getting with the times and upgrading to the latest EFL in Bodhi
> > >> since it doesn't cause hard locks with E17 anymore. I am having a much
> > more
> > >> minor issue with some of our themes though. Text doesn't appear to take
> > >> space properly any more for certain objects like it did with previous
> > EFL
> > >> versions.
> > >>
> > >> Screenshot:
> > >> https://cdn.scrot.moe/images/2016/10/27/shot-2016-10-27_13-28-32.jpg
> > >>
> > >> The module highlighted in the corner is the clock module. It just
> > displays
> > >> "..." instead of the time like it did with previous EFL versions I used
> > it
> > >> with.
> > >>
> > >> The everything launcher also displays "..." instead of the text you are
> > >> searching for once I type more than a single character.
> > >>
> > >> Theme source is here -> https://github.com/JeffHoogland/MokshaForum
> > >>
> > >> Someone else did the bulk of work on these and I am just trying to patch
> > >> them up as issues like this appear. Any suggestions on where to look to
> > fix
> > >> these text sizing issues with EFL 1.18?
> > >>
> >
> > At a guess if the clock etc is just a text part (label) you probably
> > need to add "text.ellipsis: -1;" so that the text doesn't get truncated
> > with ..., this isn't exactly a new efl change though, its atleast 2
> > years old from memory and all the newer themes were patched to fix it at
> > one point or another. My guess is when you compile you get a bunch of
> > warnings about places where it needs fixing.
> >
> >
> 
> This fixed the issue with klok indeed, but I haven' t seen any warnings
> about that in compilation.


the issue in the theme there above was fit: 0 1. it said to fit vertically
but NOT horizontally. the horizontyal size was not changed. just a few pixels
of change - eg if fontsets change or freetype changes rendering policies will
be able to go from text to "..."  there. so some minor padding changes (that
can happen) based on font sizing or handling unicode text better etc. can
happily caus this and this is to be expected. if you dont want this.. do fit: 1
1 (fit horizontally too so font size goes down) or force text.min: 1 1 (ie
make part min size the size of the actual text).t he theme didnt do this thus
the issue it hit. so basically. theme bug. didn't account for changes like
scaling, font sizing, font engine changes etc. and thus ended up with text
being truncate.


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


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


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


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

2016-10-28 Thread The Rasterman
On Fri, 28 Oct 2016 07:30:26 -0400 Christopher Michael 
said:

> On 10/27/2016 10:28 PM, Carsten Haitzler wrote:
> > so some thoughts:
> >
> > 1. wayland is client-side decoration land. let's not argue csd vs ssd
> > (server side decorations ala traditional x11). one way or another csd is
> > where things are going and there are good reasons for it being better in
> > many ways. in the spirit of csd we likely will do what gnome does and use
> > csd on x11 too. it can be done and thus makes wl themes/display and window
> > layout and features the same as x11. ultimately this can apply to windows
> > and osx too.
> >
> 
> As this is the direction that things are going anyway, I think it's a 
> good idea. Server side decorations conflict with wayland principles of 
> client-side decorations, and ultimately (imo) only serve to complicate 
> matters. While the theory of Server side decorations in Wayland was an 
> interesting one, it does not have any real traction in the other toolkit 
> camps (afaik) and I don't believe that any other compositor is 
> implementing them either, so this I agree with.

i thought kwin/kde are in the "we hate CSD and will do SSD" camp? they are the
only ones btw. by doing this they do complicate life though... but they will
need to handle CSD clients anyway and not force frames so i guess we can plough
on. in x it's a bit different as we need to advertise the shadow area so the wm
can "cut that out" and not all wm's will know about this, but since gnome has
been doing it and gtk3... they will need to begin to do it anyway... so i say -
rely on that and also do it anyway.

> 
> > 2. given this direction we could be even more crazy and display like
> > wayland by keeping a set of pixmaps we render to and "sending" the pixmaps
> > to the compositor rather than doing the std x11 composite way. only for efl
> > apps but this should also fix bugs like junk content when you resize a
> > window until client catches up. this borrows wl's solution for this into
> > x11. the sw engine could switch easily. gl would need a little work, BUT
> > with gl now we don't need buffer age for partial rendering. hooray! this
> > would also help us unify api's, display paths and code paths between x11
> > and wayland too at this lower level. yes - it needs compositor support
> > which means we still need the alternate path anyway... but this path could
> > be more optimal... :)
> >
> 
> > 3. xcb was a valiant effort, but it is not even 1:1 feature for feature up
> > to date with xlib. it's off by default because of this and we need xlib for
> > gl anyway. we cant dump xlib. it's just a lot of code in our tree that we
> > likely could remove to clear out some "cruft". not to say work on xcb has
> > been bad. it's been good.
> 
> :)
> 
>   it's a very very large amount of useful code but it just has
> > never proven to be any real big gains and lack of full featured
> > implementation (it's 98% there) means it kind of isn't useful. so how about
> > we drop it to simplify?
> >
> 
> Given that work on xcb itself seems to have stalled (meaning I've not 
> seen any efforts for it to get feature parity with xlib), I would say 
> removing it would be the way to go. While I am partial to the xcb code 
> (being the one who implemented it), having it in the codebase and not 
> being used is just pointless, and as you've stated we still need xlib to 
> handle gl in there anyway so may as well just stick with xlib.

ok. cool. :)

> Cheers,
> dh
> 
> > thoughts? (#1 likely will happen anyway, #3 is easy and we lose nothing, #2
> > is still in the process of being through out).
> >
> 
> 
> --
> The Command Line: Reinvented for Modern Developers
> Did the resurgence of CLI tooling catch you by surprise?
> Reconnect with the command line and become more productive. 
> Learn the new .NET and ASP.NET CLI. Get your free copy!
> http://sdm.link/telerik
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


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


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


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

2016-10-28 Thread The Rasterman
On Fri, 28 Oct 2016 10:16:00 -0200 Gustavo Sverzut Barbieri
 said:

> Em sexta-feira, 28 de outubro de 2016, Carsten Haitzler <
> ras...@rasterman.com> escreveu:
> 
> > so some thoughts:
> >
> > 1. wayland is client-side decoration land. let's not argue csd vs ssd
> > (server
> > side decorations ala traditional x11). one way or another csd is where
> > things
> > are going and there are good reasons for it being better in many ways. in
> > the
> > spirit of csd we likely will do what gnome does and use csd on x11 too. it
> > can
> > be done and thus makes wl themes/display and window layout and features the
> > same as x11. ultimately this can apply to windows and osx too.
> 
> 
> The motivation is better usage of the surface. Instead of few buttons and
> title, it can provide more useful information and more actions, like a
> menu, preview or even tabs as done by chromium.

well actually in wayland it's "pixel perfection" and removing wm/compositor and
client complexity of having to sync a frame and content.

but this opens up the door to the above too. having titlebars that are "more
useful" etc.

> Then not just adopting CSD, but also trying to provide an API to better use
> these while keeping WM features, such as the window menu and useful bits
> such as "take screenshot", move to desktop... (which AFAIR is lost with
> gnome CSD decorations)

that is the point. if we add all these features - if we dont move to csd, we
have to provide a "non-csd" version of them. if we graduate to csd then we dont
have to maintain both paths and life is far easier.

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


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


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


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

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

> On Thu, Oct 27, 2016 at 4:53 PM, Carsten Haitzler 
> wrote:
> > On Thu, 27 Oct 2016 09:05:37 -0700 Cedric BAIL  said:
> >> On Oct 26, 2016 6:19 PM, "Gustavo Sverzut Barbieri" 
> >> wrote:
> >> > barbieri pushed a commit to branch master.
> >> >
> >> http://git.enlightenment.org/core/efl.git/commit/?id=574e4b8ad56b0cced409417f76e90205fb28fe22
> >> >
> >> > commit 574e4b8ad56b0cced409417f76e90205fb28fe22
> >> > Author: Gustavo Sverzut Barbieri 
> >> > Date:   Wed Oct 26 23:17:10 2016 -0200
> >> >
> >> > efl_io_copier: work around efl_future weirdness.
> >> >
> >> > The pointer given to efl_future_use() should be NULL-ified before
> >> > calling my function, since that pointer has no meaning anymore.
> >> >
> >> > The copier relied on pd->job being NULL to avoid useless
> >> > rescheduling, it was being reached with non-null, but that pointer is no
> >> > longer useful.
> >> >
> >> > Moreover, I'm not sure if the second pointer, with the new future
> >> > won't be modified to NULL when the efl_future continues :-(
> >>
> >> Yes, this is a problem I am well aware off.due to the use of eo for future,
> >> weak ref are nulled only after the future is destroyed. But the real
> >> correct behavior is to have it nulled as soon as it is fulfilled before
> >> even calling any callback, because weak ref are to be used by cancel only.
> >> They shouldn't exist when cancel can't be called anymore. I intend to fix
> >> this when I move future away from eo.
> >
> > futures should not be moved away from eo. futures are what you cancel and
> > this discussion is going to go in a circle. because to cancel them you need
> > a handle to keep around... they MUST be eo. for safety. for reffing. etc.
> 
> You may have missed a few information. Reffing is uneeded as we rely
> on returning to the main loop to actually trigger a future. We have

if i want to keep the value around BY reffing the future in order to store
it... we've been over this.

and then the eo ptr safety and type/call safety. call a promise method on a
future? invalid. caught at runtime. try and cancel an already deleted future?
safe. caught at runtime. keep it with eo. this conversation is going around in
circles and we've been over this many times.

> several problem with eo. First one is weak reference don't behave as
> they should with future. You want all weak reference to disapear as
> soon as a promise resolve, not after the future are done. Otherwise

a weak reference TO a future goes away when the FUTURE is done. not the
promise. promise is input to the future. it's irrelevant there. a weak ref to
promises should go away when the promise does. different things.

> you end up with the line of code above. Second problem, if you can
> efl_future_then on NULL future, you should trigger the fail callback
> right away. This is not doable in eo without wrapping that call. Other

let's stand back. no. i dont think the fail call should be called here. what
happens in js when i do:

var x = 10
x.then(function ...).else(function ...);

? it certainly will NOT call the else callback function. it'll cause a runtime
error that the js runtime may just complain about and return (ver likely).

so why are you trying to do things other languages which use promises heavily
do not do? it's a nop to do a then on an invalid future object. no callback
will be called. this should basically NEVER happen anyway. you will set up the
then right after creation and return of the future, so if futures may be
invalid (its possible they cant be created) then

future = efl_whatever_do(obj);
if (!future) { error - no futrue) }
else efl_future_then(future, ...);

if future != NULL it must by definition be valid, and if it is not then not
calling anything is as good a response as any.

> than that, future are using no other feature of eo except for safe

incorrect. use future to store value for longer. as above. ALSO call safety.
ALSO i can attach data to a future of my own and use it later on:

efl_key_data_set(future, "somedata", data);
...
data = efl_key_data_get(future, "somedata");

e.g. in the future then/else cbs or progress cb. as an eo object i can have
MULTIPLE progress event listeners. i can "glue" a progress widget DIRECTLY to
futures - have multiple widgets watching and displaying status of that future.
i can name my futures and look them up by name. (efl_name_set()). i can add
comments for debugging. i can listen to the del event of a future to know when
it's done from MULTIPLE sources and not just the then/else cb's. e.g. the
download dialog could LISTEN to the future of a file download and auto delete
itself when the future is deleted. just have to listen and "on delete" nuke the
dialog too. in fact i can make the dialog a CHILD OBJECT of the future even...

you dismiss all of this as "not useful at all and thus i'll remove it all
because i want to call the else fu

Re: [E-devel] eina_log and threads

2016-10-28 Thread The Rasterman
On Fri, 28 Oct 2016 14:15:39 +0200 thomasg  said:

> On Fri, Oct 28, 2016 at 4:08 AM, Carsten Haitzler 
> wrote:
> 
> > On Thu, 27 Oct 2016 09:16:02 -0200 Gustavo Sverzut Barbieri
> >  said:
> >
> > > Hi all,
> > >
> > > eina_log has a feature to print the thread that generated the log as
> > > in "[T:XX]" prefix, which is handy during development or debug.
> > >
> > > But that is off by default and the only way to enable is using
> > > eina_log_threads_enable() call.
> > >
> > > So:
> > >
> > >  1) could we make that an envvar to enable/disable it?
> >
> > i see no reason why not
> >
> > >  2) could we default to TRUE if no envvar was used?
> >
> > hmmm we already putr pid, process, file, line number, function... a T:0x3f
> > wouldnt really hurt. of an 80 wide terminal 100 chars is just this header
> > already. may as well start making this multi-line anyway. :)
> >
> 
> While any extra debugging info is nice, and I like that it can be
> controlled at runtime, I think it should be off by default.

have you seen the log lines? its 100 chars of stuff long before the log
itself... does an extra integer or hex value like th:0x123 really make a
difference?

> Log output that contains only really necessary information is much more
> readable, and most of the time, thread information will not be at all
> relevant nor useful.
> 
> Logging isn't necessarily used for program debugging, it mainly is used for
> error reporting, which may be any number of errors, be it user or input
> errors.
> Threading information is exclusively useful for debugging, and I do think
> debugging should always be off by default and only activated when actually
> needed.

actually it might be useful for user reporting. like thread 0x12 says A and
thread 0x54 says b. knowing this is useful for a report. the PID there always
and is in the same ballpark of usefulness.

> To be honest, I think eina_log default output is already a little bit too
> cluttered and it may indeed already be useful to make it a seperate line
> header.
> 
> That said, I love eina_log and it is certainly one of my favorite EFL
> features!
> 
> --
> thomasg
> --
> The Command Line: Reinvented for Modern Developers
> Did the resurgence of CLI tooling catch you by surprise?
> Reconnect with the command line and become more productive. 
> Learn the new .NET and ASP.NET CLI. Get your free copy!
> http://sdm.link/telerik
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


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


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


[EGIT] [core/efl] master 01/01: elm win - add ifdef around wl code so it compiles with wl off

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

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

commit 30d7410699875cce2e255e3ebf862b3e7dbd641a
Author: Carsten Haitzler (Rasterman) 
Date:   Sat Oct 29 10:15:40 2016 +0900

elm win - add ifdef around wl code so it compiles with wl off
---
 src/lib/elementary/efl_ui_win.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 2638314..5474d2a 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -2224,9 +2224,11 @@ _efl_ui_win_hide(Eo *obj, Efl_Ui_Win_Data *sd)
if (sd->pointer.ee)
  {
 ecore_evas_hide(sd->pointer.ee);
+#ifdef HAVE_ELEMENTARY_WL2
 sd->pointer.surf = NULL;
 ecore_wl2_window_pointer_set(sd->wl.win, NULL,
  sd->pointer.hot_x, sd->pointer.hot_y);
+#endif
  }
 #endif
 

-- 




[EGIT] [core/efl] master 01/01: eio model: remove useless efreet_mime_type_get call

2016-10-28 Thread Vitor Sousa
vitorsousa pushed a commit to branch master.

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

commit 9f2270804bd648ab9fcf0bc67f7e607435bfb325
Author: Vitor Sousa 
Date:   Fri Oct 28 21:19:37 2016 -0200

eio model: remove useless efreet_mime_type_get call
---
 src/lib/eio/eio_model.c | 6 --
 1 file changed, 6 deletions(-)

diff --git a/src/lib/eio/eio_model.c b/src/lib/eio/eio_model.c
index 0302135..636022d 100644
--- a/src/lib/eio/eio_model.c
+++ b/src/lib/eio/eio_model.c
@@ -348,12 +348,6 @@ _eio_model_efl_model_property_get(Eo *obj, Eio_Model_Data 
*priv, const char *pro
  }
else if(strcmp(_eio_model_prop_names[EIO_MODEL_PROP_MIME_TYPE], property) 
== 0)
  {
-value = efreet_mime_type_get(priv->path);
-if (value == NULL)
-  {
- value = "";
- WRN("could not get mime type for: %s", priv->path);
-  }
 property_name = EIO_MODEL_PROP_MIME_TYPE;
  }
else if(strcmp(_eio_model_prop_names[EIO_MODEL_PROP_MTIME], property) == 0)

-- 




[EGIT] [core/efl] master 01/02: elm_icon: slightly clean-up code

2016-10-28 Thread Jean Guyomarc'h
jayji pushed a commit to branch master.

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

commit e86e741597f10ea435ef70bf902dfa2ac4af9d22
Author: Jean Guyomarc'h 
Date:   Fri Oct 28 23:20:14 2016 +0200

elm_icon: slightly clean-up code

It is unnecessary to use an initialized variable on the stack to hold a
new value and then immediately return it.
---
 src/lib/elementary/elm_icon.c | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/src/lib/elementary/elm_icon.c b/src/lib/elementary/elm_icon.c
index 3e0904b..68c9e64 100644
--- a/src/lib/elementary/elm_icon.c
+++ b/src/lib/elementary/elm_icon.c
@@ -327,11 +327,7 @@ _elm_icon_efl_file_file_set(Eo *obj, Elm_Icon_Data *sd, 
const char *file, const
  ELM_SAFE_FREE(sd->stdicon, eina_stringshare_del);
 
if (!sd->is_video)
- {
-Eina_Bool int_ret = EINA_FALSE;
-int_ret = efl_file_set(efl_super(obj, MY_CLASS), file, key);
-return int_ret;
- }
+ return efl_file_set(efl_super(obj, MY_CLASS), file, key);
 
/* parent's edje file setting path replicated here (we got .eet
 * extension, so bypassing it) */

-- 




[EGIT] [core/efl] master 02/02: elm_icon: avoid useless assignment

2016-10-28 Thread Jean Guyomarc'h
jayji pushed a commit to branch master.

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

commit 2bf65e4ef89d74b5702dfce50e79711dbf214d66
Author: Jean Guyomarc'h 
Date:   Fri Oct 28 23:23:15 2016 +0200

elm_icon: avoid useless assignment

Assigning id->edje to EINA_TRUE in a code path triggered when id->edje
is EINA_FALSE instead of unconditionnaly setting it to EINA_TRUE avoids
to assign id->edje to itself.
---
 src/lib/elementary/elm_icon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_icon.c b/src/lib/elementary/elm_icon.c
index 68c9e64..303608b 100644
--- a/src/lib/elementary/elm_icon.c
+++ b/src/lib/elementary/elm_icon.c
@@ -344,9 +344,9 @@ _elm_icon_efl_file_file_set(Eo *obj, Elm_Icon_Data *sd, 
const char *file, const
 if (id->show)
   evas_object_show(id->img);
 evas_object_clip_set(id->img, pclip);
+id->edje = EINA_TRUE;
  }
 
-   id->edje = EINA_TRUE;
if (!edje_object_file_set(id->img, file, key))
  {
 ERR("failed to set edje file '%s', group '%s': %s", file, key,

-- 




[EGIT] [core/efl] master 01/01: Luncher: Improve indicator theme.

2016-10-28 Thread Stephen okra Houston
okra pushed a commit to branch master.

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

commit ff6bb81465af6c334205a0859c636b112782c193
Author: Stephen okra Houston 
Date:   Fri Oct 28 15:04:43 2016 -0500

Luncher: Improve indicator theme.
---
 data/elementary/themes/edc/luncher.edc | 36 +++---
 1 file changed, 16 insertions(+), 20 deletions(-)

diff --git a/data/elementary/themes/edc/luncher.edc 
b/data/elementary/themes/edc/luncher.edc
index 14ac271..cb25f86 100644
--- a/data/elementary/themes/edc/luncher.edc
+++ b/data/elementary/themes/edc/luncher.edc
@@ -59,44 +59,36 @@ group { name: "e/gadget/luncher/icon";
 inherit: "default" 0.0;
 visible: 1;
 rel1.to_y: "e.swallow.icon";
+rel2.to_y: "e.swallow.icon";
 rel1.relative: 0.0 0.025;
-rel2.to: "e.swallow.icon";
-rel2.relative: 0.0 0.975;
-rel1.offset: 0 0;
-rel2.offset: -2 0;
+rel2.relative: 0.05 0.975;
 color: 51 153 255 255;
  }
  description { state: "on_top" 0.0;
 inherit: "default" 0.0;
 visible: 1;
 rel1.to_x: "e.swallow.icon";
+rel2.to_x: "e.swallow.icon";
 rel1.relative: 0.025 0.0;
-rel2.to: "e.swallow.icon";
-rel2.relative: 0.975 0.0;
-rel1.offset: 0 0;
-rel2.offset: 0 -2;
+rel2.relative: 0.975 0.05;
 color: 51 153 255 255;
  }
  description { state: "on_right" 0.0;
 inherit: "default" 0.0;
 visible: 1;
-rel1.to: "e.swallow.icon";
-rel1.relative: 1.0 0.025;
+rel1.to_y: "e.swallow.icon";
 rel2.to_y: "e.swallow.icon";
+rel1.relative: 0.95 0.025;
 rel2.relative: 1.0 0.975;
-rel1.offset: 0 0;
-rel2.offset: 2 0;
 color: 51 153 255 255;
  }
  description { state: "on_bottom" 0.0;
 inherit: "default" 0.0;
 visible: 1;
-rel1.to: "e.swallow.icon";
-rel1.relative: 0.025 1.0;
+rel1.to_x: "e.swallow.icon";
 rel2.to_x: "e.swallow.icon";
+rel1.relative: 0.025 0.95;
 rel2.relative: 0.975 1.0;
-rel1.offset: 0 0;
-rel2.offset: 0 2;
 color: 51 153 255 255;
  }
   }
@@ -110,23 +102,27 @@ group { name: "e/gadget/luncher/icon";
  }
  description { state: "on_left" 0.0;
 inherit: "default" 0.0;
-rel1.offset: 5 1;
+rel1.relative: 0.05 0.0;
+rel1.offset: 1 1;
 rel2.offset: 0 -1;
  }
  description { state: "on_top" 0.0;
 inherit: "default" 0.0;
-rel1.offset: 1 5;
+rel1.relative: 0.0 0.05;
+rel1.offset: 1 1;
 rel2.offset: -1 0;
  }
  description { state: "on_right" 0.0;
 inherit: "default" 0.0;
+rel2.relative: 0.95 1.0;
 rel1.offset: 0 1;
-rel2.offset: -5 -1;
+rel2.offset: -1 -1;
  }
  description { state: "on_bottom" 0.0;
 inherit: "default" 0.0;
+rel2.relative: 1.0 0.95;
 rel1.offset: 1 0;
-rel2.offset: -1 -5;
+rel2.offset: -1 -1;
  }
   }
   part { name: "obackground"; type: RECT;

-- 




[EGIT] [core/efl] master 01/02: elementary: Remove debug printing

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

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

commit 3749ea47f9bdd21409adf6b9e259b42ac377fb2e
Author: Chris Michael 
Date:   Fri Oct 28 14:27:17 2016 -0400

elementary: Remove debug printing

NB: No functional changes, just removing left over prints

Signed-off-by: Chris Michael 
---
 src/lib/elementary/efl_ui_win.c | 4 
 1 file changed, 4 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 46af76d..2638314 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -2972,14 +2972,11 @@ _elm_win_wl_cursor_set(Evas_Object *obj, const char 
*cursor)
  {
 Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0;
 
-fprintf(stderr, "Elm Win Cursor Set: %s\n", cursor);
-
 if (cursor)
   {
  if (!_elm_theme_object_set(sd->obj, sd->pointer.obj,
 "cursor", cursor, "default"))
{
-  fprintf(stderr, "\tCursor %s not found in theme\n", cursor);
   _elm_theme_object_set(sd->obj, sd->pointer.obj,
 "pointer", "base", "default");
}
@@ -2995,7 +2992,6 @@ _elm_win_wl_cursor_set(Evas_Object *obj, const char 
*cursor)
  mw = 32;
  mh = 32;
   }
-fprintf(stderr, "\tMin Size: %d %d\n", mw, mh);
 evas_object_move(sd->pointer.obj, 0, 0);
 evas_object_resize(sd->pointer.obj, mw, mh);
 edje_object_part_geometry_get(sd->pointer.obj,

-- 




[EGIT] [core/efl] master 02/02: elementary_theme: Add 'xterm' cursor into theme

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

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

commit c7fc41a2fcf60b1f6ee18787c680d62ffc03eba0
Author: Chris Michael 
Date:   Fri Oct 28 14:27:50 2016 -0400

elementary_theme: Add 'xterm' cursor into theme

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

diff --git a/data/elementary/themes/edc/elm/cursor.edc 
b/data/elementary/themes/edc/elm/cursor.edc
index fe192f9..67e374a 100644
--- a/data/elementary/themes/edc/elm/cursor.edc
+++ b/data/elementary/themes/edc/elm/cursor.edc
@@ -111,3 +111,41 @@ group { name: "elm/cursor/blank/default";
   }
}
 }
+
+group { name: "elm/cursor/xterm/default";
+   images.image: "pointer_entry_bar.png" COMP;
+   images.image: "led_dot_white.png" COMP;
+   parts {
+  part { name: "base"; mouse_events: 0; scale: 1;
+ description { state: "default" 0.0;
+min: 15 20;
+max: 15 9;
+image.normal: "pointer_entry_bar.png";
+image.border: 0 0 10 10;
+rel1.offset: 0 2;
+rel2.offset: -1 -3;
+ }
+  }
+  part { name: "elm.swallow.hotspot"; type: SWALLOW;
+ description { state: "default" 0.0;
+visible: 0;
+fixed: 1 1;
+rel1.to: "base";
+rel2.to: "base";
+rel1.relative: 0.5 0.5;
+rel2.relative: 0.5 0.5;
+rel2.offset: 0 0;
+ }
+  }
+  part { name: "shine";
+ description { state: "default" 0.0;
+rel1.to: "base";
+rel2.to: "base";
+image.normal: "led_dot_white.png";
+max: 27 27;
+aspect: 1.0 1.0;
+aspect_preference: VERTICAL;
+ }
+  }
+   }
+}

-- 




[EGIT] [core/enlightenment] master 01/01: Luncher: Introduce Enlightenment's new launcher/taskbar/iconify manager: Luncher

2016-10-28 Thread Stephen okra Houston
okra pushed a commit to branch master.

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

commit e82ec31175522d92bc7847d3e0bf196a16bf4425
Author: Stephen okra Houston 
Date:   Fri Oct 28 13:26:28 2016 -0500

Luncher: Introduce Enlightenment's new launcher/taskbar/iconify manager: 
Luncher

You are required to update efl along with this update to have the luncher 
theme files.
---
 configure.ac  |1 +
 src/bin/e_module.c|1 +
 src/modules/Makefile.mk   |2 +
 src/modules/Makefile_luncher.mk   |   23 +
 src/modules/conf_applications/e_int_config_apps.c |4 +-
 src/modules/conf_applications/e_mod_main.c|4 +-
 src/modules/luncher/bar.c | 1773 +
 src/modules/luncher/config.c  |  377 +
 src/modules/luncher/e-module-luncher.edj  |  Bin 0 -> 13065 bytes
 src/modules/luncher/luncher.h |   87 +
 src/modules/luncher/mod.c |   87 +
 src/modules/luncher/module.desktop.in |   37 +
 12 files changed, 2392 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index f2b448e..71a1ea4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1121,6 +1121,7 @@ src/modules/packagekit/module.desktop
 src/modules/wl_desktop_shell/module.desktop
 src/modules/wireless/module.desktop
 src/modules/time/module.desktop
+src/modules/luncher/module.desktop
 data/xsession/enlightenment.desktop
 data/etc/sysactions.conf
 data/units/enlightenment.service
diff --git a/src/bin/e_module.c b/src/bin/e_module.c
index 25ec3a7..9bfc317 100644
--- a/src/bin/e_module.c
+++ b/src/bin/e_module.c
@@ -1009,6 +1009,7 @@ _e_module_whitelist_check(void)
   "ibox",
   "layout",
   "lokker",
+  "luncher",
   "mixer",
   "msgbus",
   "notification",
diff --git a/src/modules/Makefile.mk b/src/modules/Makefile.mk
index 0962f9e..ed74f59 100644
--- a/src/modules/Makefile.mk
+++ b/src/modules/Makefile.mk
@@ -94,6 +94,8 @@ include src/modules/Makefile_teamwork.mk
 
 include src/modules/Makefile_lokker.mk
 
+include src/modules/Makefile_luncher.mk
+
 include src/modules/Makefile_shot.mk
 
 include src/modules/Makefile_backlight.mk
diff --git a/src/modules/Makefile_luncher.mk b/src/modules/Makefile_luncher.mk
new file mode 100644
index 000..d867ff8
--- /dev/null
+++ b/src/modules/Makefile_luncher.mk
@@ -0,0 +1,23 @@
+EXTRA_DIST += src/modules/luncher/module.desktop.in \
+src/modules/luncher/e-module-luncher.edj
+if USE_MODULE_IBAR
+luncherdir = $(MDIR)/luncher
+luncher_DATA = src/modules/luncher/e-module-luncher.edj \
+   src/modules/luncher/module.desktop
+
+
+luncherpkgdir = $(MDIR)/luncher/$(MODULE_ARCH)
+luncherpkg_LTLIBRARIES = src/modules/luncher/module.la
+
+src_modules_luncher_module_la_LIBADD = $(MOD_LIBS)
+src_modules_luncher_module_la_CPPFLAGS = $(MOD_CPPFLAGS) -Wall
+src_modules_luncher_module_la_LDFLAGS = $(MOD_LDFLAGS)
+src_modules_luncher_module_la_SOURCES = src/modules/luncher/mod.c \
+src/modules/luncher/luncher.h \
+src/modules/luncher/bar.c \
+ src/modules/luncher/config.c
+
+PHONIES += luncher install-luncher
+luncher: $(luncherpkg_LTLIBRARIES) $(luncher_DATA)
+install-luncher: install-luncherDATA install-luncherpkgLTLIBRARIES
+endif
diff --git a/src/modules/conf_applications/e_int_config_apps.c 
b/src/modules/conf_applications/e_int_config_apps.c
index 91ac0ba..7e22675 100644
--- a/src/modules/conf_applications/e_int_config_apps.c
+++ b/src/modules/conf_applications/e_int_config_apps.c
@@ -84,7 +84,7 @@ e_int_config_apps_ibar(Evas_Object *parent EINA_UNUSED, const 
char *params EINA_
 
e_user_dir_concat_static(buff, "applications/bar/default/.order");
data = E_NEW(E_Config_Data, 1);
-   data->title = eina_stringshare_add(_("IBar Applications"));
+   data->title = eina_stringshare_add(_("Launcher Applications"));
data->dialog = eina_stringshare_add("applications/ibar_applications");
data->icon = eina_stringshare_add("preferences-applications-ibar");
data->filename = eina_stringshare_add(buff);
@@ -98,7 +98,7 @@ e_int_config_apps_ibar_other(Evas_Object *parent EINA_UNUSED, 
const char *path)
 
if (!path) return NULL;
data = E_NEW(E_Config_Data, 1);
-   data->title = eina_stringshare_add(_("IBar Applications"));
+   data->title = eina_stringshare_add(_("Launcher Applications"));
data->dialog = eina_stringshare_add("internal/ibar_other");
data->icon = eina_stringshare_add("preferences-applications-ibar");
data->filename = eina_stringshare_add(path);
diff --git a/src/modules/conf_applications/e_mod_main.c 
b/src/modules/conf_applications/e_mod_main.c
index 41ddea2..cee7f37 100644
--- a/src/modules/conf_applications/e_mod_main.c
+++ b/src/modules/conf_applications/e_mo

[EGIT] [core/efl] master 01/01: Luncher: Add the necessary theme files for Enlightenment's new launcher

2016-10-28 Thread Stephen okra Houston
okra pushed a commit to branch master.

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

commit cf3b1a223566eda923744b3416fed9ff0260a983
Author: Stephen okra Houston 
Date:   Fri Oct 28 13:20:41 2016 -0500

Luncher: Add the necessary theme files for Enlightenment's new launcher
---
 data/elementary/themes/Makefile.am  |   1 +
 data/elementary/themes/default.edc  |   1 +
 data/elementary/themes/edc/comp_effects.edc |   1 +
 data/elementary/themes/edc/luncher.edc  | 806 
 4 files changed, 809 insertions(+)

diff --git a/data/elementary/themes/Makefile.am 
b/data/elementary/themes/Makefile.am
index 14a8151..b8e16c7 100644
--- a/data/elementary/themes/Makefile.am
+++ b/data/elementary/themes/Makefile.am
@@ -56,6 +56,7 @@ elementary/themes/edc/ilist.edc \
 elementary/themes/edc/illume.edc \
 elementary/themes/edc/init.edc \
 elementary/themes/edc/label.edc \
+elementary/themes/edc/luncher.edc \
 elementary/themes/edc/menu.edc \
 elementary/themes/edc/mixer.edc \
 elementary/themes/edc/music_control.edc \
diff --git a/data/elementary/themes/default.edc 
b/data/elementary/themes/default.edc
index de83033..a157329 100644
--- a/data/elementary/themes/default.edc
+++ b/data/elementary/themes/default.edc
@@ -147,6 +147,7 @@ collections {
 #include "edc/packagekit.edc"
 #include "edc/wireless.edc"
 #include "edc/time.edc"
+#include "edc/luncher.edc"
 
 // icons
 #include "edc/icons.edc"
diff --git a/data/elementary/themes/edc/comp_effects.edc 
b/data/elementary/themes/edc/comp_effects.edc
index e7227df..4135ddd 100644
--- a/data/elementary/themes/edc/comp_effects.edc
+++ b/data/elementary/themes/edc/comp_effects.edc
@@ -580,6 +580,7 @@ group { name: "e/comp/effects/iconify/default";
alias: "e/comp/effects/iconify/ibar";
alias: "e/comp/effects/iconify/ibox";
alias: "e/comp/effects/iconify/tasks";
+   alias: "e/comp/effects/iconify/luncher";
inherit: "e/comp/effects/auto/pane";
data.item: "noclip" "1";
script {
diff --git a/data/elementary/themes/edc/luncher.edc 
b/data/elementary/themes/edc/luncher.edc
new file mode 100644
index 000..14ac271
--- /dev/null
+++ b/data/elementary/themes/edc/luncher.edc
@@ -0,0 +1,806 @@
+group { name: "e/gadget/luncher/bar";
+   parts {
+  part { name: "e.swallow.drop"; type: SWALLOW;
+ description { state: "default" 0.0;
+rel1.to: "e.swallow.bar";
+rel2.to: "e.swallow.bar";
+ }
+  }
+  part { name: "e.swallow.bar"; type: SWALLOW;
+ description { state: "default" 0.0;
+rel1.relative: 0.0 0.0;
+rel1.offset: 0 0;
+rel2.relative: 1.0 1.0;
+rel2.offset: -1 -1;
+ }
+  }
+   }
+}
+
+group { name: "e/gadget/luncher/icon";
+   script {
+  public urgent;
+   }
+   parts {
+  part { name: "item_clip"; type: RECT;
+ description { state: "default" 0.0;
+rel1.offset: -100 -100;
+rel2.offset: 99 99;
+color: 255 255 255 255;
+ }
+ description { state: "disabled" 0.0;
+inherit: "default" 0.0;
+color: 255 255 255 64;
+ }
+  }
+  part { name: "background"; type: RECT;
+ clip_to: "item_clip";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+visible: 0;
+rel1.offset: 0 0;
+rel2.offset: 0 -1;
+color: 255 255 255 0;
+ }
+ description { state: "visible" 0.0;
+inherit: "default" 0.0;
+visible: 1;
+color: 255 255 255 50;
+ }
+  }
+  part { name: "indicator"; type: RECT;
+ clip_to: "item_clip";
+ description { state: "default" 0.0;
+visible: 0;
+align: 0.6 0.6;
+color: 255 255 255 0;
+ }
+ description { state: "on_left" 0.0;
+inherit: "default" 0.0;
+visible: 1;
+rel1.to_y: "e.swallow.icon";
+rel1.relative: 0.0 0.025;
+rel2.to: "e.swallow.icon";
+rel2.relative: 0.0 0.975;
+rel1.offset: 0 0;
+rel2.offset: -2 0;
+color: 51 153 255 255;
+ }
+ description { state: "on_top" 0.0;
+inherit: "default" 0.0;
+visible: 1;
+rel1.to_x: "e.swallow.icon";
+rel1.relative: 0.025 0.0;
+rel2.to: "e.swallow.icon";
+rel2.relative: 0.975 0.0;
+rel1.offset: 0 0;
+rel2.offset: 0 -2;
+color: 51 153 255 255;
+ }
+ description { state: "on_right" 0.0;
+inherit: "default" 0.0;
+visible: 1;
+rel1.to: "e.swallow.icon";
+rel1.relative: 1.0 0.025;
+rel2.to_y: "e.swallow.icon";
+rel2.relative: 1.0 0.975;
+rel1.offset: 0 0;
+rel2.offset: 2 0;
+  

[EGIT] [core/efl] master 02/03: elementary_theme: Standardize cursor hotspot swallow names

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

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

commit 61b12035284a9cf9eb445e64de8655858e53c9b9
Author: Chris Michael 
Date:   Fri Oct 28 14:00:55 2016 -0400

elementary_theme: Standardize cursor hotspot swallow names

Signed-off-by: Chris Michael 
---
 data/elementary/themes/edc/elm/cursor.edc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/data/elementary/themes/edc/elm/cursor.edc 
b/data/elementary/themes/edc/elm/cursor.edc
index 356fe8c..fe192f9 100644
--- a/data/elementary/themes/edc/elm/cursor.edc
+++ b/data/elementary/themes/edc/elm/cursor.edc
@@ -87,7 +87,7 @@ group { name: "elm/cursor/hand1/default";
 image.normal: "pointer_hand1.png";
  }
   }
-  part { name: "elm.content.hotspot"; type: SWALLOW;
+  part { name: "elm.swallow.hotspot"; type: SWALLOW;
  description { state: "default" 0.0;
 visible: 0;
 fixed: 1 1;
@@ -103,7 +103,7 @@ group { name: "elm/cursor/hand1/default";
 
 group { name: "elm/cursor/blank/default";
parts {
-  part { name: "elm.content.hotspot"; type: SWALLOW;
+  part { name: "elm.swallow.hotspot"; type: SWALLOW;
  description { state: "default" 0.0;
 visible: 0;
 max: 1 1;

-- 




[EGIT] [core/efl] master 03/03: elementary: Make setting cursors for EFL Wayland client apps work

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

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

commit 1422e61e6207ed6fe21063a15a8fb8475eef9865
Author: Chris Michael 
Date:   Fri Oct 28 14:01:47 2016 -0400

elementary: Make setting cursors for EFL Wayland client apps work

This patch changes els_cursor.c to work with the pointer object
created for EFL Wayland Application windows. This allows any EFL cursors
specified by an application to work in Wayland (ex: elm_test Cursor
tests)

NB: While the code is working, there will still be missing cursors due
to those not being included (yet) in the elm theme. Will continue to
add those as time goes.

@feature

Signed-off-by: Chris Michael 
---
 src/lib/elementary/els_cursor.c | 43 +
 1 file changed, 35 insertions(+), 8 deletions(-)

diff --git a/src/lib/elementary/els_cursor.c b/src/lib/elementary/els_cursor.c
index f25ba35..3037e41 100644
--- a/src/lib/elementary/els_cursor.c
+++ b/src/lib/elementary/els_cursor.c
@@ -241,8 +241,17 @@ _elm_cursor_obj_add(Evas_Object *obj, Elm_Cursor *cur)
 {
int x, y;
 
-   cur->obj = edje_object_add(cur->evas);
+#ifdef HAVE_ELEMENTARY_WL2
+   const char *engine_name;
+
+   engine_name = ecore_evas_engine_name_get(cur->ee);
+   if ((engine_name) &&
+   ((!strcmp(engine_name, ELM_WAYLAND_SHM)) ||
+   (!strcmp(engine_name, ELM_WAYLAND_EGL
+ return EINA_FALSE;
+#endif
 
+   cur->obj = edje_object_add(cur->evas);
if (!cur->obj) return EINA_FALSE;
 
if (!_elm_theme_object_set(obj, cur->obj, "cursor", cur->cursor_name,
@@ -261,7 +270,7 @@ _elm_cursor_obj_add(Evas_Object *obj, Elm_Cursor *cur)
   _elm_cursor_hot_change, cur);
evas_object_event_callback_add(cur->hotobj, EVAS_CALLBACK_RESIZE,
   _elm_cursor_hot_change, cur);
-   edje_object_part_swallow(cur->obj, "elm.content.hotspot", cur->hotobj);
+   edje_object_part_swallow(cur->obj, "elm.swallow.hotspot", cur->hotobj);
 
evas_object_event_callback_add(cur->obj, EVAS_CALLBACK_DEL,
   _elm_cursor_obj_del, cur);
@@ -279,11 +288,11 @@ _elm_cursor_obj_add(Evas_Object *obj, Elm_Cursor *cur)
 static void
 _elm_cursor_set(Elm_Cursor *cur)
 {
-   if (cur->visible) return;
-
evas_event_freeze(cur->evas);
if (!cur->use_engine)
  {
+if (cur->visible) goto end;
+
 if (!cur->obj)
   _elm_cursor_obj_add(cur->owner, cur);
 if (cur->obj)
@@ -307,7 +316,13 @@ _elm_cursor_set(Elm_Cursor *cur)
 #endif
 #ifdef HAVE_ELEMENTARY_WL2
 if (cur->wl.win)
-  ecore_wl2_window_cursor_from_name_set(cur->wl.win, cur->cursor_name);
+  {
+ Evas_Object *top;
+
+ top = elm_widget_top_get(cur->owner);
+ if ((top) && (efl_isa(top, EFL_UI_WIN_CLASS)))
+   _elm_win_wl_cursor_set(top, cur->cursor_name);
+  }
 #endif
 
 #ifdef HAVE_ELEMENTARY_COCOA
@@ -320,6 +335,7 @@ _elm_cursor_set(Elm_Cursor *cur)
   ecore_win32_window_cursor_set(cur->win32.win, cur->win32.cursor);
 #endif
  }
+end:
evas_event_thaw(cur->evas);
 }
 
@@ -375,7 +391,13 @@ _elm_cursor_mouse_out(void *data, Evas *evas EINA_UNUSED, 
Evas_Object *obj EINA_
 #endif
 #ifdef HAVE_ELEMENTARY_WL2
 if (cur->wl.win)
-  ecore_wl2_window_cursor_from_name_set(cur->wl.win, NULL);
+  {
+ Evas_Object *top;
+
+ top = elm_widget_top_get(cur->owner);
+ if ((top) && (efl_isa(top, EFL_UI_WIN_CLASS)))
+   _elm_win_wl_cursor_set(top, NULL);
+  }
 #endif
 
 #ifdef HAVE_ELEMENTARY_COCOA
@@ -480,7 +502,6 @@ _elm_cursor_cur_set(Elm_Cursor *cur)
 cur->cocoa.cursor = cur_id->cid;
}
 #endif
-
 #ifdef HAVE_ELEMENTARY_WL2
  cur->wl.win = elm_win_wl_window_get(top);
 #endif
@@ -629,7 +650,13 @@ elm_object_cursor_unset(Evas_Object *obj)
 #endif
 #ifdef HAVE_ELEMENTARY_WL2
 else if (cur->wl.win)
-  ecore_wl2_window_cursor_from_name_set(cur->wl.win, NULL);
+  {
+ Evas_Object *top;
+
+ top = elm_widget_top_get(cur->owner);
+ if ((top) && (efl_isa(top, EFL_UI_WIN_CLASS)))
+   _elm_win_wl_cursor_set(top, NULL);
+  }
 #endif
 #ifdef HAVE_ELEMENTARY_WIN32
 else

-- 




[EGIT] [core/efl] master 01/03: elementary: Add internal function to set wayland cursor

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

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

commit e179115f41f1e3056072e0aeefb74c97d5ca952c
Author: Chris Michael 
Date:   Fri Oct 28 13:59:31 2016 -0400

elementary: Add internal function to set wayland cursor

Add an internal elm function we can call from withint els_cursor.c so
that we can set window cursor/pointer images based on what is supplied
by els_cursor.

@feature

Signed-off-by: Chris Michael 
---
 src/lib/elementary/efl_ui_win.c | 51 -
 src/lib/elementary/elm_priv.h   |  4 
 2 files changed, 54 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 627c82c..46af76d 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -2960,6 +2960,55 @@ _elm_win_wlwindow_get(Efl_Ui_Win_Data *sd)
 {
sd->wl.win = _elm_ee_wlwin_get(sd->ee);
 }
+
+void
+_elm_win_wl_cursor_set(Evas_Object *obj, const char *cursor)
+{
+   ELM_WIN_DATA_GET(obj, sd);
+
+   if (!sd) return;
+
+   if (sd->pointer.obj)
+ {
+Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0;
+
+fprintf(stderr, "Elm Win Cursor Set: %s\n", cursor);
+
+if (cursor)
+  {
+ if (!_elm_theme_object_set(sd->obj, sd->pointer.obj,
+"cursor", cursor, "default"))
+   {
+  fprintf(stderr, "\tCursor %s not found in theme\n", cursor);
+  _elm_theme_object_set(sd->obj, sd->pointer.obj,
+"pointer", "base", "default");
+   }
+  }
+else
+  _elm_theme_object_set(sd->obj, sd->pointer.obj,
+"pointer", "base", "default");
+
+edje_object_size_min_get(sd->pointer.obj, &mw, &mh);
+edje_object_size_min_restricted_calc(sd->pointer.obj, &mw, &mh, mw, 
mh);
+if ((mw < 32) || (mh < 32))
+  {
+ mw = 32;
+ mh = 32;
+  }
+fprintf(stderr, "\tMin Size: %d %d\n", mw, mh);
+evas_object_move(sd->pointer.obj, 0, 0);
+evas_object_resize(sd->pointer.obj, mw, mh);
+edje_object_part_geometry_get(sd->pointer.obj,
+  "elm.swallow.hotspot",
+  &hx, &hy, NULL, NULL);
+sd->pointer.hot_x = hx;
+sd->pointer.hot_y = hy;
+ }
+
+   if ((sd->wl.win) && (sd->pointer.surf))
+ ecore_wl2_window_pointer_set(sd->wl.win, sd->pointer.surf,
+  sd->pointer.hot_x, sd->pointer.hot_y);
+}
 #endif
 
 Ecore_Cocoa_Window *
@@ -3523,7 +3572,7 @@ static void
 _elm_win_frame_cb_move_start(void *data,
  Evas_Object *obj EINA_UNUSED,
  const char *sig EINA_UNUSED,
- const char *source)
+ const char *source EINA_UNUSED)
 {
int ox, oy;
 
diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h
index d357780..633973d 100644
--- a/src/lib/elementary/elm_priv.h
+++ b/src/lib/elementary/elm_priv.h
@@ -532,6 +532,10 @@ void 
_elm_dbus_menu_item_select_cb(Elm_Object_Item *obj_item);
 void _elm_menu_menu_bar_set(Eo *obj, Eina_Bool menu_bar);
 void _elm_menu_menu_bar_hide(Eo *obj);
 
+#ifdef HAVE_ELEMENTARY_WL2
+void _elm_win_wl_cursor_set(Evas_Object *obj, const char 
*cursor);
+#endif
+
 /* DEPRECATED, will be removed on next release */
 void _elm_icon_signal_emit(Evas_Object *obj,
const char *emission,

-- 




[EGIT] [core/efl] master 01/01: ecore_evas: refactor VNC as an Eina Module.

2016-10-28 Thread Guilherme Iscaro
cedric pushed a commit to branch master.

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

commit 4bffa7bfa79c2a1b5f1f5eb2d80e8667d1b49b67
Author: Guilherme Iscaro 
Date:   Fri Oct 28 09:56:42 2016 -0700

ecore_evas: refactor VNC as an Eina Module.

Summary:
This change removes the necessity to link EFL against the libvncserver

Please ignore the first three commits, they're being reviewed here:

https://phab.enlightenment.org/D4323

Reviewers: bdilly, cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4338

Signed-off-by: Cedric Bail 
---
 configure.ac   |  24 +-
 src/Makefile_Ecore_Evas.am |  27 +
 src/lib/ecore_evas/ecore_evas.c|  52 +-
 src/lib/ecore_evas/ecore_evas_module.c |  67 ++
 src/lib/ecore_evas/ecore_evas_private.h|   4 +
 src/lib/ecore_evas/ecore_evas_x11.h|   4 -
 src/modules/ecore_evas/engines/x/ecore_evas_x.c| 643 +-
 .../ecore_evas/vnc_server/ecore_evas_vnc_server.c  | 722 +
 8 files changed, 869 insertions(+), 674 deletions(-)

diff --git a/configure.ac b/configure.ac
index 4e61cc5..4f68b1e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -436,9 +436,10 @@ AC_SUBST([ENABLE_LIBLZ4])
 
 want_vnc_server="no"
 AC_ARG_ENABLE([vnc-server],
-   [AS_HELP_STRING([--enable-vnc-server],[Enable VNC server support for 
Ecore_Evas_X. @<:@default=disabled@:>@])],
+   [AS_HELP_STRING([--enable-vnc-server],[Build Ecore_Evas VNC module. 
@<:@default=disabled@:>@])],
[
 if test "x${enableval}" = "xyes" ; then
+   PKG_CHECK_MODULES([LIBVNCSERVER], [libvncserver])
want_vnc_server="yes"
 else
want_vnc_server="no"
@@ -446,11 +447,6 @@ AC_ARG_ENABLE([vnc-server],
],
[want_vnc_server="no"])
 
-AM_CONDITIONAL([ENABLE_VNC_SERVER], [test "${want_vnc_server}" = "yes"])
-AC_DEFINE_IF([ENABLE_VNC_SERVER], [test "${want_vnc_server}" = "yes"], [1], 
[Use VNC server support for Ecore_Evas_X])
-AC_SUBST([want_vnc_server])
-AC_SUBST([ENABLE_VNC_SERVER])
-
  Checks for header files
 
 # Common Checks (keep names sorted for ease of use):
@@ -4649,10 +4645,7 @@ AM_CONDITIONAL([BUILD_ECORE_EVAS_WIN32],
 
 
 # XXX TODO: ecore_evas_x11
-
-ECORE_EVAS_MODULE([software-x11], [${want_x11_any}],
-  [EFL_OPTIONAL_DEPEND_PKG([ECORE_EVAS], [${want_vnc_server}], [VNC_SERVER], 
[libvncserver])])
-EFL_ADD_FEATURE([ECORE_EVAS], [vnc_server])
+ECORE_EVAS_MODULE([software-x11], [${want_x11_any}])
 
 have_ecore_evas_software_xlib="no"
 have_ecore_evas_software_xcb="no"
@@ -4675,8 +4668,7 @@ fi
 
 # XXX TODO: ecore_evas_opengl_x11
 
-ECORE_EVAS_MODULE([opengl-x11], [${want_x11_any_opengl}],
-  [EFL_OPTIONAL_DEPEND_PKG([ECORE_EVAS], [${want_vnc_server}], [VNC_SERVER], 
[libvncserver])])
+ECORE_EVAS_MODULE([opengl-x11], [${want_x11_any_opengl}])
 
 have_ecore_evas_opengl_xlib="no"
 have_ecore_evas_opengl_xcb="no"
@@ -4708,14 +4700,22 @@ if test "x${have_ecore_evas_opengl_x11}" = "xyes" || 
test "x${have_ecore_evas_op
 fi
 
 build_ecore_evas_x11="no"
+build_ecore_evas_vnc="no"
 if test "x$have_ecore_evas_software_x11" = "xyes" || \
test "x$have_ecore_evas_opengl_x11" = "xyes" || \
test "x$have_ecore_evas_software_xcb" = "xyes"; then
AC_DEFINE([BUILD_ECORE_EVAS_X11], [1], [Support for X Window Engines in 
Ecore_Evas])
build_ecore_evas_x11="yes"
+   if test "$want_vnc_server" = "yes"; then
+  build_ecore_evas_vnc="yes"
+   fi
 fi
 AM_CONDITIONAL([BUILD_ECORE_EVAS_X11], [test "${build_ecore_evas_x11}" = 
"yes"])
 
+AM_CONDITIONAL([BUILD_ECORE_EVAS_VNC_SERVER], [test "${build_ecore_evas_vnc}" 
= "yes"])
+AC_DEFINE_IF([BUILD_ECORE_EVAS_VNC_SERVER], [test "${build_ecore_evas_vnc}" = 
"yes"], [1], [Build Ecore_Evas VNC module])
+EFL_ADD_FEATURE([ECORE_EVAS], [vnc_server], [${build_ecore_evas_vnc}])
+
 EFL_EVAL_PKGS([ECORE_EVAS])
 
 ### Checks for header files
diff --git a/src/Makefile_Ecore_Evas.am b/src/Makefile_Ecore_Evas.am
index 747a426..5d6a387 100644
--- a/src/Makefile_Ecore_Evas.am
+++ b/src/Makefile_Ecore_Evas.am
@@ -282,6 +282,33 @@ modules_ecore_evas_engines_drm_module_la_LDFLAGS = -module 
@EFL_LTMODULE_FLAGS@
 modules_ecore_evas_engines_drm_module_la_LIBTOOLFLAGS = --tag=disable-static
 endif
 
+if BUILD_ECORE_EVAS_VNC_SERVER
+VNCSERVERSOURCES = \
+modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c
+ecoreevasenginevncserverpkgdir = $(libdir)/ecore_evas/vnc_server/$(MODULE_ARCH)
+ecoreevasenginevncserverpkg_LTLIBRARIES = 
modules/ecore_evas/vnc_server/module.la
+
+# Workaround for broken parallel install support in automake (relink issue)
+# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7328
+install_ecoreevasenginevncserverpkgLTLIBRARIES = 
install-ecoreevasenginevncserverpkgLTLIBRARIES
+$(install_ecoreevasenginevncserverpkgLTLIBRARIES): install-l

[EGIT] [core/efl] master 01/02: ecore-wl2: Only call pointer_update_stop once

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

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

commit 72f2ac2c3a87c95070baae2afa8d78a186ed
Author: Chris Michael 
Date:   Fri Oct 28 11:27:59 2016 -0400

ecore-wl2: Only call pointer_update_stop once

As we already call _ecore_wl2_input_cursor_update_stop above, we
actually don't need to call it a second time.

Signed-off-by: Chris Michael 
---
 src/lib/ecore_wl2/ecore_wl2_window.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c 
b/src/lib/ecore_wl2/ecore_wl2_window.c
index e5a0774..6b0d9cf 100644
--- a/src/lib/ecore_wl2/ecore_wl2_window.c
+++ b/src/lib/ecore_wl2/ecore_wl2_window.c
@@ -953,9 +953,7 @@ ecore_wl2_window_pointer_set(Ecore_Wl2_Window *window, 
struct wl_surface *surfac
input->cursor.hot_x = hot_x;
input->cursor.hot_y = hot_y;
 
-   if (!input->cursor.surface)
- _ecore_wl2_input_cursor_update_stop(input);
-   else
+   if (input->cursor.surface)
  _ecore_wl2_input_cursor_update(input);
 }
 

-- 




[EGIT] [core/efl] master 02/02: elementary: Fix build break for non-wayland builds

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

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

commit 53f406a0a3db2184f8c10b5c133186fe88f23ef8
Author: Chris Michael 
Date:   Fri Oct 28 12:34:18 2016 -0400

elementary: Fix build break for non-wayland builds

This fixes an issue where build would be broken if not building with
Wayland support.

Fixes T4778

@fix

Signed-off-by: Chris Michael 
---
 src/lib/elementary/efl_ui_win.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index be922b8..627c82c 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -2220,6 +2220,7 @@ _efl_ui_win_hide(Eo *obj, Efl_Ui_Win_Data *sd)
 evas_object_hide(sd->pointer.obj);
  }
 
+#ifdef HAVE_ELEMENTARY_WL2
if (sd->pointer.ee)
  {
 ecore_evas_hide(sd->pointer.ee);
@@ -2227,6 +2228,7 @@ _efl_ui_win_hide(Eo *obj, Efl_Ui_Win_Data *sd)
 ecore_wl2_window_pointer_set(sd->wl.win, NULL,
  sd->pointer.hot_x, sd->pointer.hot_y);
  }
+#endif
 
if (_elm_config->atspi_mode)
  {

-- 




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

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

You may have missed a few information. Reffing is uneeded as we rely
on returning to the main loop to actually trigger a future. We have
several problem with eo. First one is weak reference don't behave as
they should with future. You want all weak reference to disapear as
soon as a promise resolve, not after the future are done. Otherwise
you end up with the line of code above. Second problem, if you can
efl_future_then on NULL future, you should trigger the fail callback
right away. This is not doable in eo without wrapping that call. Other
than that, future are using no other feature of eo except for safe
pointer. This part of the code in Eo as grown organically to a point
where maintenance of it is non trivial already. Moving it to eina with
a clean API will solve both problem. Allow a proper testing and
benchmarking of that infrastructure along with the reusability for
other piece of code who do not need a full scale Eo object. It can
even be used for legacy only handler, like Ecore_Animator without
confusing people on having legacy Eo object and modern object. So no,
there is more problem into keeping future an eo object than moving
away from it.

Note, we are not talking about promise object here, just future.
-- 
Cedric BAIL

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


[EGIT] [tools/eflete] master 01/02: popup: add user callback for popup

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

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

commit ee1c2d0fdf3fddce0e84016411e03f3eb44712c4
Author: Vyacheslav Reutskiy 
Date:   Fri Oct 28 11:01:58 2016 +0300

popup: add user callback for popup

We have a problem with popups, its not sync. So if we need to manage
the reaction on popup buttons need to use callbacks from popup buttons.
Firstly this need if need to show several popups successibly.

This patch make it posible

Fixes 4672

Change-Id: Id22a7169c01ff73966149d282e3171d3804163e9
---
 src/bin/ui/main_window.c | 23 ++--
 src/bin/ui/main_window.h |  6 +-
 src/bin/ui/menu.c|  6 +-
 src/bin/ui/popup.c   |  2 +-
 src/bin/ui/project_close.c   |  6 --
 src/bin/ui/tab_home_import_edc.c | 23 ++--
 src/bin/ui/tab_home_import_edj.c | 25 --
 src/bin/ui/tab_home_new.c| 24 +++--
 src/bin/ui/tab_home_open.c   | 46 +---
 9 files changed, 116 insertions(+), 45 deletions(-)

diff --git a/src/bin/ui/main_window.c b/src/bin/ui/main_window.c
index f90ec20..2fded4d 100644
--- a/src/bin/ui/main_window.c
+++ b/src/bin/ui/main_window.c
@@ -54,13 +54,14 @@ _help(void *data __UNUSED__,
shortcuts_window_add();
 }
 
-Eina_Bool
-ui_main_window_del(void)
+static void
+_after_popup_close(void *data __UNUSED__,
+   Evas_Object *obj __UNUSED__,
+   void *event_info)
 {
-   ap.exit_in_progress = true;
-   if (ap.project)
- if (!project_close())
-   return false;
+   Popup_Button pbtn = (Popup_Button) event_info;
+
+   if (BTN_CANCEL == pbtn) return;
 
 #ifdef HAVE_ENVENTOR
code_edit_mode_switch(false);
@@ -74,7 +75,17 @@ ui_main_window_del(void)
evas_object_del(ap.property.group);
INFO("%s %s - Finished...", PACKAGE_NAME, VERSION);
elm_exit();
+}
+
+Eina_Bool
+ui_main_window_del(void)
+{
+   ap.exit_in_progress = true;
+   if (ap.project)
+ if (!project_close(_after_popup_close, NULL))
+   return false;
 
+   _after_popup_close(NULL, NULL, (void *)BTN_OK);
return true;
 }
 
diff --git a/src/bin/ui/main_window.h b/src/bin/ui/main_window.h
index ea893b8..c817e2b 100644
--- a/src/bin/ui/main_window.h
+++ b/src/bin/ui/main_window.h
@@ -316,12 +316,16 @@ project_save(void);
  * This function will ask user what to do with opened project
  * (if it is changed).
  *
+ * @param func The Evas_Smart_Cb will be call on popup close. Popup_button is a
+ * event info for this callback
+ * @param data The user data for callback
+ *
  * @return EINA_TRUE on success, otherwise EINA_FALSE.
  *
  * @ingroup Window
  */
 Eina_Bool
-project_close(void);
+project_close(Evas_Smart_Cb func, void *data);
 
 /**
  * Create and show popup with given title and content. Only one - Evas_Object 
or
diff --git a/src/bin/ui/menu.c b/src/bin/ui/menu.c
index ac18cf1..f39b2e9 100644
--- a/src/bin/ui/menu.c
+++ b/src/bin/ui/menu.c
@@ -124,11 +124,7 @@ _menu_cb(void *data __UNUSED__,
  break;
   case MENU_FILE_CLOSE_PROJECT:
{
-  if (!project_close()) break;
-  //tabs_menu_tab_open(TAB_HOME_OPEN_PROJECT);
-  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);
-  ui_menu_disable_set(ap.menu, MENU_FILE_SAVE, true);
+  if (!project_close(NULL, NULL)) break;
}
  break;
   case MENU_FILE_EXIT:
diff --git a/src/bin/ui/popup.c b/src/bin/ui/popup.c
index 5bb0032..e093c68 100644
--- a/src/bin/ui/popup.c
+++ b/src/bin/ui/popup.c
@@ -81,7 +81,6 @@ static void
 _popup_del_job(void *data)
 {
Popup_Data *pd= data;
-   shortcuts_object_check_pop(pd->popup);
evas_object_del(pd->popup);
free(pd);
 }
@@ -97,6 +96,7 @@ _popup_btn_cb(void *data,
assert(pd->popup != NULL);
 
ecore_job_add(_popup_del_job, pd);
+   shortcuts_object_check_pop(pd->popup);
evas_object_smart_callback_call(pd->popup, POPUP_CLOSE_CB, data);
/* menu clould be deleted in POPUP_CLOSE_CB in exit confirmation popup */
if (ap.menu)
diff --git a/src/bin/ui/project_close.c b/src/bin/ui/project_close.c
index 146f004..df9377f 100644
--- a/src/bin/ui/project_close.c
+++ b/src/bin/ui/project_close.c
@@ -175,12 +175,12 @@ _popup_close_cb(void *data __UNUSED__,
if (ap.exit_in_progress)
  ui_main_window_del();
else
- project_close();
+ project_close(NULL, NULL);
 }
 #endif
 
 Eina_Bool
-project_close(void)
+project_close(Evas_Smart_Cb func, void *data)
 {
char buf[PATH_MAX];
PM_Project_Result result;
@@ -200,6 +200,7 @@ project_close(void)
   NULL,
   NULL);
 evas_object_smart_callback_add(popup, POPUP_CLOSE_CB, _popup_cl

[EGIT] [tools/eflete] master 02/02: main: fix copy/paste error

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

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

commit fe2b77fbedfcc1af7594de2f72b99b24a7f6a8f8
Author: Vyacheslav Reutskiy 
Date:   Fri Oct 28 15:30:23 2016 +0300

main: fix copy/paste error

Change-Id: Ia48c92cdd4a5b40c25ae52a2ad5c2bff3e1e7984
---
 src/bin/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/main.c b/src/bin/main.c
index 8592581..d5c6881 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -342,7 +342,7 @@ elm_main(int argc, char **argv)
   }
 if (export_edj)
   {
- if (!eina_str_has_suffix(file, ".edj"))
+ if (!eina_str_has_suffix(export_edj, ".edj"))
_ERR_EXIT(_("--export-edj value have not extension '.edj'. 
Wrong value."));
   }
 

-- 




[EGIT] [core/enlightenment] master 01/02: optimize out re-applying of borderless client theme

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

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

commit 420b54a151c3aa9fbaf7531df793d22b30623125
Author: Mike Blumenkrantz 
Date:   Fri Oct 28 10:36:21 2016 -0400

optimize out re-applying of borderless client theme
---
 src/bin/e_client.c  | 5 +++--
 src/bin/e_comp_object.c | 1 +
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 30d66c2..6c204f4 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -4347,12 +4347,13 @@ e_client_border_set(E_Client *ec, const char *name)
if (ec->border.changed)
  CRI("CALLING WHEN border.changed SET!");
 
-   if (!e_util_strcmp(ec->border.name, name)) return EINA_TRUE;
-   if (ec->mwm.borderless && name && strcmp(name, "borderless"))
+   if (eina_streq(ec->border.name, name)) return EINA_TRUE;
+   if (ec->mwm.borderless && (!eina_streq(name, "borderless")))
  {
 e_util_dialog_show(_("Client Error!"), _("Something has attempted to 
set a border when it shouldn't! Report this!"));
 CRI("border change attempted for MWM borderless client!");
  }
+   if ((!ec->border.name) && eina_streq(name, "borderless")) return EINA_TRUE;
pborder = ec->border.name;
ec->border.name = eina_stringshare_add(name);
if (e_comp_object_frame_theme_set(ec->frame, name))
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 9a51edf..7a28aa6 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3315,6 +3315,7 @@ e_comp_object_frame_theme_set(Evas_Object *obj, const 
char *name)
 return edje_object_part_swallow(cw->shobj, "e.swallow.content", 
cw->frame_object ?: cw->obj);
if (!e_util_strcmp(name, "COMP_RESHADOW"))
  return _e_comp_object_shadow_setup(cw);
+   if (eina_streq(name, "borderless") && (!cw->frame_object)) return EINA_TRUE;
pbg = cw->frame_object;
theme = eina_stringshare_add(name);
 

-- 




[EGIT] [core/enlightenment] master 02/02: block remembers of e_sys windows

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

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

commit 41b861214abd1fc9e9dfcbe322da429da2624227
Author: Mike Blumenkrantz 
Date:   Fri Oct 28 10:45:22 2016 -0400

block remembers of e_sys windows

fix T2879
---
 src/bin/e_sys.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c
index 481e55b..a6fa6a8 100644
--- a/src/bin/e_sys.c
+++ b/src/bin/e_sys.c
@@ -713,6 +713,7 @@ _e_sys_cb_logout_timer(void *data EINA_UNUSED)
   e_dialog_button_focus_num(dia, 1);
   _e_sys_logout_confirm_dialog_update(E_LOGOUT_AUTO_TIME);
   elm_win_center(dia->win, 1, 1);
+  e_win_no_remember_set(dia->win, 1);
   e_dialog_show(dia);
   _e_sys_logout_begin_time = now;
}
@@ -771,6 +772,7 @@ _e_sys_logout_begin(E_Sys_Action a_after, Eina_Bool raw)
_("Logout in progress."
  "Please wait."));
 e_obj_dialog_show(od);
+e_win_no_remember_set(od->win, 1);
 e_obj_dialog_icon_set(od, "system-log-out");
 if (_e_sys_dialog) e_object_del(E_OBJECT(_e_sys_dialog));
 _e_sys_dialog = od;
@@ -839,6 +841,7 @@ _e_sys_current_action(void)
e_dialog_button_add(dia, _("OK"), NULL, NULL, NULL);
e_dialog_button_focus_num(dia, 0);
elm_win_center(dia->win, 1, 1);
+   e_win_no_remember_set(dia->win, 1);
e_dialog_show(dia);
 }
 
@@ -880,6 +883,7 @@ _e_sys_action_failed(void)
e_dialog_button_add(dia, _("OK"), NULL, NULL, NULL);
e_dialog_button_focus_num(dia, 0);
elm_win_center(dia->win, 1, 1);
+   e_win_no_remember_set(dia->win, 1);
e_dialog_show(dia);
 }
 
@@ -965,6 +969,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, 
Eina_Bool raw)
  _("Power off."
"Please 
wait."));
   e_obj_dialog_show(od);
+  e_win_no_remember_set(od->win, 1);
   e_obj_dialog_icon_set(od, "system-shutdown");
   if (_e_sys_dialog) e_object_del(E_OBJECT(_e_sys_dialog));
   e_obj_dialog_cb_delete_set(od, _e_sys_dialog_cb_delete);
@@ -1010,6 +1015,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, 
Eina_Bool raw)
  _("Resetting."
"Please 
wait."));
   e_obj_dialog_show(od);
+  e_win_no_remember_set(od->win, 1);
   e_obj_dialog_icon_set(od, "system-restart");
   if (_e_sys_dialog) e_object_del(E_OBJECT(_e_sys_dialog));
   e_obj_dialog_cb_delete_set(od, _e_sys_dialog_cb_delete);

-- 




[EGIT] [core/enlightenment] master 01/02: bump modapi

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

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

commit c56cebe9459c28a78ac9ab02c1d4c1586688f2b1
Author: Mike Blumenkrantz 
Date:   Fri Oct 28 10:17:57 2016 -0400

bump modapi
---
 src/bin/e_module.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_module.h b/src/bin/e_module.h
index ac07884..e91304f 100644
--- a/src/bin/e_module.h
+++ b/src/bin/e_module.h
@@ -1,6 +1,6 @@
 #ifdef E_TYPEDEFS
 
-#define E_MODULE_API_VERSION 23
+#define E_MODULE_API_VERSION 24
 
 typedef struct _E_Module E_Module;
 typedef struct _E_Module_Api E_Module_Api;

-- 




[EGIT] [core/enlightenment] master 02/02: allow client frame changes when switching from frame -> no frame

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

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

commit c6b091980a8a6fafe319da3e163d5a9f16f5cbe9
Author: Mike Blumenkrantz 
Date:   Fri Oct 28 10:18:24 2016 -0400

allow client frame changes when switching from frame -> no frame

fix T4358
---
 src/bin/e_client.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 3ed3804..30d66c2 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2155,7 +2155,8 @@ _e_client_frame_update(E_Client *ec)
const char *bordername;
 
ec->border.changed = 0;
-   if (!e_comp_object_frame_allowed(ec->frame)) return;
+   if ((!e_comp_object_frame_allowed(ec->frame)) && 
(!e_comp_object_frame_exists(ec->frame)))
+ return;
if (ec->fullscreen || ec->borderless)
  bordername = "borderless";
else if (ec->bordername)
@@ -4341,7 +4342,8 @@ e_client_border_set(E_Client *ec, const char *name)
 
E_OBJECT_CHECK_RETURN(ec, EINA_FALSE);
E_OBJECT_TYPE_CHECK_RETURN(ec, E_CLIENT_TYPE, EINA_FALSE);
-   if (!e_comp_object_frame_allowed(ec->frame)) return EINA_FALSE;
+   if ((!e_comp_object_frame_allowed(ec->frame)) && 
(!e_comp_object_frame_exists(ec->frame)))
+ return EINA_FALSE;
if (ec->border.changed)
  CRI("CALLING WHEN border.changed SET!");
 

-- 




[EGIT] [core/efl] master 01/08: elementary: Use separate checks for pointer object vs pointer canvas

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

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

commit 44746f24e995a486627c33b7f8e7ab39326f7262
Author: Chris Michael 
Date:   Thu Oct 27 13:13:32 2016 -0400

elementary: Use separate checks for pointer object vs pointer canvas

As under the drm engine a softcursor will be created, but not a
pointer canvas, we need to use separate if checks in certain places
like showing, hiding the mouse pointer/canvas.

Signed-off-by: Chris Michael 
---
 src/lib/elementary/efl_ui_win.c | 19 ---
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 5eaa9d0..06e652c 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -2197,8 +2197,10 @@ _efl_ui_win_hide(Eo *obj, Efl_Ui_Win_Data *sd)
if (sd->pointer.obj)
  {
 evas_object_hide(sd->pointer.obj);
-ecore_evas_hide(sd->pointer.ee);
  }
+
+   if (sd->pointer.ee) ecore_evas_hide(sd->pointer.ee);
+
if (_elm_config->atspi_mode)
  {
 Eo *root;
@@ -2672,11 +2674,8 @@ _efl_ui_win_efl_canvas_group_group_del(Eo *obj, 
Efl_Ui_Win_Data *sd)
 #endif
 #ifdef HAVE_ELEMENTARY_WL2
ecore_event_handler_del(sd->wl.configure_handler);
-   if (sd->pointer.obj)
- {
-evas_object_del(sd->pointer.obj);
-ecore_evas_free(sd->pointer.ee);
- }
+   if (sd->pointer.obj) evas_object_del(sd->pointer.obj);
+   if (sd->pointer.ee) ecore_evas_free(sd->pointer.ee);
 #endif
 
if (sd->img_obj)
@@ -2756,11 +2755,9 @@ _elm_win_obj_intercept_show(void *data,
  {
 evas_object_show(sd->img_obj);
  }
-   if (sd->pointer.obj)
- {
-ecore_evas_show(sd->pointer.ee);
-evas_object_show(sd->pointer.obj);
- }
+   if (sd->pointer.obj) evas_object_show(sd->pointer.obj);
+   if (sd->pointer.ee) ecore_evas_show(sd->pointer.ee);
+
evas_object_show(obj);
 #ifdef ELEMENTARY_X
if (sd->type == ELM_WIN_TOOLTIP)

-- 




[EGIT] [core/efl] master 04/08: ecore-wl2: Disable pointer frame callback if no cursor surface

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

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

commit d4a483c40bbd7843b0fc8420e55b3d02d7896184
Author: Chris Michael 
Date:   Thu Oct 27 14:56:36 2016 -0400

ecore-wl2: Disable pointer frame callback if no cursor surface

If we have no cursor surface, then we don't need the pointer frame
callback anymore so call cursor_update_stop which will delete the
pointer frame callback

Signed-off-by: Chris Michael 
---
 src/lib/ecore_wl2/ecore_wl2_window.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c 
b/src/lib/ecore_wl2/ecore_wl2_window.c
index b04d9a6..e5a0774 100644
--- a/src/lib/ecore_wl2/ecore_wl2_window.c
+++ b/src/lib/ecore_wl2/ecore_wl2_window.c
@@ -953,7 +953,10 @@ ecore_wl2_window_pointer_set(Ecore_Wl2_Window *window, 
struct wl_surface *surfac
input->cursor.hot_x = hot_x;
input->cursor.hot_y = hot_y;
 
-   _ecore_wl2_input_cursor_update(input);
+   if (!input->cursor.surface)
+ _ecore_wl2_input_cursor_update_stop(input);
+   else
+ _ecore_wl2_input_cursor_update(input);
 }
 
 EAPI void

-- 




[EGIT] [core/efl] master 02/02: obj caching - add a reuse in key event objects too to nuke leaks

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

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

commit 860e0d34b0a58cdaf969633249e1a58f166e3970
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Oct 28 22:57:25 2016 +0900

obj caching - add a reuse in key event objects too to nuke leaks

new leak since sink was added.
---
 src/lib/evas/canvas/efl_input_key.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/evas/canvas/efl_input_key.c 
b/src/lib/evas/canvas/efl_input_key.c
index 7f955f7..c69491c 100644
--- a/src/lib/evas/canvas/efl_input_key.c
+++ b/src/lib/evas/canvas/efl_input_key.c
@@ -23,6 +23,7 @@ _del_hook(Eo *evt)
  efl_ref(evt);
  efl_parent_set(evt, NULL);
   }
+efl_reuse(evt);
 s_cached_event = evt;
  }
else

-- 




[EGIT] [core/efl] master 01/02: improve responsivness of timer sleeping threads for vsync with prctl

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

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

commit 973eaedf51a8ab0f9881c1fb900850dd8475bbf7
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Oct 28 14:50:05 2016 +0900

improve responsivness of timer sleeping threads for vsync with prctl

prctl allows us on some platforms to request a thread be woken up more
agressively e.g. due to a timeout bu setting timerslack. since we use
a dedicated thread just for vsync events, this is a very good idea to
ask the kernel to be as exact as possible for this thread as it only
wakes up once per frame (or should only) and accuracy is important. so
use this.

also improve prctl checks to be more explicit in configure.ac and use
these ifdefs in ecore exe too where prctl is used as well.

@feature
---
 configure.ac |  2 +-
 m4/efl_check_funcs.m4| 11 +++
 src/lib/ecore/ecore_anim.c   |  7 +++
 src/lib/ecore/ecore_exe_posix.c  | 10 +-
 src/lib/ecore_x/xlib/ecore_x_vsync.c |  7 +++
 5 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/configure.ac b/configure.ac
index 1a85080..4e61cc5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1029,7 +1029,7 @@ EFL_CHECK_GCC_BUILTIN([bswap64], [HAVE_BSWAP64])
 
 AC_CHECK_FUNCS([fchmod])
 
-EFL_CHECK_FUNCS([EINA], [dlopen dladdr iconv shm_open splice setxattr 
getpagesize])
+EFL_CHECK_FUNCS([EINA], [dlopen dladdr iconv shm_open splice setxattr 
getpagesize prctl])
 
 enable_log="no"
 if test "x${efl_func_fnmatch}" = "xyes" && test "x${want_log}" = "xyes" ; then
diff --git a/m4/efl_check_funcs.m4 b/m4/efl_check_funcs.m4
index 39fb5ee..b44f20b 100644
--- a/m4/efl_check_funcs.m4
+++ b/m4/efl_check_funcs.m4
@@ -288,6 +288,17 @@ sz = getpagesize();
 ]])
 ])
 
+dnl _EFL_CHECK_FUNC_PRCTL is for internal use
+dnl _EFL_CHECK_FUNC_PRCTL(EFL, VARIABLE)
+AC_DEFUN([_EFL_CHECK_FUNC_PRCTL],
+[EFL_FIND_LIB_FOR_CODE([$1], [], [$2], [[
+#include 
+]],
+[[
+prctl(PR_SET_TIMERSLACK, 1, 0, 0, 0);
+]])
+])
+
 dnl Macro that checks function availability
 dnl
 dnl EFL_CHECK_FUNC(EFL, FUNCTION)
diff --git a/src/lib/ecore/ecore_anim.c b/src/lib/ecore/ecore_anim.c
index c069c96..6643286 100644
--- a/src/lib/ecore/ecore_anim.c
+++ b/src/lib/ecore/ecore_anim.c
@@ -30,6 +30,10 @@
 
 #endif /* ! _WIN32 */
 
+#ifdef HAVE_PRCTL
+# include 
+#endif
+
 #include "Ecore.h"
 #include "ecore_private.h"
 
@@ -109,6 +113,9 @@ _timer_tick_core(void *data EINA_UNUSED, Ecore_Thread 
*thread)
int ret;
 
eina_thread_name_set(eina_thread_self(), "Eanimator-timer");
+#ifdef HAVE_PRCTL
+   prctl(PR_SET_TIMERSLACK, 1, 0, 0, 0);
+#endif
while (!ecore_thread_check(thread))
  {
 DBG("--- timer_event_is_busy=%i", timer_event_is_busy);
diff --git a/src/lib/ecore/ecore_exe_posix.c b/src/lib/ecore/ecore_exe_posix.c
index 5ad60f9..14c7d69 100644
--- a/src/lib/ecore/ecore_exe_posix.c
+++ b/src/lib/ecore/ecore_exe_posix.c
@@ -13,7 +13,7 @@
 #include 
 #include 
 
-#ifdef HAVE_SYS_PRCTL_H
+#ifdef HAVE_PRCTL
 # include 
 #endif
 
@@ -1017,11 +1017,11 @@ _ecore_exe_exec_it(const char *exe_cmd,
   }
}
 
-#ifdef HAVE_SYS_PRCTL_H
+#ifdef HAVE_PRCTL
if ((flags & ECORE_EXE_TERM_WITH_PARENT))
-   {
-  prctl(PR_SET_PDEATHSIG, SIGTERM);
-   }
+ {
+prctl(PR_SET_PDEATHSIG, SIGTERM);
+ }
 #endif
 
if (!(flags & ECORE_EXE_NOT_LEADER)) setsid();
diff --git a/src/lib/ecore_x/xlib/ecore_x_vsync.c 
b/src/lib/ecore_x/xlib/ecore_x_vsync.c
index 436645e..ee43406 100644
--- a/src/lib/ecore_x/xlib/ecore_x_vsync.c
+++ b/src/lib/ecore_x/xlib/ecore_x_vsync.c
@@ -17,6 +17,10 @@
 #include 
 #include 
 
+#ifdef HAVE_PRCTL
+# include 
+#endif
+
 #define ECORE_X_VSYNC_DRM 1
 
 static Ecore_X_Window vsync_root = 0;
@@ -286,6 +290,9 @@ _drm_tick_core(void *data EINA_UNUSED, Ecore_Thread *thread)
int tick = 0;
 
eina_thread_name_set(eina_thread_self(), "Eanimator-vsync");
+#ifdef HAVE_PRCTL
+   prctl(PR_SET_TIMERSLACK, 1, 0, 0, 0);
+#endif
while (!ecore_thread_check(thread))
  {
 DBG("--- drm_event_is_busy=%i", drm_event_is_busy);

-- 




[EGIT] [core/efl] master 07/08: elementary: Fix issue of extra pointer being displayed

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

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

commit e77efe72f702cfb542c77aab134d348de6020fdc
Author: Chris Michael 
Date:   Fri Oct 28 09:06:48 2016 -0400

elementary: Fix issue of extra pointer being displayed

As we only want to show our custom EFL cursors when the mouse is
actually inside the window, use the _elm_win_mouse_in/out functions to
control pointer visibility.

Signed-off-by: Chris Michael 
---
 src/lib/elementary/efl_ui_win.c | 65 +++--
 1 file changed, 37 insertions(+), 28 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index cc3bd9d..b508514 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -920,9 +920,30 @@ _elm_win_mouse_in(Ecore_Evas *ee)
_elm_win_throttle_ok = EINA_TRUE;
if (sd->resizing) sd->resizing = EINA_FALSE;
 #ifdef HAVE_ELEMENTARY_WL2
-   if (sd->wl.win)
- ecore_wl2_window_pointer_set(sd->wl.win, sd->pointer.surf,
-  sd->pointer.hot_x, sd->pointer.hot_y);
+   if ((sd->wl.win) && (sd->pointer.ee))
+ {
+ecore_evas_show(sd->pointer.ee);
+sd->pointer.surf = ecore_wl2_window_surface_get(sd->pointer.win);
+ecore_wl2_window_pointer_set(sd->wl.win, sd->pointer.surf,
+ sd->pointer.hot_x, sd->pointer.hot_y);
+ }
+#endif
+}
+
+static void
+_elm_win_mouse_out(Ecore_Evas *ee)
+{
+   Efl_Ui_Win_Data *sd = _elm_win_associate_get(ee);
+   if (!sd) return;
+
+#ifdef HAVE_ELEMENTARY_WL2
+   if ((sd->wl.win) && (sd->pointer.ee))
+ {
+ecore_evas_hide(sd->pointer.ee);
+sd->pointer.surf = NULL;
+ecore_wl2_window_pointer_set(sd->wl.win, NULL,
+ sd->pointer.hot_x, sd->pointer.hot_y);
+ }
 #endif
 }
 
@@ -2199,7 +2220,13 @@ _efl_ui_win_hide(Eo *obj, Efl_Ui_Win_Data *sd)
 evas_object_hide(sd->pointer.obj);
  }
 
-   if (sd->pointer.ee) ecore_evas_hide(sd->pointer.ee);
+   if (sd->pointer.ee)
+ {
+ecore_evas_hide(sd->pointer.ee);
+sd->pointer.surf = NULL;
+ecore_wl2_window_pointer_set(sd->wl.win, NULL,
+ sd->pointer.hot_x, sd->pointer.hot_y);
+ }
 
if (_elm_config->atspi_mode)
  {
@@ -2676,6 +2703,7 @@ _efl_ui_win_efl_canvas_group_group_del(Eo *obj, 
Efl_Ui_Win_Data *sd)
ecore_event_handler_del(sd->wl.configure_handler);
if (sd->pointer.obj) evas_object_del(sd->pointer.obj);
if (sd->pointer.ee) ecore_evas_free(sd->pointer.ee);
+   sd->pointer.surf = NULL;
 #endif
 
if (sd->img_obj)
@@ -2756,7 +2784,6 @@ _elm_win_obj_intercept_show(void *data,
 evas_object_show(sd->img_obj);
  }
if (sd->pointer.obj) evas_object_show(sd->pointer.obj);
-   if (sd->pointer.ee) ecore_evas_show(sd->pointer.ee);
 
evas_object_show(obj);
 #ifdef ELEMENTARY_X
@@ -3577,24 +3604,6 @@ static struct _resize_info _border_corner[4] =
 #endif
 
 static void
-_elm_win_frame_obj_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info EINA_UNUSED)
-{
-#ifdef HAVE_ELEMENTARY_WL2
-   Efl_Ui_Win_Data *sd = data;
-
-   if (sd->pointer.obj)
- _elm_theme_object_set(sd->obj, sd->pointer.obj,
-   "pointer", "base", "default");
-
-   if ((sd->wl.win) && (sd->pointer.surf))
- ecore_wl2_window_pointer_set(sd->wl.win, sd->pointer.surf,
-  sd->pointer.hot_x, sd->pointer.hot_y);
-#else
-   (void)data;
-#endif
-}
-
-static void
 _elm_win_frame_obj_move(void *data,
 Evas *e EINA_UNUSED,
 Evas_Object *obj EINA_UNUSED,
@@ -3908,8 +3917,6 @@ _elm_win_frame_add(Efl_Ui_Win_Data *sd, const char *style)
 sd->icon);
 
evas_object_event_callback_add
- (sd->frame_obj, EVAS_CALLBACK_MOUSE_IN, _elm_win_frame_obj_mouse_in, sd);
-   evas_object_event_callback_add
  (sd->frame_obj, EVAS_CALLBACK_MOVE, _elm_win_frame_obj_move, sd);
evas_object_event_callback_add
  (sd->frame_obj, EVAS_CALLBACK_RESIZE, _elm_win_frame_obj_resize, sd);
@@ -4696,7 +4703,11 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, 
const char *name, Elm_W
ecore_evas_callback_move_set(sd->ee, _elm_win_move);
ecore_evas_callback_pre_render_set(sd->ee, _elm_win_pre_render);
if (type != ELM_WIN_FAKE)
- ecore_evas_callback_mouse_in_set(sd->ee, _elm_win_mouse_in);
+ {
+ ecore_evas_callback_mouse_in_set(sd->ee, _elm_win_mouse_in);
+ ecore_evas_callback_mouse_out_set(sd->ee, _elm_win_mouse_out);
+ }
+
evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _elm_win_cb_hide, 
NULL);
evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, _elm_win_cb_show, 
NULL);
 
@@ -4841,12 +4852,10 @@ _elm_win_finalize_internal(Eo *obj, Efl_

[EGIT] [core/efl] master 08/08: elementary: Don't set "move" cursor on wayland client apps

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

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

commit ecc3e2fa516d937f65a24ec45c9fa62d8c9b491d
Author: Chris Michael 
Date:   Fri Oct 28 09:22:26 2016 -0400

elementary: Don't set "move" cursor on wayland client apps

As most (if not all) compositors will draw their own "move" cursor
when moving windows around, there's no real need to set this one
client side.

Signed-off-by: Chris Michael 
---
 src/lib/elementary/efl_ui_win.c | 14 ++
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index b508514..be922b8 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -3530,18 +3530,8 @@ _elm_win_frame_cb_move_start(void *data,
if (!sd) return;
 
 #ifdef HAVE_ELEMENTARY_WL2
-   if (sd->pointer.obj)
- {
-if (!strcmp(source, "elm"))
-  _elm_theme_object_set(sd->obj, sd->pointer.obj,
-"pointer", "base", "move");
-else
-  _elm_theme_object_set(sd->obj, sd->pointer.obj,
-"pointer", "base", "default");
- }
-
-   if ((sd->wl.win) && (sd->pointer.surf))
- ecore_wl2_window_pointer_set(sd->wl.win, sd->pointer.surf,
+   if (sd->wl.win)
+ ecore_wl2_window_pointer_set(sd->wl.win, NULL,
   sd->pointer.hot_x, sd->pointer.hot_y);
 #else
(void)source;

-- 




[EGIT] [core/efl] master 06/08: evas-wayland-shm: Don't post updates to surface if no surface

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

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

commit 21a8fbde7e781a7a681db7ec5d1506dd3e582386
Author: Chris Michael 
Date:   Fri Oct 28 08:57:10 2016 -0400

evas-wayland-shm: Don't post updates to surface if no surface

In the event that an ecore_evas (using wayland_shm) gets hidden then
the corresponding wl_surface gets destroyed. If evas_norender is
called after that, the outbuf_redraws_clear function follows.
Outbuf_redraw_clear function ends up trying to post updates to the
wl_surface however if that wl_surface is gone, then we end up crashing.

This patch addresses that issue by checking for a valid wl_surface
inside the engine before trying to post updates to that wl_surface.

Signed-off-by: Chris Michael 
---
 src/modules/evas/engines/wayland_shm/evas_outbuf.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_outbuf.c 
b/src/modules/evas/engines/wayland_shm/evas_outbuf.c
index d1cc7bb..c0f5368 100644
--- a/src/modules/evas/engines/wayland_shm/evas_outbuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_outbuf.c
@@ -625,7 +625,8 @@ void
 _evas_outbuf_redraws_clear(Outbuf *ob)
 {
if (!ob->priv.rect_count) return;
-   ob->surface->funcs.post(ob->surface, ob->priv.rects, ob->priv.rect_count);
+   if (ob->info->info.wl_surface)
+ ob->surface->funcs.post(ob->surface, ob->priv.rects, ob->priv.rect_count);
free(ob->priv.rects);
ob->priv.rect_count = 0;
 }

-- 




[EGIT] [core/efl] master 03/08: ecore-wl2: Don't create cursor frame callback if there is no cursor surface

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

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

commit f39e0ad20d47a182c45d0541a17ed76e1b531a49
Author: Chris Michael 
Date:   Thu Oct 27 13:48:56 2016 -0400

ecore-wl2: Don't create cursor frame callback if there is no cursor
surface

In the event that we have no cursor surface, then we should not be
creating a cursor frame callback.

@fix

Signed-off-by: Chris Michael 
---
 src/lib/ecore_wl2/ecore_wl2_input.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c 
b/src/lib/ecore_wl2/ecore_wl2_input.c
index fff7176..b89e3e1 100644
--- a/src/lib/ecore_wl2/ecore_wl2_input.c
+++ b/src/lib/ecore_wl2/ecore_wl2_input.c
@@ -672,7 +672,7 @@ _pointer_cb_frame(void *data, struct wl_callback *callback, 
unsigned int timesta
 input->cursor.frame_cb = NULL;
  }
 
-   if (!input->cursor.frame_cb)
+   if ((!input->cursor.frame_cb) && (input->cursor.surface))
  {
 input->cursor.frame_cb = wl_surface_frame(input->cursor.surface);
 wl_callback_add_listener(input->cursor.frame_cb,

-- 




[EGIT] [core/efl] master 02/08: elementary: Don't create pointer canvas for inlined_image

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

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

commit 257b4f0af8df8764e49825da718f557b59c77b1c
Author: Chris Michael 
Date:   Thu Oct 27 13:21:23 2016 -0400

elementary: Don't create pointer canvas for inlined_image

As we don't need a pointer or pointer canvas for
ELM_WIN_INLINED_IMAGE, add missing type check and skip creating
pointer canvas there.

Signed-off-by: Chris Michael 
---
 src/lib/elementary/efl_ui_win.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 06e652c..cc3bd9d 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -4814,7 +4814,7 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, 
const char *name, Elm_W
  }
 
 #ifdef HAVE_ELEMENTARY_WL2
-   if (type != ELM_WIN_FAKE)
+   if ((type != ELM_WIN_FAKE) && (type != ELM_WIN_INLINED_IMAGE))
  {
 if ((engine) &&
 ((!strcmp(engine, ELM_WAYLAND_SHM) ||

-- 




[EGIT] [core/efl] master 05/08: evas-wayland-shm: Fix formatting

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

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

commit 2c09a35b6cbc331776e434c07645875a66f0cc47
Author: Chris Michael 
Date:   Fri Oct 28 08:53:17 2016 -0400

evas-wayland-shm: Fix formatting

NB: No functional changes

Signed-off-by: Chris Michael 
---
 src/modules/evas/engines/wayland_shm/evas_engine.h | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_engine.h 
b/src/modules/evas/engines/wayland_shm/evas_engine.h
index 467e406..96bea3a 100644
--- a/src/modules/evas/engines/wayland_shm/evas_engine.h
+++ b/src/modules/evas/engines/wayland_shm/evas_engine.h
@@ -76,7 +76,8 @@ typedef struct _Shm_Surface Shm_Surface;
 typedef struct _Dmabuf_Surface Dmabuf_Surface;
 
 typedef enum _Surface_Type Surface_Type;
-enum _Surface_Type {
+enum _Surface_Type
+{
SURFACE_EMPTY,
SURFACE_SHM,
SURFACE_DMABUF
@@ -86,10 +87,11 @@ typedef struct _Surface Surface;
 struct _Surface
 {
Surface_Type type;
-   union {
-  Shm_Surface *shm;
-  Dmabuf_Surface *dmabuf;
-   } surf;
+   union
+ {
+Shm_Surface *shm;
+Dmabuf_Surface *dmabuf;
+ } surf;
Evas_Engine_Info_Wayland_Shm *info;
struct
  {

-- 




[EGIT] [core/efl] master 01/01: ecore-wl2: only update pointer frame if there is a pointer surface

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

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

commit 1cdeff1c42737aa6796a344dbd2937051217b02f
Author: Mike Blumenkrantz 
Date:   Fri Oct 28 09:53:29 2016 -0400

ecore-wl2: only update pointer frame if there is a pointer surface

fix T4777, T4776
---
 src/lib/ecore_wl2/ecore_wl2_input.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c 
b/src/lib/ecore_wl2/ecore_wl2_input.c
index 8a0376b..fff7176 100644
--- a/src/lib/ecore_wl2/ecore_wl2_input.c
+++ b/src/lib/ecore_wl2/ecore_wl2_input.c
@@ -1227,7 +1227,7 @@ _ecore_wl2_input_cursor_update(void *data)
input->cursor.surface,
input->cursor.hot_x, input->cursor.hot_y);
 
-   if (!input->cursor.frame_cb)
+   if (input->cursor.surface && (!input->cursor.frame_cb))
  _pointer_cb_frame(input, NULL, 0);
 
return ECORE_CALLBACK_RENEW;

-- 




[EGIT] [core/efl] master 01/01: Edje_Edit: save files name instead of full path on sound add

2016-10-28 Thread Vitalii Vorobiov
furrymyad pushed a commit to branch master.

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

commit 4655f90aafd88dfa07a1d85fb359c7629012fa75
Author: Vitalii Vorobiov 
Date:   Fri Oct 28 15:56:28 2016 +0300

Edje_Edit: save files name instead of full path on sound add

Since file will be inside of edj file, there is no need in having full path 
to
the place from where it was imported

@fix
---
 src/lib/edje/edje_edit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index aa41124..03a5fdf 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -1226,7 +1226,7 @@ edje_edit_sound_sample_add(Evas_Object *obj, const char 
*name, const char *snd_s
sound_sample = ed->file->sound_dir->samples +
  ed->file->sound_dir->samples_count - 1;
sound_sample->name = (char *)eina_stringshare_add(name);
-   sound_sample->snd_src = (char *)eina_stringshare_add(snd_src);
+   sound_sample->snd_src = (char 
*)eina_stringshare_add(ecore_file_file_get(snd_src));
sound_sample->compression = EDJE_SOUND_SOURCE_TYPE_INLINE_RAW;
sound_sample->id = id;
sound_sample->mode = 0;

-- 




Re: [E-devel] eina_log and threads

2016-10-28 Thread thomasg
On Fri, Oct 28, 2016 at 4:08 AM, Carsten Haitzler 
wrote:

> On Thu, 27 Oct 2016 09:16:02 -0200 Gustavo Sverzut Barbieri
>  said:
>
> > Hi all,
> >
> > eina_log has a feature to print the thread that generated the log as
> > in "[T:XX]" prefix, which is handy during development or debug.
> >
> > But that is off by default and the only way to enable is using
> > eina_log_threads_enable() call.
> >
> > So:
> >
> >  1) could we make that an envvar to enable/disable it?
>
> i see no reason why not
>
> >  2) could we default to TRUE if no envvar was used?
>
> hmmm we already putr pid, process, file, line number, function... a T:0x3f
> wouldnt really hurt. of an 80 wide terminal 100 chars is just this header
> already. may as well start making this multi-line anyway. :)
>

While any extra debugging info is nice, and I like that it can be
controlled at runtime, I think it should be off by default.
Log output that contains only really necessary information is much more
readable, and most of the time, thread information will not be at all
relevant nor useful.

Logging isn't necessarily used for program debugging, it mainly is used for
error reporting, which may be any number of errors, be it user or input
errors.
Threading information is exclusively useful for debugging, and I do think
debugging should always be off by default and only activated when actually
needed.

To be honest, I think eina_log default output is already a little bit too
cluttered and it may indeed already be useful to make it a seperate line
header.

That said, I love eina_log and it is certainly one of my favorite EFL
features!

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


[EGIT] [core/efl] master 02/02: Input events cache: use the new mechanism to reuse eo objects.

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

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

commit f2e049c81853d4f1a57b61d57688248c3da4
Author: Tom Hacohen 
Date:   Fri Oct 28 13:20:56 2016 +0100

Input events cache: use the new mechanism to reuse eo objects.
---
 src/lib/evas/canvas/efl_input_pointer.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/evas/canvas/efl_input_pointer.c 
b/src/lib/evas/canvas/efl_input_pointer.c
index 2214871..68c13bc 100644
--- a/src/lib/evas/canvas/efl_input_pointer.c
+++ b/src/lib/evas/canvas/efl_input_pointer.c
@@ -34,6 +34,7 @@ _del_hook(Eo *evt)
  efl_ref(evt);
  efl_parent_set(evt, NULL);
   }
+efl_reuse(evt);
 s_cached_event = evt;
  }
else

-- 




[EGIT] [core/efl] master 01/02: Eo: Add a method to mark objects for reuse.

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

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

commit f736946d10d519fe959bef84914e4ca3d91e7db8
Author: Tom Hacohen 
Date:   Fri Oct 28 13:19:10 2016 +0100

Eo: Add a method to mark objects for reuse.

This informas eo an object is going to get reused/cached, so eo can
reset the object appropriately.

@feature.
---
 src/lib/eo/Eo.h  | 11 +++
 src/lib/eo/eo.c  |  9 -
 src/lib/eo/eo_base_class.c   |  4 ++--
 src/lib/eo/eo_private.h  |  2 +-
 src/tests/eo/suite/eo_test_general.c | 21 +
 5 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index 4ca0713..8c81544 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -1097,6 +1097,17 @@ EAPI void efl_del_intercept_set(Eo *obj, 
Efl_Del_Intercept del_intercept_func);
 EAPI Efl_Del_Intercept efl_del_intercept_get(const Eo *obj);
 
 /**
+ * @brief Clears the object so it can be reused (for example in a cache)
+ * @param obj The object to mark for reusal
+ *
+ * This assumes the destructor has been called on the object, so it
+ * should probably only be used from the del intercept.
+ *
+ * @see efl_del_intercept_set()
+ */
+EAPI void efl_reuse(const Eo *obj);
+
+/**
  * @def efl_xref(obj, ref_obj)
  * Convenience macro around efl_xref_internal()
  * @see efl_xref()
diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index ad8306d..1da4566 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -856,7 +856,7 @@ _efl_add_end(Eo *eo_id, Eina_Bool is_ref, Eina_Bool 
is_fallback)
   {
  efl_ref(eo_id);
   }
-_efl_object_parent_sink(eo_id);
+_efl_object_parent_sink_set(eo_id, EINA_TRUE);
  }
 
if (is_fallback)
@@ -867,6 +867,13 @@ _efl_add_end(Eo *eo_id, Eina_Bool is_ref, Eina_Bool 
is_fallback)
return ret;
 }
 
+EAPI void
+efl_reuse(const Eo *_obj)
+{
+   Eo *obj = (Eo *) _obj;
+   efl_object_override(obj, NULL);
+   _efl_object_parent_sink_set(obj, EINA_FALSE);
+}
 /*/
 
 EAPI const Efl_Class *
diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index c79d213..5ef3509 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -535,10 +535,10 @@ _efl_object_del(const Eo *obj, Efl_Object_Data *pd 
EINA_UNUSED)
 }
 
 void
-_efl_object_parent_sink(Eo *obj)
+_efl_object_parent_sink_set(Eo *obj, Eina_Bool sink)
 {
Efl_Object_Data *pd = efl_data_scope_get(obj, EFL_OBJECT_CLASS);
-   pd->parent_sunk = EINA_TRUE;
+   pd->parent_sunk = sink;
 }
 
 EOLIAN static void
diff --git a/src/lib/eo/eo_private.h b/src/lib/eo/eo_private.h
index 035d84c..99f667a 100644
--- a/src/lib/eo/eo_private.h
+++ b/src/lib/eo/eo_private.h
@@ -196,7 +196,7 @@ typedef struct
int line;
 } Eo_Xref_Node;
 
-void _efl_object_parent_sink(Eo *obj);
+void _efl_object_parent_sink_set(Eo *obj, Eina_Bool sink);
 
 static inline
 Eo *_eo_header_id_get(const Eo_Header *header)
diff --git a/src/tests/eo/suite/eo_test_general.c 
b/src/tests/eo/suite/eo_test_general.c
index bb34b7d..b956eae 100644
--- a/src/tests/eo/suite/eo_test_general.c
+++ b/src/tests/eo/suite/eo_test_general.c
@@ -1230,6 +1230,12 @@ _del_intercept(Eo *obj)
efl_del_intercept_set(obj, NULL);
efl_unref(obj);
 }
+
+static void
+_del_intercept_reuse(Eo *obj)
+{
+   efl_reuse(obj);
+}
 #endif
 
 START_TEST(efl_del_intercept)
@@ -1270,6 +1276,21 @@ START_TEST(efl_del_intercept)
fail_if(!intercepted);
fail_if(efl_isa(obj, klass));
 
+   /* Check reuse works as expected. */
+   Eo *parent = efl_add(SIMPLE_CLASS, NULL);
+   obj = efl_add(klass, NULL);
+   fail_if(!obj);
+   ck_assert_int_eq(efl_ref_get(obj), 1);
+   efl_parent_set(obj, parent);
+   ck_assert_int_eq(efl_ref_get(obj), 1);
+   efl_del_intercept_set(obj, _del_intercept_reuse);
+   efl_del_intercept_set(obj, NULL);
+   /* This essentially checks it get unsunk */
+   ck_assert_int_eq(efl_ref_get(obj), 1);
+   efl_parent_set(obj, parent);
+   ck_assert_int_eq(efl_ref_get(obj), 1);
+   efl_del(obj);
+
efl_object_shutdown();
 #endif
 }

-- 




[EGIT] [themes/klok] master 01/01: Specify text.elipsis to avoid letters being replaced with '...'

2016-10-28 Thread Eduardo Lima (Etrunko)
etrunko pushed a commit to branch master.

http://git.enlightenment.org/themes/klok.git/commit/?id=a31ac694b0636861fb7835780ae7f8f9766e7c91

commit a31ac694b0636861fb7835780ae7f8f9766e7c91
Author: Eduardo Lima (Etrunko) 
Date:   Fri Oct 28 10:23:56 2016 -0200

Specify text.elipsis to avoid letters being replaced with '...'

Signed-off-by: Eduardo Lima (Etrunko) 
---
 klok.edc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/klok.edc b/klok.edc
index e6e38d6..4bd4d22 100644
--- a/klok.edc
+++ b/klok.edc
@@ -421,6 +421,7 @@ collections {
 align: 0.5 0.5; \
 text:  _off;\
 text_class: "klok_letter";  \
+elipsis: -1;\
 }   \
 }   \
 description {   \
@@ -455,6 +456,7 @@ collections {
 align: 0.5 0.5; \
 text:  _on; \
 text_class: "klok_letter";  \
+elipsis: -1;\
 }   \
 }   \
 description {   \

-- 




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

2016-10-28 Thread Eduardo Lima (Etrunko)
On Thu, Oct 27, 2016 at 9:24 PM, Simon Lees  wrote:

>
>
> On 10/28/2016 04:37 AM, Eduardo Lima (Etrunko) wrote:
> > Hmm, maybe it is related to the issue I reported these days, can you
> please
> > try the steps I and see what  you got?
> >
> > https://phab.enlightenment.org/T4730
> >
> > On Thu, Oct 27, 2016 at 11:44 AM, Jeff Hoogland 
> > wrote:
> >
> >> Finally getting with the times and upgrading to the latest EFL in Bodhi
> >> since it doesn't cause hard locks with E17 anymore. I am having a much
> more
> >> minor issue with some of our themes though. Text doesn't appear to take
> >> space properly any more for certain objects like it did with previous
> EFL
> >> versions.
> >>
> >> Screenshot:
> >> https://cdn.scrot.moe/images/2016/10/27/shot-2016-10-27_13-28-32.jpg
> >>
> >> The module highlighted in the corner is the clock module. It just
> displays
> >> "..." instead of the time like it did with previous EFL versions I used
> it
> >> with.
> >>
> >> The everything launcher also displays "..." instead of the text you are
> >> searching for once I type more than a single character.
> >>
> >> Theme source is here -> https://github.com/JeffHoogland/MokshaForum
> >>
> >> Someone else did the bulk of work on these and I am just trying to patch
> >> them up as issues like this appear. Any suggestions on where to look to
> fix
> >> these text sizing issues with EFL 1.18?
> >>
>
> At a guess if the clock etc is just a text part (label) you probably
> need to add "text.ellipsis: -1;" so that the text doesn't get truncated
> with ..., this isn't exactly a new efl change though, its atleast 2
> years old from memory and all the newer themes were patched to fix it at
> one point or another. My guess is when you compile you get a bunch of
> warnings about places where it needs fixing.
>
>

This fixed the issue with klok indeed, but I haven' t seen any warnings
about that in compilation.
--
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


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

2016-10-28 Thread Gustavo Sverzut Barbieri
Em sexta-feira, 28 de outubro de 2016, Carsten Haitzler <
ras...@rasterman.com> escreveu:

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


The motivation is better usage of the surface. Instead of few buttons and
title, it can provide more useful information and more actions, like a
menu, preview or even tabs as done by chromium.

Then not just adopting CSD, but also trying to provide an API to better use
these while keeping WM features, such as the window menu and useful bits
such as "take screenshot", move to desktop... (which AFAIR is lost with
gnome CSD decorations)

Terminology could be an user, showing tabs and [+] to add more.


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


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

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

As this is the direction that things are going anyway, I think it's a 
good idea. Server side decorations conflict with wayland principles of 
client-side decorations, and ultimately (imo) only serve to complicate 
matters. While the theory of Server side decorations in Wayland was an 
interesting one, it does not have any real traction in the other toolkit 
camps (afaik) and I don't believe that any other compositor is 
implementing them either, so this I agree with.


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

> 3. xcb was a valiant effort, but it is not even 1:1 feature for feature up to
> date with xlib. it's off by default because of this and we need xlib for gl
> anyway. we cant dump xlib. it's just a lot of code in our tree that we likely
> could remove to clear out some "cruft". not to say work on xcb has been bad.
> it's been good.

:)

  it's a very very large amount of useful code but it just has
> never proven to be any real big gains and lack of full featured implementation
> (it's 98% there) means it kind of isn't useful. so how about we drop it to
> simplify?
>

Given that work on xcb itself seems to have stalled (meaning I've not 
seen any efforts for it to get feature parity with xlib), I would say 
removing it would be the way to go. While I am partial to the xcb code 
(being the one who implemented it), having it in the codebase and not 
being used is just pointless, and as you've stated we still need xlib to 
handle gl in there anyway so may as well just stick with xlib.

Cheers,
dh

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


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


[EGIT] [core/enlightenment] master 01/01: mixer: do not set back the value from emix once the drag is finished

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

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

commit 8724313b8e4c9799c5d20b876d5aaa9e5341d519
Author: Marcel Hollerbach 
Date:   Fri Oct 28 11:35:45 2016 +0200

mixer: do not set back the value from emix once the drag is finished

emix can still have wrong values from pa, and thus the value will jump
back and later come back to the right pos:

Here a video of what is happening:
http://omicron.homeip.net/filedump/mixer_gadget_bug.ogv

Thank you morluxus!
---
 src/modules/mixer/e_mod_main.c | 11 ---
 src/modules/mixer/emixer.c | 13 -
 2 files changed, 24 deletions(-)

diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c
index 15aa4af..5786bed 100644
--- a/src/modules/mixer/e_mod_main.c
+++ b/src/modules/mixer/e_mod_main.c
@@ -492,16 +492,6 @@ _slider_changed_cb(void *data EINA_UNUSED, Evas_Object 
*obj,
 }
 
 static void
-_slider_drag_stop_cb(void *data EINA_UNUSED, Evas_Object *obj,
- void *event EINA_UNUSED)
-{
-   EINA_SAFETY_ON_NULL_RETURN(mixer_context->sink_default);
-   Emix_Sink *s = (Emix_Sink *)mixer_context->sink_default;
-   int val = s->volume.volumes[0];
-   elm_slider_value_set(obj, val);
-}
-
-static void
 _sink_selected_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
 {
Emix_Sink *s = data;
@@ -565,7 +555,6 @@ _popup_new(Instance *inst)
evas_object_show(slider);
elm_slider_min_max_set(slider, 0.0, emix_max_volume_get());
evas_object_smart_callback_add(slider, "changed", _slider_changed_cb, NULL);
-   evas_object_smart_callback_add(slider, "slider,drag,stop", 
_slider_drag_stop_cb, NULL);
elm_slider_value_set(slider, volume);
elm_box_pack_end(bx, slider);
evas_object_show(slider);
diff --git a/src/modules/mixer/emixer.c b/src/modules/mixer/emixer.c
index 5cde881..1bcd96c 100644
--- a/src/modules/mixer/emixer.c
+++ b/src/modules/mixer/emixer.c
@@ -49,17 +49,6 @@ _cb_sink_volume_change(void *data,
 }
 
 static void
-_cb_sink_volume_drag_stop(void *data,
-  Evas_Object *obj,
-  void *event EINA_UNUSED)
-{
-   Evas_Object *bxv = data;
-   Emix_Sink *sink = evas_object_data_get(bxv, "sink");
-   int vol = sink->volume.volumes[0];
-   elm_slider_value_set(obj, vol);
-}
-
-static void
 _cb_sink_mute_change(void *data,
  Evas_Object *obj,
  void *event_info EINA_UNUSED)
@@ -134,8 +123,6 @@ _emix_sink_add(Emix_Sink *sink)
elm_box_pack_end(bx, sl);
evas_object_show(sl);
evas_object_smart_callback_add(sl, "changed", _cb_sink_volume_change, bxv);
-   evas_object_smart_callback_add(sl, "slider,drag,stop",
-  _cb_sink_volume_drag_stop, bxv);
 
ck = elm_check_add(win);
evas_object_data_set(bxv, "mute", ck);

-- 




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

2016-10-28 Thread The Rasterman
On Fri, 28 Oct 2016 09:04:04 +0200 "Jean Guyomarc'h" 
said:

> I cannot really test right now, but this might fix this:
> https://phab.enlightenment.org/T4686.
> If so, much thanks :)
> Jean

well it fixes the animated gif issue :)

> On Fri, Oct 28, 2016 at 1:46 AM, Carsten Haitzler 
> wrote:
> > raster pushed a commit to branch master.
> >
> > http://git.enlightenment.org/core/efl.git/commit/?id=b533f15880c7d51c3bdb499202dca858cf5b037a
> >
> > commit b533f15880c7d51c3bdb499202dca858cf5b037a
> > Author: Carsten Haitzler (Rasterman) 
> > Date:   Fri Oct 28 08:17:11 2016 +0900
> >
> > evas - fix smart clipped if a move happens to recurse within itself
> >
> > so since this uses new pos - cur pos to move BY x pixels... there is
> > an issue that if the move of the obj ends up re-moving the current obj
> > TO the same pos. it moved BY the same delta again thus racing ahead.
> > not great. because x/y is not stored until the call stack returns to
> > after the smart move func and the pos set storce the new position in
> > the object struct. the easiest way atm until we have relative
> > positioning etc. is to store this in the smart obj and use the delta
> > at that time of the call then store it immediately so a recursion ends
> > up with a delta of 0 if its the same pos, so go back to where we were.
> >
> > this fixes a nasty issue i spotted in fileselector that made filesel
> > icons race along when scrolling 2x as fast as everything else. oddly i
> > couldnt see this in any other widget that scrolled when i looked...
> > which is odd, but... either way a nasty issue... subtle... and now
> > fixed. never saw this before so this seems new.
> > ---
> >  src/lib/evas/canvas/evas_object_smart.c | 13 +
> >  src/lib/evas/canvas/evas_object_smart_clipped.c |  2 +-
> >  src/lib/evas/include/evas_private.h |  1 +
> >  3 files changed, 15 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/lib/evas/canvas/evas_object_smart.c
> > b/src/lib/evas/canvas/evas_object_smart.c index 359fee1..205d494 100644
> > --- a/src/lib/evas/canvas/evas_object_smart.c
> > +++ b/src/lib/evas/canvas/evas_object_smart.c
> > @@ -36,6 +36,8 @@ struct _Evas_Smart_Data
> >
> > Evas_Smart_Cb_Description_Array callbacks_descriptions;
> >
> > +   Evas_Coordx, y;
> > +
> > int   walking_list;
> > int   member_count; /** number of smart member objects */
> >
> > @@ -913,6 +915,17 @@ _evas_canvas_smart_objects_calculate_count_get(Eo
> > *eo_e EINA_UNUSED, Evas_Public return e->smart_calc_count;
> >  }
> >
> > +void
> > +_evas_object_smart_xy_update(Eo *eo_obj, Evas_Coord *px, Evas_Coord *py,
> > + Evas_Coord x, Evas_Coord y)
> > +{
> > +   EVAS_OBJECT_SMART_GET_OR_RETURN(eo_obj);
> > +   *px = o->x;
> > +   *py = o->y;
> > +   o->x = x;
> > +   o->y = y;
> > +}
> > +
> >  /**
> >   * Call calculate() on all smart objects that need_recalculate.
> >   *
> > diff --git a/src/lib/evas/canvas/evas_object_smart_clipped.c
> > b/src/lib/evas/canvas/evas_object_smart_clipped.c index f9f95dd..8cbc5c5
> > 100644
> > --- a/src/lib/evas/canvas/evas_object_smart_clipped.c
> > +++ b/src/lib/evas/canvas/evas_object_smart_clipped.c
> > @@ -86,7 +86,7 @@ evas_object_smart_clipped_smart_move(Evas_Object *eo_obj,
> > Evas_Coord x, Evas_Coo {
> > Evas_Coord orig_x, orig_y;
> >
> > -   efl_gfx_position_get(eo_obj, &orig_x, &orig_y);
> > +   _evas_object_smart_xy_update(eo_obj, &orig_x, &orig_y, x, y);
> > evas_object_smart_move_children_relative(eo_obj, x - orig_x, y -
> > orig_y); }
> >
> > diff --git a/src/lib/evas/include/evas_private.h
> > b/src/lib/evas/include/evas_private.h index 6dc037b..6b0ff68 100644
> > --- a/src/lib/evas/include/evas_private.h
> > +++ b/src/lib/evas/include/evas_private.h
> > @@ -1601,6 +1601,7 @@ void evas_object_smart_member_stack_above(Evas_Object
> > *member, Evas_Object *othe void evas_object_smart_member_stack_below
> > (Evas_Object *member, Evas_Object *other); const Eina_Inlist
> > *evas_object_smart_members_get_direct(const Evas_Object *obj); void
> > _efl_canvas_group_group_members_all_del(Evas_Object *obj); +void
> > _evas_object_smart_xy_update(Eo *eo_obj, Evas_Coord *px, Evas_Coord *py,
> > Evas_Coord x, Evas_Coord y); void evas_call_smarts_calculate(Evas *e); void
> > evas_object_smart_bounding_box_update(Evas_Object *eo_obj,
> > Evas_Object_Protected_Data *obj); void
> > evas_object_smart_need_bounding_box_update(Evas_Object *eo_obj,
> > Evas_Smart_Data *o, Evas_Object_Protected_Data *obj);
> >
> > --
> >
> >
> 
> --
> The Command Line: Reinvented for Modern Developers
> Did the resurgence of CLI tooling catch you by surprise?
> Reconnect with the command line and become more productive. 
> Learn the new .NET and ASP.NET CLI. Get your free copy!
> http://sdm.link/telerik
> _

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

2016-10-28 Thread Jean Guyomarc'h
I cannot really test right now, but this might fix this:
https://phab.enlightenment.org/T4686.
If so, much thanks :)
Jean


On Fri, Oct 28, 2016 at 1:46 AM, Carsten Haitzler  wrote:
> raster pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=b533f15880c7d51c3bdb499202dca858cf5b037a
>
> commit b533f15880c7d51c3bdb499202dca858cf5b037a
> Author: Carsten Haitzler (Rasterman) 
> Date:   Fri Oct 28 08:17:11 2016 +0900
>
> evas - fix smart clipped if a move happens to recurse within itself
>
> so since this uses new pos - cur pos to move BY x pixels... there is
> an issue that if the move of the obj ends up re-moving the current obj
> TO the same pos. it moved BY the same delta again thus racing ahead.
> not great. because x/y is not stored until the call stack returns to
> after the smart move func and the pos set storce the new position in
> the object struct. the easiest way atm until we have relative
> positioning etc. is to store this in the smart obj and use the delta
> at that time of the call then store it immediately so a recursion ends
> up with a delta of 0 if its the same pos, so go back to where we were.
>
> this fixes a nasty issue i spotted in fileselector that made filesel
> icons race along when scrolling 2x as fast as everything else. oddly i
> couldnt see this in any other widget that scrolled when i looked...
> which is odd, but... either way a nasty issue... subtle... and now
> fixed. never saw this before so this seems new.
> ---
>  src/lib/evas/canvas/evas_object_smart.c | 13 +
>  src/lib/evas/canvas/evas_object_smart_clipped.c |  2 +-
>  src/lib/evas/include/evas_private.h |  1 +
>  3 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/src/lib/evas/canvas/evas_object_smart.c 
> b/src/lib/evas/canvas/evas_object_smart.c
> index 359fee1..205d494 100644
> --- a/src/lib/evas/canvas/evas_object_smart.c
> +++ b/src/lib/evas/canvas/evas_object_smart.c
> @@ -36,6 +36,8 @@ struct _Evas_Smart_Data
>
> Evas_Smart_Cb_Description_Array callbacks_descriptions;
>
> +   Evas_Coordx, y;
> +
> int   walking_list;
> int   member_count; /** number of smart member objects */
>
> @@ -913,6 +915,17 @@ _evas_canvas_smart_objects_calculate_count_get(Eo *eo_e 
> EINA_UNUSED, Evas_Public
> return e->smart_calc_count;
>  }
>
> +void
> +_evas_object_smart_xy_update(Eo *eo_obj, Evas_Coord *px, Evas_Coord *py,
> + Evas_Coord x, Evas_Coord y)
> +{
> +   EVAS_OBJECT_SMART_GET_OR_RETURN(eo_obj);
> +   *px = o->x;
> +   *py = o->y;
> +   o->x = x;
> +   o->y = y;
> +}
> +
>  /**
>   * Call calculate() on all smart objects that need_recalculate.
>   *
> diff --git a/src/lib/evas/canvas/evas_object_smart_clipped.c 
> b/src/lib/evas/canvas/evas_object_smart_clipped.c
> index f9f95dd..8cbc5c5 100644
> --- a/src/lib/evas/canvas/evas_object_smart_clipped.c
> +++ b/src/lib/evas/canvas/evas_object_smart_clipped.c
> @@ -86,7 +86,7 @@ evas_object_smart_clipped_smart_move(Evas_Object *eo_obj, 
> Evas_Coord x, Evas_Coo
>  {
> Evas_Coord orig_x, orig_y;
>
> -   efl_gfx_position_get(eo_obj, &orig_x, &orig_y);
> +   _evas_object_smart_xy_update(eo_obj, &orig_x, &orig_y, x, y);
> evas_object_smart_move_children_relative(eo_obj, x - orig_x, y - orig_y);
>  }
>
> diff --git a/src/lib/evas/include/evas_private.h 
> b/src/lib/evas/include/evas_private.h
> index 6dc037b..6b0ff68 100644
> --- a/src/lib/evas/include/evas_private.h
> +++ b/src/lib/evas/include/evas_private.h
> @@ -1601,6 +1601,7 @@ void evas_object_smart_member_stack_above(Evas_Object 
> *member, Evas_Object *othe
>  void evas_object_smart_member_stack_below(Evas_Object *member, Evas_Object 
> *other);
>  const Eina_Inlist *evas_object_smart_members_get_direct(const Evas_Object 
> *obj);
>  void _efl_canvas_group_group_members_all_del(Evas_Object *obj);
> +void _evas_object_smart_xy_update(Eo *eo_obj, Evas_Coord *px, Evas_Coord 
> *py, Evas_Coord x, Evas_Coord y);
>  void evas_call_smarts_calculate(Evas *e);
>  void evas_object_smart_bounding_box_update(Evas_Object *eo_obj, 
> Evas_Object_Protected_Data *obj);
>  void evas_object_smart_need_bounding_box_update(Evas_Object *eo_obj, 
> Evas_Smart_Data *o, Evas_Object_Protected_Data *obj);
>
> --
>
>

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