[gnome-shell] messageTray: Focusing the text entry should force chats to stay open
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] messageTray: Focusing the text entry should force chats to stay open
- Date: Thu, 6 Sep 2012 10:05:57 +0000 (UTC)
commit 5030d59fcc29e59aea7d5e2d3f425ce1ededa56d
Author: Debarshi Ray <debarshir gnome org>
Date: Wed Sep 5 18:59:50 2012 +0200
messageTray: Focusing the text entry should force chats to stay open
https://bugzilla.gnome.org/show_bug.cgi?id=682236
js/ui/components/telepathyClient.js | 8 ++++++++
js/ui/messageTray.js | 5 +++++
2 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/components/telepathyClient.js b/js/ui/components/telepathyClient.js
index a6abeb1..d0137ac 100644
--- a/js/ui/components/telepathyClient.js
+++ b/js/ui/components/telepathyClient.js
@@ -756,6 +756,14 @@ const ChatNotification = new Lang.Class({
this._responseEntry.clutter_text.connect('text-changed', Lang.bind(this, this._onEntryChanged));
this.setActionArea(this._responseEntry);
+ this._responseEntry.clutter_text.connect('key-focus-in', Lang.bind(this, function() {
+ this.focused = true;
+ }));
+ this._responseEntry.clutter_text.connect('key-focus-out', Lang.bind(this, function() {
+ this.focused = false;
+ this.emit('unfocused');
+ }));
+
this._oldMaxScrollAdjustment = 0;
this._createScrollArea();
this._lastGroup = null;
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 42ce76a..614842e 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -318,6 +318,7 @@ const Notification = new Lang.Class({
// 'transient' is a reserved keyword in JS, so we have to use an alternate variable name
this.isTransient = false;
this.expanded = false;
+ this.focused = false;
this.showWhenLocked = false;
this.acknowledged = false;
this._destroyed = false;
@@ -1913,6 +1914,7 @@ const MessageTray = new Lang.Class({
let notificationExpanded = this._notification && this._notification.expanded;
let notificationExpired = this._notificationTimeoutId == 0 &&
!(this._notification && this._notification.urgency == Urgency.CRITICAL) &&
+ !(this._notification && this._notification.focused) &&
!this._pointerInTray &&
!this._locked &&
!(this._pointerInKeyboard && notificationExpanded);
@@ -2125,6 +2127,9 @@ const MessageTray = new Lang.Class({
Lang.bind(this, this._onIdleMonitorWatch));
this._notificationClickedId = this._notification.connect('done-displaying',
Lang.bind(this, this._escapeTray));
+ this._notification.connect('unfocused', Lang.bind(this, function() {
+ this._updateState();
+ }));
this._notificationBin.child = this._notification.actor;
this._notificationWidget.opacity = 0;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]