After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 609135 - Draw a ripple when the hot corner is hit
Draw a ripple when the hot corner is hit
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2010-02-06 00:31 UTC by Owen Taylor
Modified: 2010-02-08 19:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Draw a ripple when the hot corner is hit (7.50 KB, patch)
2010-02-06 00:32 UTC, Owen Taylor
committed Details | Review

Description Owen Taylor 2010-02-06 00:31:59 UTC
The appearance here could definitely be tweaked more; this may be
a little too subtle to really give a good hint. (To make it less subtle,
redraw corner-ripple.png to have a more opaque/less-blurred edge line
and/or a brighter color.)

But I think it's close enough to right to allow evaluating the idea - 
to see if it makes sense or is just visual noise without a purpose.
Comment 1 Owen Taylor 2010-02-06 00:32:02 UTC
Created attachment 153121 [details] [review]
Draw a ripple when the hot corner is hit

Animate an expanding ripple from the hot corner using multiple
scaling copies of a PNG of a single ripple. The idea here is to
give the user a clue as to what happened.

Based on initial version implemented live at MIT IAP GNOME Shell
intro session; thanks to all the attendees for coming!
Comment 2 William Jon McCann 2010-02-06 01:22:22 UTC
Actually on my screen it is certainly not too subtle.  It also makes it really clear that we need to restyle the activities item/button when in the overview.  The blue box doesn't look very nice.  Anyway... :)

I think the effect looks pretty good.  But maybe it would be better if it acted a bit more physically?  Like say a water drop without all the weird surface tension effects.  Or a critically damped impulse.  Right now, it seems like the rings are continuing to come from the source of the impulse at more or less the same intensity even after it is gone.  Thought probably I'm being too nit picky.
Comment 3 Florian Müllner 2010-02-06 22:57:41 UTC
Just two quick observations:
(1) the modifications to shell-drawing.h look left-over code
(2) corner-ripple.png has to be added to the Makefile
Comment 4 Owen Taylor 2010-02-08 18:24:54 UTC
(In reply to comment #2)
> Actually on my screen it is certainly not too subtle.  It also makes it really
> clear that we need to restyle the activities item/button when in the overview. 
> The blue box doesn't look very nice.  Anyway... :)

Probably the subtleness thing is the same thing going on when I can't see much of the text of the overview on my display.

> I think the effect looks pretty good.  But maybe it would be better if it acted
> a bit more physically?  Like say a water drop without all the weird surface
> tension effects.  Or a critically damped impulse.  Right now, it seems like the
> rings are continuing to come from the source of the impulse at more or less the
> same intensity even after it is gone.  Thought probably I'm being too nit
> picky.

I didn't really want to pull out the physics. (Let's see, a 1-dimensional solution to the shallow water wave equation assuming circular symmetry and an initial condition with a sharply peaked Guassian in the middle ...) Also note that along with the physics of the waves there's an implied lighting model involved here - what is the source of these rings that we are seeing - are they reflections?

Things that are encoded in the completely heuristic parameters that I think are somewhat physical.

 - The waves have a constant velocity independent of amplitude
 - The waves spread out slightly over time (due to dispersive effect)

As you've noted there's a bit of a weird thing where the 3rd ripple can be seen to sail out with an empty space following it as if someone agitated the water for a bit and then stopped agitating it. This could be fixed to make it look more like expanding rings from a brief stimulus by decreasing the intensity of the second and third ripple further, or adding a fourth ripple.

Both could easily be fooled around in the JS code by:

                //              delay  time  scale opacity => scale opacity
                this._addRipple(0.0,   0.83,  0.25,  1.0,    1.5,  0.0);
                this._addRipple(0.05,  1.0,   0.0,   0.7,    1.25, 0.0);
                this._addRipple(0.35,  1.0,   0.0,   0.3,    1,    0.0);

Adjust the 4th column to make ripple lighter or darker. Add another line for a 4th ripple. I decided to stop fooling around with it after a while.
Comment 5 Owen Taylor 2010-02-08 19:03:40 UTC
(In reply to comment #4)

> Both could easily be fooled around in the JS code by:
> 
>                 //              delay  time  scale opacity => scale opacity
>                 this._addRipple(0.0,   0.83,  0.25,  1.0,    1.5,  0.0);
>                 this._addRipple(0.05,  1.0,   0.0,   0.7,    1.25, 0.0);
>                 this._addRipple(0.35,  1.0,   0.0,   0.3,    1,    0.0);
> 
> Adjust the 4th column to make ripple lighter or darker. Add another line for a
> 4th ripple. I decided to stop fooling around with it after a while.

Quick addendum - the main culprit here seems seems to be the Math.sqrt() call I added in addRipple to keep the rings visible as they expand instead of fading out quickly - if you remove the two calls there you get a pretty realistic looking damped ripple, but it's barely visible on my screen. Probably with enough fooling around you could get a ripple that is both brief and visible (you'd probably want to try doing that both with and without the sqrt). I'm not going to do that at the moment. Committing as is, with the fixes pointed out by Florian. We'll see what people think.
Comment 6 Owen Taylor 2010-02-08 19:08:42 UTC
Attachment 153121 [details] pushed as caaa543 - Draw a ripple when the hot corner is hit