summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/AddContactPlus/src/addcontact.cpp1
-rw-r--r--plugins/AddContactPlus/src/addcontactplus.h1
-rw-r--r--plugins/AddContactPlus/src/main.cpp24
3 files changed, 18 insertions, 8 deletions
diff --git a/plugins/AddContactPlus/src/addcontact.cpp b/plugins/AddContactPlus/src/addcontact.cpp
index a2feb5c449..d77ba3a07d 100644
--- a/plugins/AddContactPlus/src/addcontact.cpp
+++ b/plugins/AddContactPlus/src/addcontact.cpp
@@ -409,6 +409,7 @@ INT_PTR CALLBACK AddContactDlgProc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lp
}
case WM_DESTROY:
+ hAddDlg = NULL;
CallService(MS_SKIN2_RELEASEICONBIG, (WPARAM)SendMessage(hdlg, WM_SETICON, ICON_BIG, (LPARAM)NULL), 0);
CallService(MS_SKIN2_RELEASEICON, (WPARAM)SendMessage(hdlg, WM_SETICON, ICON_SMALL, (LPARAM)NULL), 0);
ImageList_Destroy((HIMAGELIST)SendDlgItemMessage(hdlg, IDC_PROTO, CBEM_GETIMAGELIST, 0, 0));
diff --git a/plugins/AddContactPlus/src/addcontactplus.h b/plugins/AddContactPlus/src/addcontactplus.h
index 280a349fce..29da1dfa17 100644
--- a/plugins/AddContactPlus/src/addcontactplus.h
+++ b/plugins/AddContactPlus/src/addcontactplus.h
@@ -53,3 +53,4 @@ with this program; if not, write to the Free Software Foundation, Inc.,
INT_PTR CALLBACK AddContactDlgProc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam);
extern HINSTANCE hInst;
+extern HWND hAddDlg;
diff --git a/plugins/AddContactPlus/src/main.cpp b/plugins/AddContactPlus/src/main.cpp
index c81962fb5e..d4bc5304ad 100644
--- a/plugins/AddContactPlus/src/main.cpp
+++ b/plugins/AddContactPlus/src/main.cpp
@@ -25,6 +25,7 @@ int hLangpack;
static HANDLE hModulesLoaded = 0, hChangedIcons = 0, hAccListChanged = 0,
hMainMenuItem = 0, hToolBarItem = 0, hService = 0;
HANDLE hIconLibItem;
+HWND hAddDlg;
PLUGININFOEX pluginInfo = {
sizeof(PLUGININFOEX),
@@ -55,7 +56,15 @@ extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_ADDCONT
INT_PTR AddContactPlusDialog(WPARAM, LPARAM)
{
- CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_ADDCONTACT), (HWND)NULL, AddContactDlgProc, 0);
+ if(hAddDlg)
+ {
+ SetForegroundWindow(hAddDlg);
+ SetFocus(hAddDlg);
+ }
+ else
+ {
+ hAddDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_ADDCONTACT), NULL, AddContactDlgProc, 0);
+ }
return 0;
}
@@ -78,13 +87,12 @@ static int OnAccListChanged(WPARAM, LPARAM)
{
PROTOACCOUNT** pAccounts;
int iRealAccCount, iAccCount = 0;
- DWORD dwCaps;
ProtoEnumAccounts(&iRealAccCount, &pAccounts);
for (int i = 0; i < iRealAccCount; i++)
{
if (!IsAccountEnabled(pAccounts[i])) continue;
- dwCaps = (DWORD)CallProtoService(pAccounts[i]->szModuleName, PS_GETCAPS, PFLAGNUM_1, 0);
+ DWORD dwCaps = (DWORD)CallProtoService(pAccounts[i]->szModuleName, PS_GETCAPS, PFLAGNUM_1, 0);
if (dwCaps & PF1_BASICSEARCH || dwCaps & PF1_EXTSEARCH || dwCaps & PF1_SEARCHBYEMAIL || dwCaps & PF1_SEARCHBYNAME)
iAccCount++;
}
@@ -133,12 +141,12 @@ static int CreateButton(WPARAM, LPARAM)
static int OnModulesLoaded(WPARAM, LPARAM)
{
SKINICONDESC sid = {0};
- char szFile[MAX_PATH];
- GetModuleFileNameA(hInst, szFile, MAX_PATH);
+ TCHAR szFile[MAX_PATH];
+ GetModuleFileName(hInst, szFile, MAX_PATH);
sid.cbSize = sizeof(SKINICONDESC);
- sid.flags = SIDF_TCHAR;
- sid.pszDefaultFile = szFile;
- sid.ptszSection = _T("AddContact+");
+ sid.flags = SIDF_ALL_TCHAR;
+ sid.ptszDefaultFile = szFile;
+ sid.ptszSection = LPGENT("AddContact+");
sid.iDefaultIndex = -IDI_ADDCONTACT;
sid.ptszDescription = LPGENT("Add Contact");
sid.pszName = ICON_ADD;