From 1a5dc583b048727752b8f72df676ec408908041f Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 28 Nov 2021 17:34:41 +0300 Subject: user typing notification for Discord group chats --- plugins/Scriver/src/msgs.h | 3 +-- plugins/Scriver/src/msgutils.cpp | 10 +++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'plugins/Scriver/src') diff --git a/plugins/Scriver/src/msgs.h b/plugins/Scriver/src/msgs.h index ee0d355c24..63130cbd56 100644 --- a/plugins/Scriver/src/msgs.h +++ b/plugins/Scriver/src/msgs.h @@ -109,11 +109,10 @@ class CMsgDialog : public CSrmmBaseDialog static INT_PTR CALLBACK FilterWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); - bool m_bIncoming, m_bShowTyping, m_bWindowCascaded; + bool m_bIncoming, m_bWindowCascaded; MEVENT m_hDbEventFirst, m_hDbEventLast, m_hDbUnreadEventFirst; int m_minLogBoxHeight, m_minEditBoxHeight; - int m_nTypeSecs, m_nTypeMode, m_nLastTyping; int m_iShowUnread; WORD m_wStatus; DWORD m_lastMessage; diff --git a/plugins/Scriver/src/msgutils.cpp b/plugins/Scriver/src/msgutils.cpp index 60c89a3801..3f2111f646 100644 --- a/plugins/Scriver/src/msgutils.cpp +++ b/plugins/Scriver/src/msgutils.cpp @@ -154,7 +154,10 @@ void CMsgDialog::NotifyTyping(int mode) // End user check m_nTypeMode = mode; - CallService(MS_PROTO_SELFISTYPING, m_hContact, m_nTypeMode); + if (isChat()) + Chat_DoEventHook(m_si, GC_USER_TYPNOTIFY, 0, 0, m_nTypeMode); + else + CallService(MS_PROTO_SELFISTYPING, m_hContact, m_nTypeMode); } void CMsgDialog::Reattach(HWND hwndContainer) @@ -525,7 +528,8 @@ void CMsgDialog::UpdateStatusBar() else if (m_nTypeSecs) { sbd.hIcon = g_plugin.getIcon(IDI_TYPING); sbd.pszText = szText; - mir_snwprintf(szText, TranslateT("%s is typing a message..."), Clist_GetContactDisplayName(m_hContact)); + mir_snwprintf(szText, TranslateT("%s is typing a message..."), + (m_pUserTyping) ? m_pUserTyping->pszNick : Clist_GetContactDisplayName(m_hContact)); m_nTypeSecs--; } else if (m_lastMessage) { @@ -577,7 +581,7 @@ void CMsgDialog::UpdateTabControl() void CMsgDialog::UserIsTyping(int iState) { - m_nTypeSecs = (iState > 0) ? iState : 0; + setTyping((iState > 0) ? iState : 0); } ///////////////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3