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 635695 - Hot corner is no longer active after display sleeps.
Hot corner is no longer active after display sleeps.
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
unspecified
Other Linux
: High normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2010-11-24 13:56 UTC by Jonathan Strander
Modified: 2011-01-10 20:24 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
messageTray: use alignment rather than gravity to position the summary (1.86 KB, patch)
2011-01-07 17:13 UTC, Dan Winship
committed Details | Review
ShellGtkEmbed: revert to old actor/window position-syncing code (2.89 KB, patch)
2011-01-07 17:13 UTC, Dan Winship
committed Details | Review

Description Jonathan Strander 2010-11-24 13:56:56 UTC
When the display goes to sleep and is awoken the hot corner is not longer able to be activated by moving the mouse. Clicking Activities, pressing SUPER, or otherwise bringing up the overview are required for it to be activated again.
Comment 1 Owen Taylor 2010-11-24 14:10:06 UTC
Seems like it would have to be a graphics driver bug.
Comment 2 Jonathan Strander 2010-11-24 14:14:57 UTC
Not sure how, but perhaps. Jon reported the same/similar behaviour on IRC.

Using NVIDIA here, not sure what he's on.
Comment 3 William Jon McCann 2010-11-24 16:33:39 UTC
I've seen a few times on i965 here.  Alt+f2 also makes it work again.  Can't reproduce with xset dpms force off though.
Comment 4 William Jon McCann 2010-12-01 06:12:32 UTC
I can reproduce this here on F13 with:
pkill rhythmbox; gnome-screensaver-command --lock; sleep 3; (rhythmbox &); sleep 1; rhythmbox-client --notify

When I use LG to make the hot corner rectangle any larger than 1x1 (even 2x1) I can no longer reproduce the problem.
Comment 5 William Jon McCann 2010-12-01 06:15:25 UTC
Another effect besides not being hot is that that pixel is not responsive to clicks.
Comment 6 Dan Winship 2010-12-01 13:44:03 UTC
try using the inspector? Alt-F2, lg, click the dropper icon, then go to the hot corner and see if there's some non-hotspot actor blocking the hotspot?. You can also use mousewheel-up to dig down the stack (eg, to verify that the hotspot is underneath whatever actor is on top).
Comment 7 Jonathan Strander 2010-12-01 14:25:47 UTC
(In reply to comment #4)
> I can reproduce this here on F13 with:
> pkill rhythmbox; gnome-screensaver-command --lock; sleep 3; (rhythmbox &);
> sleep 1; rhythmbox-client --notify
> 

Can reproduce using this on my end as well.
Comment 8 William Jon McCann 2010-12-01 16:19:37 UTC
(In reply to comment #6)
> try using the inspector? Alt-F2, lg, click the dropper icon, then go to the hot
> corner and see if there's some non-hotspot actor blocking the hotspot?. You can
> also use mousewheel-up to dig down the stack (eg, to verify that the hotspot is
> underneath whatever actor is on top).

No, because as mentioned alt-f2 makes the problem go away.  So instead I tried adding a one sec timeout to get_actor_at_pos(0,0) and didn't see anything unusual unfortunately.
Comment 9 William Jon McCann 2010-12-01 21:56:13 UTC
Ok so it took Owen an impressive 10 seconds to identify this as due to:
63f206613564297867d0294a6e1cce8f5ca25448
Comment 10 Owen Taylor 2010-12-01 22:01:10 UTC
To explain more, when the screen is locked, we hide the shell chrome. So newly appearing status icons never get painted at all. That means that the ShellGtkEmbed code that allocates the GTK+ widget on paint doesn't run and the status icon X window ends up left as 0x0+1+1.

So we need to either unmap that window until we first allocate it, or maybe allocate it preemptively the first time the Clutter actor gets allocated.
Comment 11 Dan Winship 2011-01-07 17:13:18 UTC
Created attachment 177761 [details] [review]
messageTray: use alignment rather than gravity to position the summary

Actors in clutter are supposed to be re-allocated with
Clutter.AllocationFlags.ABSOLUTE_ORIGIN_CHANGED if they move relative
to the screen, even if they don't move relative to their parent.
Currently this does not work correctly for actors inside containers
with non-northwest gravity. This is probably a fixable bug, but
gravity has messed up other things in the past too, so let's just not
use it.

This change ensures that summary trayicons are re-allocated when the
summary animates, and is part of the fix for
Comment 12 Dan Winship 2011-01-07 17:13:23 UTC
Created attachment 177762 [details] [review]
ShellGtkEmbed: revert to old actor/window position-syncing code

Synchronizing the actor and window position on paint resulted in lots
of syncing, and also resulted in the window mistakenly being left at
0,0 if the actor wasn't visible when the window first mapped.

Revert back to the old way of doing it, by tying into
clutter_actor_allocate, which was only failing before because of a bug
elsewhere.
Comment 13 Dan Winship 2011-01-07 17:21:48 UTC
filed http://bugzilla.clutter-project.org/show_bug.cgi?id=2509
Comment 14 Owen Taylor 2011-01-07 21:23:14 UTC
Review of attachment 177761 [details] [review]:

Looks reasonable, works in testing
Comment 15 Owen Taylor 2011-01-07 21:24:31 UTC
Review of attachment 177762 [details] [review]:

Looks like a correct revert
Comment 16 Dan Winship 2011-01-10 20:24:16 UTC
Attachment 177761 [details] pushed as 4c4a703 - messageTray: use alignment rather than gravity to position the summary
Attachment 177762 [details] pushed as 84bac44 - ShellGtkEmbed: revert to old actor/window position-syncing code