[gnome-shell] MessageTray: keep notification focused through update()
- From: Marina Zhurakhinskaya <marinaz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] MessageTray: keep notification focused through update()
- Date: Tue, 22 Mar 2011 22:22:07 +0000 (UTC)
commit 8fdbbe78f4b84bb8bc72df91465641ba6c7c9921
Author: Dan Winship <danw gnome org>
Date: Wed Mar 2 09:48:29 2011 -0500
MessageTray: keep notification focused through update()
If a notification was updated while one of its widgets was focused,
it would lose the grab when that widget was destroyed. Fix that by
moving the focus to a safe place before destroying the old widgets.
https://bugzilla.gnome.org/show_bug.cgi?id=643687
js/ui/messageTray.js | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index a281039..f951801 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -467,17 +467,25 @@ Notification.prototype = {
this._customContent = params.customContent;
+ let oldFocus = global.stage.key_focus;
+
if (this._icon)
this._icon.destroy();
// We always clear the content area if we don't have custom
// content because it might contain the @banner that didn't
// fit in the banner mode.
if (this._scrollArea && (!this._customContent || params.clear)) {
+ if (oldFocus && this._scrollArea.contains(oldFocus))
+ this.actor.grab_key_focus();
+
this._scrollArea.destroy();
this._scrollArea = null;
this._contentArea = null;
}
if (this._actionArea && params.clear) {
+ if (oldFocus && this._actionArea.contains(oldFocus))
+ this.actor.grab_key_focus();
+
this._actionArea.destroy();
this._actionArea = null;
this._buttonBox = null;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]