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 685156 - Notifications from message tray prevent panel buttons to trigger properly
Notifications from message tray prevent panel buttons to trigger properly
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: message-tray
3.6.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
3.6.1
Depends on:
Blocks:
 
 
Reported: 2012-09-30 18:27 UTC by Carlos Soriano
Modified: 2012-10-11 12:30 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
messageTray: Reset summary after loosing focus to outside actor (1.40 KB, patch)
2012-10-05 15:28 UTC, Florian Müllner
committed Details | Review

Description Carlos Soriano 2012-09-30 18:27:00 UTC
To reproduce:
Click into some notification of the message tray . Then the pop-up bubble is shown.
Click in some top panel button.
Then you see that the panel button is triggered and one second after, the notification from the message tray is triggered again, instead of close the pop-up bubble and trigger the panel button.

This not happens in gnome-shell 3.4, so it is a regression.
Comment 1 Carlos Soriano 2012-09-30 18:52:12 UTC
And, this only happens in the overview mode.
Comment 2 Florian Müllner 2012-10-05 15:28:23 UTC
Created attachment 225894 [details] [review]
messageTray: Reset summary after loosing focus to outside actor

Currently when the summary boxpointer is ungrabbed automatically
because the keyboard focus was moved outside the message tray
(for instance by selecting the overview search entry or opening
the right-click menu of a dash item), after the popup is hidden
_updateState() will grab focus and show the popup again.
Work around this by unsetting the clicked summary item when loosing
focus to an actor outside the message tray.
Comment 3 drago01 2012-10-07 09:30:50 UTC
Review of attachment 225894 [details] [review]:

Looks good.
Comment 4 Jasper St. Pierre (not reading bugmail) 2012-10-07 14:23:10 UTC
I don't necessarily agree. Why does "_updateState() grab focus and show the popup again"?

(also, s/loosing/losing/g)
Comment 5 Florian Müllner 2012-10-07 17:09:18 UTC
(In reply to comment #4)
> I don't necessarily agree. Why does "_updateState() grab focus and show the
> popup again"?

It is how the tray works - if a summary icon is clicked, we set a couple of properties and call _updateState()[0], which then shows the boxpointer as appropriate[1]. So we need to unset those properties when we are done with the boxpointer - outside the overview this is done when hiding the tray[2] (which we do after dismissing the boxpointer).
(Note that we cannot just unset clickedSummaryItem etc unconditionally, as the ungrab might be a result of clicking a different summary item or clicking with a different button)

[0] http://git.gnome.org/browse/gnome-shell/tree/js/ui/messageTray.js#n1781
[1] http://git.gnome.org/browse/gnome-shell/tree/js/ui/messageTray.js#n2000
[2] http://git.gnome.org/browse/gnome-shell/tree/js/ui/messageTray.js#n1934
Comment 6 Florian Müllner 2012-10-11 12:30:07 UTC
Attachment 225894 [details] pushed as 5bfcc539 - 'messageTray: Reset summary after losing focus to outside actor'