diff options
author | George Hazan <ghazan@miranda.im> | 2022-03-26 15:41:27 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2022-03-26 15:41:27 +0300 |
commit | 90c87cac6ad51642d1dd9d9a2400450e667e1da7 (patch) | |
tree | 4cd32bab4504fdc183090bc4d4e5433735a61fe2 /src/mir_app | |
parent | 5a0b6ba945cbbf543a5b8c6169fc3b2ee03e740f (diff) |
fixes #3057 (Унифицировать настройку горячих клавиш для отправки сообщений)
Diffstat (limited to 'src/mir_app')
-rw-r--r-- | src/mir_app/src/chat.h | 2 | ||||
-rw-r--r-- | src/mir_app/src/hotkeys.cpp | 2 | ||||
-rw-r--r-- | src/mir_app/src/miranda.h | 2 | ||||
-rw-r--r-- | src/mir_app/src/srmm_base.cpp | 12 | ||||
-rw-r--r-- | src/mir_app/src/srmm_log.cpp | 2 | ||||
-rw-r--r-- | src/mir_app/src/srmm_util.cpp | 24 |
6 files changed, 42 insertions, 2 deletions
diff --git a/src/mir_app/src/chat.h b/src/mir_app/src/chat.h index 5020adcb92..8be9224d3d 100644 --- a/src/mir_app/src/chat.h +++ b/src/mir_app/src/chat.h @@ -47,6 +47,8 @@ extern GlobalLogSettingsBase *g_Settings; extern CMOption<bool> g_bChatTrayInactive, g_bChatPopupInactive;
+extern const char *g_pszHotkeySection;
+
// log.c
void LoadMsgLogBitmaps(void);
void FreeMsgLogBitmaps(void);
diff --git a/src/mir_app/src/hotkeys.cpp b/src/mir_app/src/hotkeys.cpp index 8400697910..da631b75ae 100644 --- a/src/mir_app/src/hotkeys.cpp +++ b/src/mir_app/src/hotkeys.cpp @@ -154,7 +154,7 @@ MIR_APP_DLL(int) Hotkey_Register(const HOTKEYDESC *desc, HPLUGIN pPlugin) p->Enabled = !db_get_b(0, DBMODULENAME "Off", p->pszName, 0);
}
- p->pszService = desc->pszService ? mir_strdup(desc->pszService) : nullptr;
+ p->pszService = mir_strdup(desc->pszService);
p->DefHotkey = desc->DefHotKey & ~HKF_MIRANDA_LOCAL;
p->Hotkey = db_get_w(0, DBMODULENAME, p->pszName, p->DefHotkey);
p->type = p->pszService ?
diff --git a/src/mir_app/src/miranda.h b/src/mir_app/src/miranda.h index e9ae1c1d2c..aadf1a35b6 100644 --- a/src/mir_app/src/miranda.h +++ b/src/mir_app/src/miranda.h @@ -65,6 +65,8 @@ void KillModulePopups(HPLUGIN); /**** srmm.cpp *************************************************************************/
+#define SRMM_MODULE "SRMsg"
+
void KillModuleSrmmIcons(HPLUGIN);
void KillModuleToolbarIcons(HPLUGIN);
diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp index f93d075edc..b470676d1a 100644 --- a/src/mir_app/src/srmm_base.cpp +++ b/src/mir_app/src/srmm_base.cpp @@ -36,6 +36,7 @@ CSrmmBaseDialog::CSrmmBaseDialog(CMPluginBase &pPlugin, int idDialog, SESSION_IN m_message(this, IDC_SRMM_MESSAGE), m_nickList(this, IDC_SRMM_NICKLIST), + m_btnOk(this, IDOK), m_btnFilter(this, IDC_SRMM_FILTER), m_btnHistory(this, IDC_SRMM_HISTORY), m_btnNickList(this, IDC_SRMM_SHOWNICKLIST), @@ -202,6 +203,17 @@ LRESULT CSrmmBaseDialog::WndProc_Message(UINT msg, WPARAM wParam, LPARAM lParam) return 0; } } + + { + MSG tmp = { m_hwnd, msg, wParam, lParam }; + if (Hotkey_Check(&tmp, g_pszHotkeySection) == 100) { + if (!(GetWindowLongPtr(m_message.GetHwnd(), GWL_STYLE) & ES_READONLY)) { + m_btnOk.Click(); + return true; + } + } + } + __fallthrough; case WM_SYSKEYDOWN: diff --git a/src/mir_app/src/srmm_log.cpp b/src/mir_app/src/srmm_log.cpp index fe2770cd4e..bc97e37023 100644 --- a/src/mir_app/src/srmm_log.cpp +++ b/src/mir_app/src/srmm_log.cpp @@ -82,7 +82,7 @@ static bool sttEnableCustomLogs(CMsgDialog *pDlg) CSrmmLogWindow* Srmm_GetLogWindow(CMsgDialog *pDlg) { if (sttEnableCustomLogs(pDlg)) { - CMStringA szViewerName(db_get_sm(pDlg->m_hContact, "SRMsg", "Logger")); + CMStringA szViewerName(db_get_sm(pDlg->m_hContact, SRMM_MODULE, "Logger")); if (szViewerName.IsEmpty()) szViewerName = db_get_sm(0, "SRMM", "Logger", "built-in"); diff --git a/src/mir_app/src/srmm_util.cpp b/src/mir_app/src/srmm_util.cpp index 6281d0c024..7ca37c9eb9 100644 --- a/src/mir_app/src/srmm_util.cpp +++ b/src/mir_app/src/srmm_util.cpp @@ -24,6 +24,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "stdafx.h" #include "chat.h" +const char *g_pszHotkeySection; + ///////////////////////////////////////////////////////////////////////////////////////// MIR_APP_DLL(DWORD) CALLBACK Srmm_LogStreamCallback(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG cb, LONG * pcb) @@ -84,6 +86,28 @@ MIR_APP_DLL(void) Srmm_Broadcast(UINT msg, WPARAM wParam, LPARAM lParam) ///////////////////////////////////////////////////////////////////////////////////////// +MIR_APP_DLL(void) Srmm_CreateHotkey(const char *pszSection, const char *pszDescription) +{ + g_pszHotkeySection = pszSection; + + uint16_t wHotKey = HOTKEYCODE(0, VK_RETURN); + if (db_get_b(0, SRMM_MODULE, "SendOnCtrlEnter")) { + db_unset(0, SRMM_MODULE, "SendOnCtrlEnter"); + wHotKey = HOTKEYCODE(HOTKEYF_CONTROL, VK_RETURN); + } + + if (db_get_b(0, SRMM_MODULE, "SendOnEnter")) + db_unset(0, SRMM_MODULE, "SendOnEnter"); + + if (db_get_b(0, SRMM_MODULE, "SendOnDblEnter")) + db_unset(0, SRMM_MODULE, "SendOnDblEnter"); + + HOTKEYDESC hd = { "tabsrmm_send", pszDescription, pszSection, 0, wHotKey, 0, 100 }; + Hotkey_Register(&hd, g_pChatPlugin); +} + +///////////////////////////////////////////////////////////////////////////////////////// + MIR_APP_DLL(HWND) Srmm_FindWindow(MCONTACT hContact) { return WindowList_Find(g_hWindowList, hContact); |