summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss@sss.chaoslab.ru>2012-06-13 20:55:48 +0300
committerGluzskiy Alexandr <sss@sss.chaoslab.ru>2012-06-13 20:55:48 +0300
commit166017ac72e412afef52e42ac5c31679211c8b55 (patch)
treec95057d9b1c9bf583aed19d118b76049a3c5b9a9
parent7ca9ddf39c89968fbaa81e61598a7d3f8d09d2ac (diff)
use WM_KEYDOWN instead ofr registering hotkey for ctrl+a handling on edit control
-rwxr-xr-xoptions.cpp28
1 files changed, 23 insertions, 5 deletions
diff --git a/options.cpp b/options.cpp
index c91f30f..fb2da74 100755
--- a/options.cpp
+++ b/options.cpp
@@ -736,10 +736,27 @@ static BOOL CALLBACK DlgProcGpgAdvOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LP
HWND hPubKeyEdit = NULL;
+LONG_PTR default_edit_proc = NULL;
+
+static BOOL CALLBACK editctrl_ctrl_a(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
+{
+ LRESULT ret = 0;
+ switch(msg)
+ {
+ case WM_KEYDOWN:
+ if(wParam == 0x41 && GetKeyState(VK_CONTROL)< 0 )
+ SendMessage(hwndDlg, EM_SETSEL, 0, -1);
+ break;
+ default:
+ ret = CallWindowProc((WNDPROC)default_edit_proc, hwndDlg, msg, wParam, lParam);
+ break;
+ }
+ return ret;
+}
static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
{
- HANDLE hContact = user_data[item_num+1];
+ static HANDLE hContact = user_data[item_num+1];
TCHAR *tmp = NULL;
@@ -750,7 +767,9 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP
{
case WM_INITDIALOG:
{
+ default_edit_proc = GetWindowLong(GetDlgItem(hwndDlg, IDC_PUBLIC_KEY_EDIT), GWLP_WNDPROC);
SetWindowPos(hwndDlg, 0, load_key_rect.left, load_key_rect.top, 0, 0, SWP_NOSIZE|SWP_SHOWWINDOW);
+ SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_PUBLIC_KEY_EDIT), GWLP_WNDPROC, (LONG_PTR)editctrl_ctrl_a);
HANDLE hcnt = hContact;
if(metaIsProtoMetaContacts(hcnt))
hcnt = metaGetMostOnline(hcnt);
@@ -773,7 +792,7 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP
SetDlgItemText(hwndDlg, IDC_ENABLE_ENCRYPTION, TranslateW(_T("Turn on encryption")));
CheckDlgButton(hwndDlg, IDC_ENABLE_ENCRYPTION, 1);
}
- RegisterHotKey(hwndDlg, 2, MOD_CONTROL | MOD_NOREPEAT, 0x41);
+// RegisterHotKey(hwndDlg, 2, MOD_CONTROL | MOD_NOREPEAT, 0x41);
if(hcnt)
{
tmp = UniGetContactSettingUtf(hcnt, szGPGModuleName, "GPGPubKey", _T(""));
@@ -867,7 +886,6 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP
return TRUE;
}
-
case WM_COMMAND:
{
switch (LOWORD(wParam))
@@ -1356,11 +1374,11 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP
DBWriteContactSettingDword(NULL, szGPGModuleName, "LoadKeyWindowY", load_key_rect.top);
}
break;
- case WM_HOTKEY:
+/* case WM_HOTKEY:
{
if(wParam == 2)
PostMessage(GetDlgItem(hwndDlg, IDC_PUBLIC_KEY_EDIT), EM_SETSEL, 0, -1);
- }
+ } */
break;
}