From 310cdd11d658f232ab9b05a7b39cc9c3d9a00436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Sun, 21 Dec 2014 14:37:38 +0000 Subject: Facebook: Use correct (= server) timestamp for sent messages - used only when "use local time for messages" isn't enabled - also it probably doesn't work for StdMsg (SRMM) plugin git-svn-id: http://svn.miranda-ng.org/main/trunk@11555 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/FacebookRM/src/proto.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'protocols/FacebookRM/src/proto.cpp') diff --git a/protocols/FacebookRM/src/proto.cpp b/protocols/FacebookRM/src/proto.cpp index aacb6f08a7..cb070adb20 100644 --- a/protocols/FacebookRM/src/proto.cpp +++ b/protocols/FacebookRM/src/proto.cpp @@ -70,6 +70,7 @@ PROTO(proto_name, username) HookProtoEvent(ME_GC_BUILDMENU, &FacebookProto::OnGCMenuHook); HookProtoEvent(ME_DB_EVENT_MARKED_READ, &FacebookProto::OnDbEventRead); HookProtoEvent(ME_MSG_WINDOWEVENT, &FacebookProto::OnProcessSrmmEvent); + HookProtoEvent(ME_MSG_PRECREATEEVENT, &FacebookProto::OnPreCreateEvent); db_set_resident(m_szModuleName, "Status"); db_set_resident(m_szModuleName, "IdleTS"); @@ -583,6 +584,22 @@ int FacebookProto::OnProcessSrmmEvent(WPARAM, LPARAM lParam) return 0; } +int FacebookProto::OnPreCreateEvent(WPARAM, LPARAM lParam) +{ + MessageWindowEvent *evt = (MessageWindowEvent *)lParam; + if (strcmp(GetContactProto(evt->hContact), m_szModuleName)) + return 0; + + std::map::iterator it = facy.messages_timestamp.find(evt->seq); + if (it != facy.messages_timestamp.end()) { + // set correct timestamp of this message + evt->dbei->timestamp = it->second; + facy.messages_timestamp.erase(it); + } + + return 1; +} + INT_PTR FacebookProto::CheckNewsfeeds(WPARAM, LPARAM) { if (!isOffline()) { -- cgit v1.2.3