[smuxi] Frontend-GNOME: show unseen messages from engine correctly
- From: Mirco M. M. Bauer <mmmbauer src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [smuxi] Frontend-GNOME: show unseen messages from engine correctly
- Date: Thu, 14 May 2015 09:44:53 +0000 (UTC)
commit 780a9026aac1e404984cd87f5d1ff9a06d1f9535
Author: Mirco Bauer <meebey meebey net>
Date: Thu May 14 07:54:15 2015 +0200
Frontend-GNOME: show unseen messages from engine correctly
Since 3f72df0 (protocol 0.13) we do track (push) seen messages and thus we
can now properly show them when reconnecting to the engine.
src/Frontend-GNOME/Views/Chats/ChatView.cs | 22 ++++++++++++++++------
1 files changed, 16 insertions(+), 6 deletions(-)
---
diff --git a/src/Frontend-GNOME/Views/Chats/ChatView.cs b/src/Frontend-GNOME/Views/Chats/ChatView.cs
index 5d6ca20..98e768d 100644
--- a/src/Frontend-GNOME/Views/Chats/ChatView.cs
+++ b/src/Frontend-GNOME/Views/Chats/ChatView.cs
@@ -1,7 +1,7 @@
/*
* Smuxi - Smart MUltipleXed Irc
*
- * Copyright (c) 2005-2014 Mirco Bauer <meebey meebey net>
+ * Copyright (c) 2005-2015 Mirco Bauer <meebey meebey net>
*
* Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
*
@@ -570,11 +570,16 @@ namespace Smuxi.Frontend.Gnome
}
}
- // as we don't track which messages were already seen it would
- // show all chats with message activity after the frontend connect
+ // as we don't track which events have already been seen it would
+ // show all chats with unseen events after the frontend connect
if (!HasHighlight) {
- HasActivity = false;
HasEvent = false;
+ // Smuxi protocol < 0.13 does not support remembering seen
+ // messages thus we mark all message as seen as we can't tell
+ // which ones are new
+ if (Frontend.EngineProtocolVersion < new Version(0, 13)) {
+ HasActivity = false;
+ }
}
// reset tab icon to normal
@@ -590,7 +595,7 @@ namespace Smuxi.Frontend.Gnome
_OutputMessageTextView.UpdateMarkerline();
if (Frontend.EngineProtocolVersion == null ||
- Frontend.EngineProtocolVersion < new Version(0, 12)) {
+ Frontend.EngineProtocolVersion < new Version(0, 13)) {
return;
}
@@ -724,7 +729,7 @@ namespace Smuxi.Frontend.Gnome
protected virtual void OnMessageTextViewMessageAdded(object sender,
MessageTextViewMessageAddedEventArgs e)
{
- if (!IsActive) {
+ if (_IsSynced && !IsActive) {
switch (e.Message.MessageType) {
case MessageType.Normal:
HasActivity = true;
@@ -733,6 +738,11 @@ namespace Smuxi.Frontend.Gnome
HasEvent = true;
break;
}
+ } else if (!IsActive) {
+ if (Frontend.EngineProtocolVersion >= new Version(0, 13) &&
+ e.Message.TimeStamp > SyncedLastSeenMessage) {
+ HasActivity = true;
+ }
}
var buffer = _OutputMessageTextView.Buffer;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]