Re: [E-devel] eina_log and threads
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
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
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?
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?
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.
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
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
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
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
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
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.
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
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
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
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
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
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
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
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.
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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 '...'
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
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?
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?
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
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
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
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