diff --git a/src/Edit.c b/src/Edit.c index 2e68a4745..6382b731f 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -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)) diff --git a/src/Notepad3.c b/src/Notepad3.c index 89ccdc76d..7b14ca90a 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -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;