telepathyClient: reset badge as soon as the summary notification is shown
That way the user will not see an outdated pending messages count while they are viewing them or chatting with the sender. https://bugzilla.gnome.org/show_bug.cgi?id=659272
This commit is contained in:
parent
f0d0e025dd
commit
efe6d06ddd
@ -502,15 +502,9 @@ const ChatSource = new Lang.Class({
|
|||||||
this._notification.setUrgency(MessageTray.Urgency.HIGH);
|
this._notification.setUrgency(MessageTray.Urgency.HIGH);
|
||||||
this._notifyTimeoutId = 0;
|
this._notifyTimeoutId = 0;
|
||||||
|
|
||||||
// We ack messages when the message box is collapsed if user has
|
// We ack messages when the user expands the new notification or views the summary
|
||||||
// interacted with it before and so read the messages:
|
// notification, in which case the notification is also expanded.
|
||||||
// - user clicked on it the tray
|
this._notification.connect('expanded', Lang.bind(this, this._ackMessages));
|
||||||
// - user expanded the notification by hovering over the toaster notification
|
|
||||||
this._shouldAck = false;
|
|
||||||
|
|
||||||
this.connect('summary-item-clicked', Lang.bind(this, this._summaryItemClicked));
|
|
||||||
this._notification.connect('expanded', Lang.bind(this, this._notificationExpanded));
|
|
||||||
this._notification.connect('collapsed', Lang.bind(this, this._notificationCollapsed));
|
|
||||||
|
|
||||||
this._presence = contact.get_presence_type();
|
this._presence = contact.get_presence_type();
|
||||||
|
|
||||||
@ -774,24 +768,6 @@ const ChatSource = new Lang.Class({
|
|||||||
// 'pending-message-removed' for each one.
|
// 'pending-message-removed' for each one.
|
||||||
this._channel.ack_all_pending_messages_async(Lang.bind(this, function(src, result) {
|
this._channel.ack_all_pending_messages_async(Lang.bind(this, function(src, result) {
|
||||||
this._channel.ack_all_pending_messages_finish(result);}));
|
this._channel.ack_all_pending_messages_finish(result);}));
|
||||||
},
|
|
||||||
|
|
||||||
_summaryItemClicked: function(source, button) {
|
|
||||||
if (button != 1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
this._shouldAck = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
_notificationExpanded: function() {
|
|
||||||
this._shouldAck = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
_notificationCollapsed: function() {
|
|
||||||
if (this._shouldAck)
|
|
||||||
this._ackMessages();
|
|
||||||
|
|
||||||
this._shouldAck = false;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user