diff options
author | Tobias Weimer <wishmaster51@googlemail.com> | 2015-06-19 19:49:16 +0000 |
---|---|---|
committer | Tobias Weimer <wishmaster51@googlemail.com> | 2015-06-19 19:49:16 +0000 |
commit | c67f96aa215ed9144c445643780b2419285769a3 (patch) | |
tree | 2724f20339e4a4be8a2be6a0060579e9851c5091 | |
parent | 4c814798c7bc7f6a0f92c21b027b26290622aa2f (diff) |
Winter Speak:
- Fixed message window detection (fixes #943)
git-svn-id: http://svn.miranda-ng.org/main/trunk@14271 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r-- | plugins/WinterSpeak/src/SpeakAnnounce.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/plugins/WinterSpeak/src/SpeakAnnounce.cpp b/plugins/WinterSpeak/src/SpeakAnnounce.cpp index 4a7ca4de9b..d054bae1ff 100644 --- a/plugins/WinterSpeak/src/SpeakAnnounce.cpp +++ b/plugins/WinterSpeak/src/SpeakAnnounce.cpp @@ -145,7 +145,7 @@ void SpeakAnnounce::status(const std::wstring &sentence, MCONTACT user) bool SpeakAnnounce::readMessage(MCONTACT contact)
{
// Check if message window exists
- if (m_db.getEventFlag(AnnounceDatabase::EventFlag_DialogOpen)) {
+ if (m_db.getEventFlag(AnnounceDatabase::EventFlag_DialogOpen) || m_db.getEventFlag(AnnounceDatabase::EventFlag_DialogFocused)) {
// Do not notify if window is already open
MessageWindowInputData mwid;
mwid.cbSize = sizeof(MessageWindowInputData);
@@ -154,7 +154,13 @@ bool SpeakAnnounce::readMessage(MCONTACT contact) MessageWindowData mwd;
mwd.cbSize = sizeof(MessageWindowData);
mwd.hContact = contact;
- return ((CallService(MS_MSG_GETWINDOWDATA, (WPARAM) &mwid, (LPARAM) &mwd)) || ((mwd.hwndWindow != NULL) && (mwd.uState & MSG_WINDOW_STATE_EXISTS)));
+ //returns 0 on success and returns non-zero (1) on error or if no window data exists for that hcontact
+ if (CallService(MS_MSG_GETWINDOWDATA, (WPARAM) &mwid, (LPARAM) &mwd) == 0) {
+ if (m_db.getEventFlag(AnnounceDatabase::EventFlag_DialogOpen))
+ return ((mwd.uState & MSG_WINDOW_STATE_EXISTS) != 0);
+ else if (m_db.getEventFlag(AnnounceDatabase::EventFlag_DialogOpen))
+ return ((mwd.uState & MSG_WINDOW_STATE_FOCUS) != 0);
+ }
}
return true;
}
|