telepathyClient: Delay notification in case it gets acked
The shell should only notify in case no other client handles the message. Empathy will ack the message if focused, so we don't want to step on its toes.
This commit is contained in:
parent
6028628261
commit
11c8405879
@ -358,6 +358,7 @@ ChatSource.prototype = {
|
||||
|
||||
this._notification = new ChatNotification(this);
|
||||
this._notification.setUrgency(MessageTray.Urgency.HIGH);
|
||||
this._notifyTimeoutId = 0;
|
||||
|
||||
// We ack messages when the message box is collapsed if user has
|
||||
// interacted with it before and so read the messages:
|
||||
@ -519,7 +520,22 @@ ChatSource.prototype = {
|
||||
|
||||
message = makeMessageFromTpMessage(message, NotificationDirection.RECEIVED);
|
||||
this._notification.appendMessage(message);
|
||||
this.notify();
|
||||
|
||||
// Wait a bit before notifying for the received message, a handler
|
||||
// could ack it in the meantime.
|
||||
if (this._notifyTimeoutId != 0)
|
||||
Mainloop.source_remove(this._notifyTimeoutId);
|
||||
this._notifyTimeoutId = Mainloop.timeout_add(500,
|
||||
Lang.bind(this, this._notifyTimeout));
|
||||
},
|
||||
|
||||
_notifyTimeout: function() {
|
||||
if (this._pendingMessages.length != 0)
|
||||
this.notify();
|
||||
|
||||
this._notifyTimeoutId = 0;
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
// This is called for both messages we send from
|
||||
|
Loading…
Reference in New Issue
Block a user