On Tue, 28 Jan 2014 19:26:06 -0500 Michael Blumenkrantz <michael.blumenkra...@gmail.com> said:
> On Wed, 29 Jan 2014 09:12:18 +0900 > Carsten Haitzler (The Rasterman) <ras...@rasterman.com> wrote: > > > On Tue, 28 Jan 2014 18:54:27 -0500 Michael Blumenkrantz > > <michael.blumenkra...@gmail.com> said: > > > > > On Wed, 29 Jan 2014 08:46:50 +0900 > > > Carsten Haitzler (The Rasterman) <ras...@rasterman.com> wrote: > > > > > > > On Tue, 28 Jan 2014 18:34:20 -0500 Michael Blumenkrantz > > > > <michael.blumenkra...@gmail.com> said: > > > > > > > > > On Wed, 29 Jan 2014 08:18:20 +0900 > > > > > Carsten Haitzler (The Rasterman) <ras...@rasterman.com> wrote: > > > > > > > > > > > On Tue, 28 Jan 2014 11:29:16 -0500 Michael Blumenkrantz > > > > > > <michael.blumenkra...@gmail.com> said: > > > > > > > > > > > > if you're going to do this... > > > > > > > > > > > > 1. double-check _e_main_cb_idle_before + _e_main_cb_idle_after - > > > > > > notice an edje freeze/thaw. by removing these you may be stuck in a > > > > > > edje freeze state... you should now track this since e was > > > > > > freezing/thawing every time it comes out of idle and goes back - so > > > > > > depending where this is called... it may leave you in a freeze. > > > > > > > > > > I looked at these and had checks for it initially, but I removed them > > > > > because I'm not sure how that could occur since it's only called from > > > > > screensaver-related stuff which should only be called outside of idler > > > > > processing. > > > > > > > > but it could be called within the idler time (i know e_dbus and eldbus > > > > use idlers). so that means if this was used from something triggered by > > > > a dbus msg it COULd possibly be called there. that's why i'm saying - > > > > you want to be careful and ensure you keep things in a controlled > > > > state. :) > > > > > > I guess that's possible. > > > > > > > > > > > > > 2. what is probably far more useful is to se the comp canvas(es) to > > > > > > manual render - ecore_evas_manual_render_set(ee, EINA_TRUE/FALSE) - > > > > > > this basically stops the "always render automatically when you go > > > > > > idle" and makes rendering only happen when you explicitly call > > > > > > ecore_evas_manual_render(ee). in fact this is far more useful than > > > > > > playing with the e main idlers as when ascreen is blanked its output > > > > > > isn't visible so there is no point rendering, BUT... the main > > > > > > idlers do things other than render - they make e respond to icccm > > > > > > and events and actually DO the thing requested - at a logical > > > > > > level, so stopping this may lead to lots of unexpected consequences. > > > > > > > > > > Manual rendering would probably be useful in addition to, but not > > > > > instead of, stopping the idlers; I already blocked render updates > > > > > from occurring during screensaver a while ago before the E19 merge, > > > > > so this would only stop things like animating gadgets from continuing > > > > > to animate. The intent was precisely to stop clients from updating > > > > > themselves since this can, in many cases, lead to infinite loops when > > > > > a client tries to perform some X action which can't occur due to the > > > > > display being off (or so my testing has shown). The only property > > > > > which gets set on clients that should affect anything during > > > > > screensaver would be the urgency hint, and this no longer relies on > > > > > an idler to set itself. > > > > > > > > imagine this - a client requests a move of its window. or a resize... > > > > and then we respond saying "ok - good. moved here. resized t this". but > > > > the window will never actually do that... because its an idle enterer -> > > > > e_client_idler_before. now we respond saying ok - size/position changed. > > > > sure- there may be a race/lag until it's done, but this lag becomes > > > > seconds minutes, hours... days... and the app may then query actual > > > > location and find it is not where we said it would be. this can lead to > > > > all sorts of behavioral problems depending on how the clients > > > > themselves work and behave. > > > > > > These requests should still execute as expected since they come directly > > > from X handlers, and so they would fall right through to the expected > > > outcome of performing the resize but without doing any non-instant canvas > > > operations. > > > > focus is still done in the idler before in e_client, as are internal > > ecore-evas windows resized there. the zone is changed/set there too based > > on geometry changes, placement of new windows is done there too... (what > > happens if someone opens a new window while screensaver is on?) the client > > hooks used by tiling/illume etc. are called there too... :) i smell you'll > > have a series of buglets there. > > All of these things still happen, just not until the screen wakes up. New > windows were, in fact, the entire reason for adding this. As proof, if you > blank your screen and open a new window (or several) on a timer, you'll > actually see the focus animation(s) play just as your screen wakes up, and > focus will be set on the new window. hint - have you tried plugging in/unplugging a monitor while screensaver is on? since app isnt assigned to a zone yet.. what happens? e is meant to handle a monitor removal by shuffling apps that were on that screen to the current one. what if you ssh in while screen is blanked and xrandr add/remove screens? > As I said, I didn't originally mean for this to go in yet since I wanted to > test it more, but I've had it running for a couple days without noticing any > issues yet, so some wider testing can't hurt. At worst I roll it back for > tinkering. > > > > > what is probably MORE useful is to do the manual rendering AND drop ecore > > animator frametime/rate to something very low like 1fps or 0.25fps or > > something (set frametime to 1.0, 4.0 or more), and on screen wakeup set it > > back to where ti was. :) > > That can happen too. > > > > > > > > > > > > > > Wasn't intending to put this in just yet, but I guess we can try > > > > > > > it out. If anyone notices any rendering issues upon waking the > > > > > > > screen up then this is why. > > > > > > > > > > > > > > On Mon, 27 Jan 2014 18:50:05 -0800 > > > > > > > Mike Blumenkrantz <michael.blumenkra...@gmail.com> wrote: > > > > > > > > > > > > > > > discomfitor pushed a commit to branch master. > > > > > > > > > > > > > > > > http://git.enlightenment.org/core/enlightenment.git/commit/?id=55bc44c9b853d52e6a1053342c4962c3093bc632 > > > > > > > > > > > > > > > > commit 55bc44c9b853d52e6a1053342c4962c3093bc632 > > > > > > > > Author: Mike Blumenkrantz <zm...@samsung.com> > > > > > > > > Date: Mon Jan 27 16:16:41 2014 -0500 > > > > > > > > > > > > > > > > feature: main idlers now freeze during screensaver to > > > > > > > > conserve power > > > > > > > > --- > > > > > > > > src/bin/e.h | 2 ++ > > > > > > > > src/bin/e_comp.c | 2 ++ > > > > > > > > src/bin/e_comp_canvas.c | 10 ++++++++++ > > > > > > > > src/bin/e_main.c | 18 ++++++++++++++++++ > > > > > > > > 4 files changed, 32 insertions(+) > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------------ > > > > > > > WatchGuard Dimension instantly turns raw network data into > > > > > > > actionable security intelligence. It gives you real-time visual > > > > > > > feedback on key security issues and trends. Skip the complicated > > > > > > > setup - simply import a virtual appliance and go from zero to > > > > > > > informed in seconds. > > > > > > > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > > > > > > > _______________________________________________ > > > > > > > enlightenment-devel mailing list > > > > > > > enlightenment-devel@lists.sourceforge.net > > > > > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------------ > > > WatchGuard Dimension instantly turns raw network data into actionable > > > security intelligence. It gives you real-time visual feedback on key > > > security issues and trends. Skip the complicated setup - simply import > > > a virtual appliance and go from zero to informed in seconds. > > > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > > > _______________________________________________ > > > enlightenment-devel mailing list > > > enlightenment-devel@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > > > > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > 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 ------------------------------------------------------------------------------ WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel