Merge branch 'Dev_Fix4Releases' into Dev_NewFeatures

This commit is contained in:
Rainer Kottenhoff 2018-12-06 18:02:34 +01:00
commit 1ee3bb4ea7
2 changed files with 11 additions and 16 deletions

View File

@ -5018,7 +5018,6 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
static int iSaveMarkOcc = -1;
static bool bSaveOccVisible = false;
static bool bSaveTFBackSlashes = false;
static bool _bRestoreMarkOcc = true;
WCHAR tchBuf[FNDRPL_BUFFER] = { L'\0' };
@ -5040,7 +5039,6 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
iSaveMarkOcc = s_bSwitchedFindReplace ? iSaveMarkOcc : Settings.MarkOccurrences;
bSaveOccVisible = s_bSwitchedFindReplace ? bSaveOccVisible : Settings.MarkOccurrencesMatchVisible;
_bRestoreMarkOcc = sg_pefrData->bMarkOccurences;
//const WORD wTabSpacing = (WORD)SendMessage(sg_pefrData->hwnd, SCI_GETTABWIDTH, 0, 0);; // dialog box units
//SendDlgItemMessage(hwnd, IDC_FINDTEXT, EM_SETTABSTOPS, 1, (LPARAM)&wTabSpacing);
@ -5061,9 +5059,9 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
COMBOBOXINFO infoF = { sizeof(COMBOBOXINFO) };
GetComboBoxInfo(GetDlgItem(hwnd, IDC_FINDTEXT), &infoF);
//SHAutoComplete(infoF.hwndItem, SHACF_DEFAULT);
if (infoF.hwndItem)
if (infoF.hwndItem) {
SHAutoComplete(infoF.hwndItem, SHACF_FILESYS_ONLY | SHACF_AUTOAPPEND_FORCE_OFF | SHACF_AUTOSUGGEST_FORCE_OFF);
}
if (!GetWindowTextLengthW(GetDlgItem(hwnd, IDC_FINDTEXT))) {
SetDlgItemTextMB2W(hwnd, IDC_FINDTEXT, sg_pefrData->szFind);
}
@ -5110,12 +5108,6 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
DialogEnableWindow(hwnd, IDC_DOT_MATCH_ALL, false);
}
// switch off "mark all occ" in case of initial replace dialog on multiline selection
if (GetDlgItem(hwnd, IDC_REPLACE) && !s_bSwitchedFindReplace) {
if (Sci_IsMultiLineSelection()) {
sg_pefrData->bMarkOccurences = false;
}
}
if (sg_pefrData->bMarkOccurences) {
Settings.MarkOccurrences = 0;
Settings.MarkOccurrencesMatchVisible = false;
@ -5199,6 +5191,7 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
//}
SetTimer(hwnd, IDT_TIMER_MRKALL, USER_TIMER_MINIMUM, MQ_ExecuteNext);
_DelayMarkAll(hwnd, 0, s_InitialSearchStart);
}
return true;
@ -5217,7 +5210,6 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
}
}
sg_pefrData->szFind[0] = '\0';
sg_pefrData->bMarkOccurences = _bRestoreMarkOcc;
Settings.MarkOccurrences = iSaveMarkOcc;
Settings.MarkOccurrencesMatchVisible = bSaveOccVisible;
@ -5319,7 +5311,7 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
tchBuf[0] = L'\0';
DocPos const cchSelection = SciCall_GetSelText(NULL);
if (1 < cchSelection) {
if ((1 < cchSelection) && !(GetDlgItem(hwnd, IDC_REPLACE) && Sci_IsMultiLineSelection())) {
lpszSelection = AllocMem(cchSelection, HEAP_ZERO_MEMORY);
SciCall_GetSelText(lpszSelection);
}
@ -5423,7 +5415,12 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
if (s_anyMatch != match) { s_anyMatch = match; }
// we have to set Sci's regex instance to first find (have substitution in place)
DocPos const iStartPos = (DocPos)lParam;
s_fwrdMatch = _FindHasMatch(Globals.hwndEdit, sg_pefrData, iStartPos, false, true);
if (!GetDlgItem(hwnd, IDC_REPLACE) || !Sci_IsMultiLineSelection()) {
s_fwrdMatch = _FindHasMatch(Globals.hwndEdit, sg_pefrData, iStartPos, false, true);
}
else {
s_fwrdMatch = match;
}
sg_pefrData->bStateChanged = false;
InvalidateRect(GetDlgItem(hwnd, IDC_FINDTEXT), NULL, true);
if (match != MATCH) {
@ -5455,7 +5452,6 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
{
iSaveMarkOcc = Settings.MarkOccurrences;
bSaveOccVisible = Settings.MarkOccurrencesMatchVisible;
_bRestoreMarkOcc = true;
Settings.MarkOccurrences = 0;
Settings.MarkOccurrencesMatchVisible = false;
@ -5468,7 +5464,6 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
else { // switched OFF
Settings.MarkOccurrences = iSaveMarkOcc;
Settings.MarkOccurrencesMatchVisible = bSaveOccVisible;
_bRestoreMarkOcc = false;
//DialogEnableWindow(hwnd, IDC_TOGGLE_VISIBILITY, (Settings.MarkOccurrences > 0) && !Settings.MarkOccurrencesMatchVisible);
DialogEnableWindow(hwnd, IDC_TOGGLE_VISIBILITY, false);
if (EditToggleView(Globals.hwndEdit, false)) {

View File

@ -477,7 +477,7 @@ DeclareSciCallR0(IsSelectionEmpty, GETSELECTIONEMPTY, bool)
DeclareSciCallR0(IsSelectionRectangle, SELECTIONISRECTANGLE, bool)
#define Sci_IsSingleLineSelection() (SciCall_LineFromPosition(SciCall_GetSelectionEnd()) == SciCall_LineFromPosition(SciCall_GetSelectionStart()))
#define Sci_IsMultiLineSelection() ((SciCall_LineFromPosition(SciCall_GetSelectionEnd()) - SciCall_LineFromPosition(SciCall_GetSelectionStart())) >= 1)
#define Sci_IsMultiLineSelection() ((SciCall_LineFromPosition(SciCall_GetSelectionEnd()) - SciCall_LineFromPosition(SciCall_GetSelectionStart())) > 1)
#define Sci_IsForwardSelection() (SciCall_GetAnchor() <= SciCall_GetCurrentPos())