mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-20 21:13:25 +08:00
+ fix: "Compressed View" - minor issues
This commit is contained in:
parent
cff9941df8
commit
d1240fa3fc
41
src/Edit.c
41
src/Edit.c
@ -4889,7 +4889,7 @@ static RegExResult_t __fastcall _FindHasMatch(HWND hwnd, LPCEDITFINDREPLACE lpef
|
||||
else // mark all matches
|
||||
{
|
||||
if (bMarkAll && (iPos >= 0)) {
|
||||
EditClearAllMarks(hwnd, (DocPos)0, iTextLength);
|
||||
EditClearAllOccurrenceMarkers(hwnd, (DocPos)0, iTextLength);
|
||||
EditMarkAll(hwnd, szFind, (int)(lpefr->fuFlags), (DocPos)0, iTextLength, false, false, bMarkAll);
|
||||
}
|
||||
}
|
||||
@ -5032,7 +5032,7 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
|
||||
else {
|
||||
CheckDlgButton(hwnd, IDC_ALL_OCCURRENCES, BST_UNCHECKED);
|
||||
DialogEnableWindow(hwnd, IDC_TOGGLE_VISIBILITY, false);
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
}
|
||||
EnableCmd(GetMenu(g_hwndMain), IDM_VIEW_MARKOCCUR_VISIBLE, bMarkOccurrencesMatchVisible);
|
||||
|
||||
@ -5107,13 +5107,12 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
|
||||
{
|
||||
sg_pefrData->szFind[0] = '\0';
|
||||
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
|
||||
if (bHideNonMatchedLines) {
|
||||
EditApplyLexerStyle(g_hwndEdit, 0, -1);
|
||||
bHideNonMatchedLines = false;
|
||||
SendMessage(hwnd, WM_COMMAND, MAKELONG(IDC_TOGGLE_VISIBILITY, 1), 0);
|
||||
}
|
||||
if (sg_pefrData->bMarkOccurences) {
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
}
|
||||
|
||||
iMarkOccurrences = iSaveMarkOcc;
|
||||
bMarkOccurrencesMatchVisible = bSaveOccVisible;
|
||||
g_bCodeFoldingAvailable = bSaveFoldingAvailable;
|
||||
@ -5316,7 +5315,7 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
|
||||
sg_pefrData->bStateChanged = true;
|
||||
}
|
||||
DialogEnableWindow(hwnd, IDC_TOGGLE_VISIBILITY, false);
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
InvalidateRect(GetDlgItem(hwnd, IDC_FINDTEXT), NULL, true);
|
||||
}
|
||||
EnableCmd(GetMenu(g_hwndMain), IDM_VIEW_MARKOCCUR_ONOFF, (iMarkOccurrences > 0));
|
||||
@ -5334,7 +5333,7 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
|
||||
|
||||
bHideNonMatchedLines = bHideNonMatchedLines ? false : true;
|
||||
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
sg_pefrData->bStateChanged = true; // force
|
||||
|
||||
if (bHideNonMatchedLines) {
|
||||
@ -5902,8 +5901,14 @@ void EditMarkAllOccurrences()
|
||||
|
||||
if (EditIsInTargetTransaction()) { return; } // do not block, next event occurs for sure
|
||||
|
||||
BeginWaitCursor(NULL);
|
||||
IgnoreNotifyChangeEvent();
|
||||
bool bWaitCursor = false;
|
||||
if (iMarkOccurrencesCount > 2000) {
|
||||
BeginWaitCursor(NULL);
|
||||
bWaitCursor = true;
|
||||
}
|
||||
else {
|
||||
IgnoreNotifyChangeEvent();
|
||||
}
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
if (bMarkOccurrencesMatchVisible)
|
||||
@ -5926,9 +5931,13 @@ void EditMarkAllOccurrences()
|
||||
UpdateStatusbar();
|
||||
}
|
||||
EditLeaveTargetTransaction();
|
||||
ObserveNotifyChangeEvent();
|
||||
EndWaitCursor();
|
||||
|
||||
if (bWaitCursor) {
|
||||
EndWaitCursor();
|
||||
}
|
||||
else {
|
||||
ObserveNotifyChangeEvent();
|
||||
}
|
||||
}
|
||||
else {
|
||||
iMarkOccurrencesCount = 0;
|
||||
@ -6233,10 +6242,11 @@ bool EditReplaceAllInSelection(HWND hwnd, LPCEDITFINDREPLACE lpefr, bool bShowIn
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// EditClearAllMarks()
|
||||
// EditClearAllOccurrenceMarkers()
|
||||
//
|
||||
void EditClearAllMarks(HWND hwnd, DocPos iRangeStart, DocPos iRangeEnd)
|
||||
void EditClearAllOccurrenceMarkers(HWND hwnd, DocPos iRangeStart, DocPos iRangeEnd)
|
||||
{
|
||||
IgnoreNotifyChangeEvent();
|
||||
if (iRangeStart < 0) {
|
||||
iRangeStart = 0;
|
||||
}
|
||||
@ -6253,6 +6263,7 @@ void EditClearAllMarks(HWND hwnd, DocPos iRangeStart, DocPos iRangeEnd)
|
||||
for (DocLn iLine = SciCall_LineFromPosition(iRangeStart); iLine <= iEndLine; ++iLine) {
|
||||
SciCall_MarkerDelete(iLine, MARKER_NP3_OCCUR_LINE);
|
||||
}
|
||||
ObserveNotifyChangeEvent();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -97,7 +97,7 @@ bool EditPrint(HWND,LPCWSTR,LPCWSTR);
|
||||
void EditPrintSetup(HWND);
|
||||
void EditPrintInit();
|
||||
void EditMatchBrace(HWND);
|
||||
void EditClearAllMarks(HWND, DocPos, DocPos);
|
||||
void EditClearAllOccurrenceMarkers(HWND, DocPos, DocPos);
|
||||
void EditMarkAll(HWND, char*, int, DocPos, DocPos, bool, bool, bool);
|
||||
void EditUpdateUrlHotspots(HWND, DocPos, DocPos, bool);
|
||||
void EditSetAccelWordNav(HWND,bool);
|
||||
|
||||
@ -1071,7 +1071,7 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
|
||||
// update Scintilla colors
|
||||
case WM_SYSCOLORCHANGE:
|
||||
UpdateLineNumberWidth();
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
MarkAllOccurrences(0);
|
||||
UpdateVisibleUrlHotspot(0);
|
||||
return DefWindowProc(hwnd,umsg,wParam,lParam);
|
||||
@ -1797,7 +1797,7 @@ void MsgThemeChanged(HWND hwnd,WPARAM wParam,LPARAM lParam)
|
||||
UpdateToolbar();
|
||||
UpdateStatusbar();
|
||||
UpdateLineNumberWidth();
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
MarkAllOccurrences(0);
|
||||
EditUpdateUrlHotspots(g_hwndEdit, 0, SciCall_GetTextLength(), bHyperlinkHotspot);
|
||||
EditFinalizeStyling(g_hwndEdit, -1);
|
||||
@ -4231,46 +4231,46 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_VIEW_ACCELWORDNAV:
|
||||
bAccelWordNavigation = (bAccelWordNavigation) ? false : true; // toggle
|
||||
EditSetAccelWordNav(g_hwndEdit,bAccelWordNavigation);
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
MarkAllOccurrences(iUpdateDelayMarkAllCoccurrences);
|
||||
break;
|
||||
|
||||
case IDM_VIEW_MARKOCCUR_ONOFF:
|
||||
iMarkOccurrences = (iMarkOccurrences == 0) ? max(1, IniGetInt(L"Settings", L"MarkOccurrences", 1)) : 0;
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
MarkAllOccurrences(0);
|
||||
break;
|
||||
|
||||
case IDM_VIEW_MARKOCCUR_VISIBLE:
|
||||
bMarkOccurrencesMatchVisible = (bMarkOccurrencesMatchVisible) ? false : true;
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
MarkAllOccurrences(0);
|
||||
break;
|
||||
|
||||
case IDM_VIEW_MARKOCCUR_CASE:
|
||||
bMarkOccurrencesMatchCase = (bMarkOccurrencesMatchCase) ? false : true;
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
MarkAllOccurrences(iUpdateDelayMarkAllCoccurrences);
|
||||
break;
|
||||
|
||||
case IDM_VIEW_MARKOCCUR_WNONE:
|
||||
bMarkOccurrencesMatchWords = false;
|
||||
bMarkOccurrencesCurrentWord = false;
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
MarkAllOccurrences(iUpdateDelayMarkAllCoccurrences);
|
||||
break;
|
||||
|
||||
case IDM_VIEW_MARKOCCUR_WORD:
|
||||
bMarkOccurrencesMatchWords = true;
|
||||
bMarkOccurrencesCurrentWord = false;
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
MarkAllOccurrences(iUpdateDelayMarkAllCoccurrences);
|
||||
break;
|
||||
|
||||
case IDM_VIEW_MARKOCCUR_CURRENT:
|
||||
bMarkOccurrencesMatchWords = false;
|
||||
bMarkOccurrencesCurrentWord = true;
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
MarkAllOccurrences(iUpdateDelayMarkAllCoccurrences);
|
||||
break;
|
||||
|
||||
@ -5460,14 +5460,19 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
|
||||
}
|
||||
|
||||
if (iMarkOccurrences > 0) {
|
||||
// clear marks only, if caret/selection changed
|
||||
// clear marks only, if selection changed
|
||||
if (scn->updated & SC_UPDATE_SELECTION) {
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
MarkAllOccurrences(iUpdateDelayMarkAllCoccurrences);
|
||||
}
|
||||
else {
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
if (!SciCall_IsSelectionEmpty()) {
|
||||
MarkAllOccurrences(iUpdateDelayMarkAllCoccurrences);
|
||||
}
|
||||
}
|
||||
else if (scn->updated & SC_UPDATE_CONTENT) {
|
||||
MarkAllOccurrences(iUpdateDelayMarkAllCoccurrences);
|
||||
}
|
||||
//else {
|
||||
// //MarkAllOccurrences(iUpdateDelayMarkAllCoccurrences);
|
||||
//}
|
||||
}
|
||||
|
||||
if (bHyperlinkHotspot) {
|
||||
@ -5506,7 +5511,7 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
|
||||
}
|
||||
|
||||
if (iMarkOccurrences > 0) {
|
||||
EditClearAllMarks(g_hwndEdit, 0, -1);
|
||||
EditClearAllOccurrenceMarkers(g_hwndEdit, 0, -1);
|
||||
MarkAllOccurrences(iUpdateDelayMarkAllCoccurrences);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user