diff --git a/src/Edit.c b/src/Edit.c index 76161ed4f..84259d094 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -7582,13 +7582,13 @@ int EditAddSearchFlags(int flags, bool bRegEx, bool bWordStart, bool bMatchCase, // void EditMarkAll(LPCWSTR wchFind, int sFlags, DocPos rangeStart, DocPos rangeEnd, bool bMultiSel) { - BeginWaitCursorUID(Flags.bHugeFileLoadState, IDS_MUI_SB_MARK_ALL_OCC); - DocPos iFindLength = 0; char chText[2048] = { L'\0'}; WCHAR wchText[2048] = { L'\0'}; + IgnoreNotifyDocChangedEvent(EVM_Default); + if (StrIsEmpty(wchFind)) { WideCharToMultiByte(Encoding_SciCP, 0, wchFind, -1, chText, COUNTOF(chText), NULL, NULL); @@ -7600,19 +7600,19 @@ void EditMarkAll(LPCWSTR wchFind, int sFlags, DocPos rangeStart, DocPos rangeEnd DocPos iWordStart = SciCall_WordStartPosition(iCurPos, true); DocPos iWordEnd = SciCall_WordEndPosition(iCurPos, true); if (iWordStart == iWordEnd) { - __leave; + goto observe; } iFindLength = (iWordEnd - iWordStart); StringCchCopyNA(chText, COUNTOF(chText), SciCall_GetRangePointer(iWordStart, iFindLength), iFindLength); } else { - __leave; // no pattern, no selection and no word mark chosen + goto observe; // no pattern, no selection and no word mark chosen } } else { // we have a selection if (Sci_IsMultiSelection()) { - __leave; + goto observe; } // get current selection @@ -7622,12 +7622,12 @@ void EditMarkAll(LPCWSTR wchFind, int sFlags, DocPos rangeStart, DocPos rangeEnd // if multiple lines are selected exit if (SciCall_LineFromPosition(iSelStart) != SciCall_LineFromPosition(iSelEnd)) { - __leave; + goto observe; } DocPosU const iSelLen = SciCall_GetSelText(NULL); if (iSelLen >= COUNTOF(chText)) { - __leave; + goto observe; } iFindLength = SciCall_GetSelText(chText); @@ -7639,7 +7639,7 @@ void EditMarkAll(LPCWSTR wchFind, int sFlags, DocPos rangeStart, DocPos rangeEnd const char* delims = (Settings.AccelWordNavigation ? DelimCharsAccel : DelimChars); while ((iSelStart2 <= iSelLen) && chText[iSelStart2]) { if (StrChrIA(delims, chText[iSelStart2])) { - __leave; + goto observe; } ++iSelStart2; } @@ -7692,7 +7692,10 @@ void EditMarkAll(LPCWSTR wchFind, int sFlags, DocPos rangeStart, DocPos rangeEnd } Globals.iMarkOccurrencesCount = count; } - EndWaitCursor(); + +observe: + + ObserveNotifyDocChangedEvent(); }