summaryrefslogtreecommitdiff
path: root/plugins/Scriver/src
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2021-11-28 17:34:41 +0300
committerGeorge Hazan <ghazan@miranda.im>2021-11-28 17:34:51 +0300
commit1a5dc583b048727752b8f72df676ec408908041f (patch)
tree5204a5dbcbe84ed7cff02bff9e6ee32ff8598c3f /plugins/Scriver/src
parent4f961df4a3bb6577a0024e341adb9fed6d965edf (diff)
user typing notification for Discord group chats
Diffstat (limited to 'plugins/Scriver/src')
-rw-r--r--plugins/Scriver/src/msgs.h3
-rw-r--r--plugins/Scriver/src/msgutils.cpp10
2 files changed, 8 insertions, 5 deletions
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);
}
/////////////////////////////////////////////////////////////////////////////////////////