- remove FindReplaceDlg handle declared as external from compilation unit Edit.c - not really needed here.

(externals (handles / pointers) seemed to be a problem on module init instance time in 64-bit ?)
This commit is contained in:
Rainer Kottenhoff 2017-09-05 18:41:54 +02:00
parent a2f250dd4f
commit c4e31c396e
2 changed files with 39 additions and 31 deletions

View File

@ -51,7 +51,6 @@ extern HWND hwndEdit;
extern HINSTANCE g_hInstance;
//extern LPMALLOC g_lpMalloc;
extern DWORD dwLastIOError;
extern HWND hDlgFindReplace;
extern UINT cpLastFind;
extern BOOL bReplaceInitialized;
@ -5422,16 +5421,6 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
StringCchCopyA(lpefr->szReplaceUTF8,COUNTOF(lpefr->szReplaceUTF8),"");
}
if (bIsFindDlg) {
bCloseDlg = lpefr->bFindClose;
}
else {
if (LOWORD(wParam) == IDOK)
bCloseDlg = FALSE;
else
bCloseDlg = lpefr->bReplaceClose;
}
// Reload MRUs
SendDlgItemMessage(hwnd,IDC_FINDTEXT,CB_RESETCONTENT,0,0);
SendDlgItemMessage(hwnd,IDC_REPLACETEXT,CB_RESETCONTENT,0,0);
@ -5451,10 +5440,19 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
if (!bSwitchedFindReplace)
SendMessage(hwnd,WM_NEXTDLGCTL,(WPARAM)(GetFocus()),1);
if (bIsFindDlg) {
bCloseDlg = lpefr->bFindClose;
}
else {
if (LOWORD(wParam) == IDOK)
bCloseDlg = FALSE;
else
bCloseDlg = lpefr->bReplaceClose;
}
if (bCloseDlg) {
//EndDialog(hwnd,LOWORD(wParam));
DestroyWindow(hwnd);
hDlgFindReplace = NULL;
}
switch (LOWORD(wParam))

View File

@ -713,7 +713,7 @@ int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpCmdLine,int n
while (GetMessage(&msg,NULL,0,0))
{
if (IsWindow(hDlgFindReplace) && (msg.hwnd == hDlgFindReplace || IsChild(hDlgFindReplace,msg.hwnd)))
if (TranslateAccelerator(hDlgFindReplace,hAccFindReplace,&msg) || IsDialogMessage(hDlgFindReplace,&msg))
if (IsDialogMessage(hDlgFindReplace,&msg) || TranslateAccelerator(hDlgFindReplace,hAccFindReplace,&msg))
continue;
if (!TranslateAccelerator(hwnd,hAccMain,&msg)) {
@ -1477,6 +1477,15 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
return MsgNotify(hwnd,wParam,lParam);
//case WM_PARENTNOTIFY:
// if (LOWORD(wParam) & WM_DESTROY) {
// if (IsWindow(hDlgFindReplace) && (hDlgFindReplace == (HWND)lParam)) {
// hDlgFindReplace = NULL;
// }
// }
// break;
case WM_COMMAND:
return MsgCommand(hwnd,wParam,lParam);
@ -3827,8 +3836,26 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
}
break;
case IDM_EDIT_REPLACE:
if (!IsWindow(hDlgFindReplace))
hDlgFindReplace = EditFindReplaceDlg(hwndEdit,&efrData,TRUE);
else {
if (!GetDlgItem(hDlgFindReplace,IDC_REPLACE)) {
SendMessage(hDlgFindReplace,WM_COMMAND,MAKELONG(IDMSG_SWITCHTOREPLACE,1),0);
DestroyWindow(hDlgFindReplace);
hDlgFindReplace = EditFindReplaceDlg(hwndEdit,&efrData,TRUE);
}
else {
SetForegroundWindow(hDlgFindReplace);
PostMessage(hDlgFindReplace,WM_NEXTDLGCTL,(WPARAM)(GetDlgItem(hDlgFindReplace,IDC_FINDTEXT)),1);
}
}
break;
// Main Bookmark Functions
case BME_EDIT_BOOKMARKNEXT:
case BME_EDIT_BOOKMARKNEXT:
{
int iPos = (int)SendMessage( hwndEdit , SCI_GETCURRENTPOS , 0 , 0);
int iLine = (int)SendMessage( hwndEdit , SCI_LINEFROMPOSITION , iPos , 0 );
@ -3983,23 +4010,6 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
break;
case IDM_EDIT_REPLACE:
if (!IsWindow(hDlgFindReplace))
hDlgFindReplace = EditFindReplaceDlg(hwndEdit,&efrData,TRUE);
else {
if (!GetDlgItem(hDlgFindReplace,IDC_REPLACE)) {
SendMessage(hDlgFindReplace,WM_COMMAND,MAKELONG(IDMSG_SWITCHTOREPLACE,1),0);
DestroyWindow(hDlgFindReplace);
hDlgFindReplace = EditFindReplaceDlg(hwndEdit,&efrData,TRUE);
}
else {
SetForegroundWindow(hDlgFindReplace);
PostMessage(hDlgFindReplace,WM_NEXTDLGCTL,(WPARAM)(GetDlgItem(hDlgFindReplace,IDC_FINDTEXT)),1);
}
}
break;
case IDM_EDIT_GOTOLINE:
EditLinenumDlg(hwndEdit);
break;