diff options
Diffstat (limited to 'protocols')
| -rw-r--r-- | protocols/FacebookRM/src/entities.h | 1 | ||||
| -rw-r--r-- | protocols/FacebookRM/src/json.cpp | 15 | 
2 files changed, 12 insertions, 4 deletions
diff --git a/protocols/FacebookRM/src/entities.h b/protocols/FacebookRM/src/entities.h index f9a8283e36..a82b0843bb 100644 --- a/protocols/FacebookRM/src/entities.h +++ b/protocols/FacebookRM/src/entities.h @@ -91,6 +91,7 @@ struct facebook_chatroom  	std::map<std::string, std::string> participants;
  	std::string message_readers;
 +	std::string message_typers;
  	DWORD last_active;
  };
 diff --git a/protocols/FacebookRM/src/json.cpp b/protocols/FacebookRM/src/json.cpp index 743d2380bd..df58d2d5f3 100644 --- a/protocols/FacebookRM/src/json.cpp +++ b/protocols/FacebookRM/src/json.cpp @@ -639,14 +639,21 @@ int facebook_json_parser::parse_messages(void* data, std::vector< facebook_messa  				participant = chatroom->second.participants.find(from_id);
  				if (participant != chatroom->second.participants.end()) {
  					MCONTACT hChatContact = proto->ChatIDToHContact(tid);
 -					ptrT name(mir_utf8decodeT(participant->second.c_str()));
 +
 +					if (!chatroom->second.message_typers.empty())
 +						chatroom->second.message_typers += ", ";
 +					chatroom->second.message_typers += participant->second.c_str();
 +
 +					ptrT typers(mir_utf8decodeT(chatroom->second.message_typers.c_str()));
  					TCHAR tstr[200];
 -					if (json_as_int(st_) == 1)
 -						mir_sntprintf(tstr, SIZEOF(tstr), TranslateT("%s is typing a message..."), name);
 -					else
 +					if (json_as_int(st_) == 1) {
 +						mir_sntprintf(tstr, SIZEOF(tstr), TranslateT("%s is typing a message..."), typers);
 +					} else {
 +						chatroom->second.message_typers = "";
  						mir_sntprintf(tstr, SIZEOF(tstr), _T(""));
 +					}
  					// TODO: support proper MS_PROTO_CONTACTISTYPING service for chatrooms (when it will be implemented)
  					CallService(MS_MSG_SETSTATUSTEXT, (WPARAM)hChatContact, (LPARAM)tstr);
  | 
