From 01e103bf8b5d98093ef41fa3bb20719e774730e1 Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Thu, 22 Feb 2018 18:17:46 +0100 Subject: [PATCH] + fix: 1st part of BeginWaitCursor() cleanup --- src/Edit.c | 38 ++++++++++++++++++++------------------ src/Helpers.h | 7 +++---- src/Notepad3.c | 7 ++++--- src/Notepad3.rc | 7 ++++--- src/SciCall.h | 7 +++++++ src/Version.h | Bin 5241 -> 10692 bytes 6 files changed, 38 insertions(+), 28 deletions(-) diff --git a/src/Edit.c b/src/Edit.c index 0eb096d03..6acf1c06b 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -477,10 +477,7 @@ BOOL EditSetNewEncoding(HWND hwnd,int iNewEncoding,BOOL bNoUI,BOOL bSetSavePoint BOOL doNewEncoding = (!bNoUI) ? (InfoBox(MBYESNO, L"MsgConv1", IDS_ASK_ENCODING) == IDYES) : TRUE; if (doNewEncoding) { - BeginWaitCursor(NULL); - BOOL result = EditConvertText(hwnd,iCurrentEncoding,iNewEncoding,FALSE); - EndWaitCursor(); - return result; + return EditConvertText(hwnd,iCurrentEncoding,iNewEncoding,FALSE); } } } @@ -3680,7 +3677,6 @@ void EditRemoveBlankLines(HWND hwnd,BOOL bMerge) if (iSelStart > SciCall_PositionFromLine(iLineStart)) { ++iLineStart; } if ((iSelEnd <= SciCall_PositionFromLine(iLineEnd)) && (iLineEnd != SciCall_GetLineCount() - 1)) { --iLineEnd; } - IgnoreNotifyChangeEvent(); EditEnterTargetTransaction(); for (DocLn iLine = iLineStart; iLine <= iLineEnd; ) @@ -3705,7 +3701,6 @@ void EditRemoveBlankLines(HWND hwnd,BOOL bMerge) } EditLeaveTargetTransaction(); - ObserveNotifyChangeEvent(); } @@ -5764,8 +5759,6 @@ int EditReplaceAllInRange(HWND hwnd, LPCEDITFINDREPLACE lpefr, BOOL bShowInfo, D DocPos start = iStartPos; DocPos end = iEndPos; - BeginWaitCursor(NULL); - DocPos iPos = EditFindInTarget(hwnd, szFind, slen, (int)(lpefr->fuFlags), &start, &end, FALSE); if ((iPos < -1) && (lpefr->fuFlags & SCFIND_REGEXP)) { @@ -5821,10 +5814,6 @@ int EditReplaceAllInRange(HWND hwnd, LPCEDITFINDREPLACE lpefr, BOOL bShowInfo, D EditLeaveTargetTransaction(); } - ObserveNotifyChangeEvent(); - - EndWaitCursor(); - utarray_clear(ReplPosUTArray); utarray_free(ReplPosUTArray); LocalFree(pszReplace); @@ -5846,8 +5835,10 @@ int EditReplaceAllInRange(HWND hwnd, LPCEDITFINDREPLACE lpefr, BOOL bShowInfo, D // BOOL EditReplaceAll(HWND hwnd, LPCEDITFINDREPLACE lpefr, BOOL bShowInfo) { - DocPos start = 0; - DocPos end = SciCall_GetTextLength(); + const DocPos start = 0; + const DocPos end = SciCall_GetTextLength(); + + BeginWaitCursor(NULL); int token = BeginUndoAction(); @@ -5855,6 +5846,8 @@ BOOL EditReplaceAll(HWND hwnd, LPCEDITFINDREPLACE lpefr, BOOL bShowInfo) EndUndoAction(token); + EndWaitCursor(); + return (iReplacedOccurrences > 0) ? TRUE : FALSE; } @@ -5870,8 +5863,14 @@ BOOL EditReplaceAllInSelection(HWND hwnd, LPCEDITFINDREPLACE lpefr, BOOL bShowIn return FALSE; } - DocPos start = SciCall_GetSelectionStart(); - DocPos end = SciCall_GetSelectionEnd(); + const DocPos start = SciCall_GetSelectionStart(); + const DocPos end = SciCall_GetSelectionEnd(); + bool bWaitCursor = false; + + if ((end - start) > (512 * 512)) { + BeginWaitCursor(NULL); + bWaitCursor = true; + } int token = BeginUndoAction(); @@ -5879,9 +5878,12 @@ BOOL EditReplaceAllInSelection(HWND hwnd, LPCEDITFINDREPLACE lpefr, BOOL bShowIn EndUndoAction(token); - if (iReplacedOccurrences <= 0) + if (bWaitCursor) { + EndWaitCursor(); + } + if (iReplacedOccurrences <= 0) { return FALSE; - + } return TRUE; } diff --git a/src/Helpers.h b/src/Helpers.h index 5a8f836bd..228dd753e 100644 --- a/src/Helpers.h +++ b/src/Helpers.h @@ -78,11 +78,10 @@ __inline BOOL IniSectionSetBool(LPWSTR lpCachedIniSection, LPCWSTR lpName, BOOL return IniSectionSetInt(lpCachedIniSection, lpName, (b ? 1 : 0)); } - //extern HWND g_hwndEdit; -#define BeginWaitCursor(TCH) { SendMessage(g_hwndEdit,SCI_SETCURSOR,(WPARAM)SC_CURSORWAIT,0); StatusSetText(g_hwndStatus,STATUS_HELP,(TCH)); } -#define BeginWaitCursorID(UID) { SendMessage(g_hwndEdit,SCI_SETCURSOR,(WPARAM)SC_CURSORWAIT,0); StatusSetTextID(g_hwndStatus,STATUS_HELP,(UID)); } -#define EndWaitCursor() { POINT pt; SendMessage(g_hwndEdit,SCI_SETCURSOR,(WPARAM)SC_CURSORNORMAL,0); GetCursorPos(&pt); SetCursorPos(pt.x,pt.y); StatusSetSimple(g_hwndStatus,FALSE); UpdateStatusbar(); } +#define BeginWaitCursor(TCH) { SciCall_SetCursor(SC_CURSORWAIT); StatusSetText(g_hwndStatus,STATUS_HELP,(TCH)); IgnoreNotifyChangeEvent(); } +#define BeginWaitCursorID(UID) { SciCall_SetCursor(SC_CURSORWAIT); StatusSetTextID(g_hwndStatus,STATUS_HELP,(UID)); IgnoreNotifyChangeEvent(); } +#define EndWaitCursor() { POINT pt; SciCall_SetCursor(SC_CURSORNORMAL); GetCursorPos(&pt); SetCursorPos(pt.x,pt.y); StatusSetSimple(g_hwndStatus,FALSE); ObserveNotifyChangeEvent(); UpdateStatusbar(); } //#define Is2k() (g_uWinVer >= 0x0500) diff --git a/src/Notepad3.c b/src/Notepad3.c index 472b4c748..75f8f013b 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -2683,6 +2683,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) } } + BeginWaitCursor(NULL); if (EditSetNewEncoding(g_hwndEdit, iNewEncoding, (flagSetEncoding), @@ -2697,10 +2698,10 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) Encoding_HasChanged(CPI_NONE); Encoding_Current(iNewEncoding); } - UpdateToolbar(); - UpdateStatusbar(); } + EndWaitCursor(); + } break; @@ -4613,7 +4614,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) WideCharToMultiByteStrg(cp,wchReplace,efrTS.szReplace); if (!SendMessage(g_hwndEdit, SCI_GETSELECTIONEMPTY, 0, 0)) - EditReplaceAllInSelection(g_hwndEdit,&efrTS,TRUE); + EditReplaceAllInSelection(g_hwndEdit, &efrTS, TRUE); else EditReplaceAll(g_hwndEdit,&efrTS,TRUE); } diff --git a/src/Notepad3.rc b/src/Notepad3.rc index e22b73ef0..aad3f2eda 100644 --- a/src/Notepad3.rc +++ b/src/Notepad3.rc @@ -178,7 +178,10 @@ BEGIN MENUITEM "&Join Lines\tCtrl+J", IDM_EDIT_JOINLINES MENUITEM "&Fuse Lines\tCtrl+Alt+J", IDM_EDIT_JOINLN_NOSP MENUITEM "&Preserve Paragraphs\tCtrl+Shift+J", IDM_EDIT_JOINLINES_PARA - END + MENUITEM SEPARATOR + MENUITEM "Merge &Blank Lines\tAlt+Y", IDM_EDIT_MERGEBLANKLINES + MENUITEM "&Remove Blank Lines\tAlt+R", IDM_EDIT_REMOVEBLANKLINES + END POPUP "&Block" BEGIN MENUITEM "&Indent", IDM_EDIT_INDENT @@ -204,8 +207,6 @@ BEGIN MENUITEM "Strip &Last Character\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "Strip &Trailing Blanks\tAlt+W", IDM_EDIT_TRIMLINES MENUITEM "Compress &Whitespace\tAlt+P", IDM_EDIT_COMPRESSWS - MENUITEM "Merge &Blank Lines\tAlt+Y", IDM_EDIT_MERGEBLANKLINES - MENUITEM "&Remove Blank Lines\tAlt+R", IDM_EDIT_REMOVEBLANKLINES MENUITEM SEPARATOR MENUITEM "&Modify Lines...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "&Align Lines...\tAlt+J", IDM_EDIT_ALIGN diff --git a/src/SciCall.h b/src/SciCall.h index 29be7f646..d991c5265 100644 --- a/src/SciCall.h +++ b/src/SciCall.h @@ -220,6 +220,13 @@ DeclareSciCallV1(EnsureVisible, ENSUREVISIBLE, DocLn, line); DeclareSciCallV2(SetProperty, SETPROPERTY, const char *, key, const char *, value); +//============================================================================= +// +// Cursor +// +DeclareSciCallV1(SetCursor, SETCURSOR, int, flags); + + //============================================================================= // // Undo/Redo Stack diff --git a/src/Version.h b/src/Version.h index efe112a53aa948aaa489b9860a17574163f86d00..98569d4983be0923a2451683def0be89e6b14e91 100644 GIT binary patch literal 10692 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 H@I%6X7=-^t