notificationDaemon: Focus the new window before destroying the notification

Destroying the notification will make the key focus be reset to NULL, which
means that gnome-shell will try to focus the MRU window, thinking the user is
done interacting and wants to go back to whatever they were doing.

Unfortunately, since we focus two windows at the same time, they will have
the same timestamp, meaning that the window that actually gets focused will
be a race as to whoever responds to their WM_TAKE_FOCUS event last.

If we explicitly set the focus beforehand, then gnome-shell will believe it
got key focus taken away from it, and won't try to focus the MRU when the
key focus drops to NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=703265
This commit is contained in:
Jasper St. Pierre 2013-10-07 16:11:18 -04:00
parent 91878dd52c
commit 55edfd2e4a

View File

@ -779,8 +779,8 @@ const Source = new Lang.Class({
}, },
open: function(notification) { open: function(notification) {
this.destroyNonResidentNotifications();
this.openApp(); this.openApp();
this.destroyNonResidentNotifications();
}, },
_lastNotificationRemoved: function() { _lastNotificationRemoved: function() {