mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-11 21:03:05 +08:00
+ refactoring: usage of undo/redo action stack
This commit is contained in:
parent
ef2b2030b8
commit
aa1c3c7d4c
231
src/Edit.c
231
src/Edit.c
@ -326,7 +326,7 @@ void EditSetNewText(HWND hwnd,char* lpstrText,DWORD cbText)
|
||||
|
||||
SendMessage(hwnd,SCI_CANCEL,0,0);
|
||||
SendMessage(hwnd,SCI_SETUNDOCOLLECTION,0,0);
|
||||
UndoRedoSelectionMap(-1,NULL);
|
||||
UndoRedoActionMap(-1,NULL);
|
||||
SendMessage(hwnd,SCI_CLEARALL,0,0);
|
||||
SendMessage(hwnd,SCI_MARKERDELETEALL,(WPARAM)MARKER_NP3_BOOKMARK,0);
|
||||
SendMessage(hwnd,SCI_SETSCROLLWIDTH, DEFAULT_SCROLL_WIDTH,0);
|
||||
@ -365,7 +365,7 @@ BOOL EditConvertText(HWND hwnd, int encSource, int encDest, BOOL bSetSavePoint)
|
||||
{
|
||||
SendMessage(hwnd,SCI_CANCEL,0,0);
|
||||
SendMessage(hwnd,SCI_SETUNDOCOLLECTION,0,0);
|
||||
UndoRedoSelectionMap(-1,NULL);
|
||||
UndoRedoActionMap(-1,NULL);
|
||||
SendMessage(hwnd,SCI_CLEARALL,0,0);
|
||||
SendMessage(hwnd,SCI_MARKERDELETEALL,(WPARAM)MARKER_NP3_BOOKMARK,0);
|
||||
Encoding_SciSetCodePage(hwnd,encDest);
|
||||
@ -406,7 +406,7 @@ BOOL EditConvertText(HWND hwnd, int encSource, int encDest, BOOL bSetSavePoint)
|
||||
|
||||
SendMessage(hwnd,SCI_CANCEL,0,0);
|
||||
SendMessage(hwnd,SCI_SETUNDOCOLLECTION,0,0);
|
||||
UndoRedoSelectionMap(-1,NULL);
|
||||
UndoRedoActionMap(-1,NULL);
|
||||
SendMessage(hwnd,SCI_CLEARALL,0,0);
|
||||
SendMessage(hwnd,SCI_MARKERDELETEALL,(WPARAM)MARKER_NP3_BOOKMARK,0);
|
||||
Encoding_SciSetCodePage(hwnd,encDest);
|
||||
@ -1256,11 +1256,11 @@ void EditInvertCase(HWND hwnd)
|
||||
|
||||
WideCharToMultiByte(cpEdit,0,pszTextW,cchTextW,pszText,(int)GlobalSize(pszText),NULL,NULL);
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(hwnd,SCI_CLEAR,0,0);
|
||||
SendMessage(hwnd,SCI_ADDTEXT,(WPARAM)(iSelEnd - iSelStart),(LPARAM)pszText);
|
||||
SendMessage(hwnd,SCI_SETSEL,(WPARAM)iAnchorPos,(LPARAM)iCurPos);
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
|
||||
GlobalFree(pszText);
|
||||
@ -1319,11 +1319,11 @@ void EditTitleCase(HWND hwnd)
|
||||
|
||||
WideCharToMultiByte(cpEdit,0,pszTextW,cchTextW,pszText,(int)GlobalSize(pszText),NULL,NULL);
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(hwnd,SCI_CLEAR,0,0);
|
||||
SendMessage(hwnd,SCI_ADDTEXT,(WPARAM)(iSelEnd - iSelStart),(LPARAM)pszText);
|
||||
SendMessage(hwnd,SCI_SETSEL,(WPARAM)iAnchorPos,(LPARAM)iCurPos);
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
|
||||
GlobalFree(pszText);
|
||||
@ -1395,11 +1395,11 @@ void EditSentenceCase(HWND hwnd)
|
||||
|
||||
WideCharToMultiByte(cpEdit,0,pszTextW,cchTextW,pszText,(int)GlobalSize(pszText),NULL,NULL);
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(hwnd,SCI_CLEAR,0,0);
|
||||
SendMessage(hwnd,SCI_ADDTEXT,(WPARAM)(iSelEnd - iSelStart),(LPARAM)pszText);
|
||||
SendMessage(hwnd,SCI_SETSEL,(WPARAM)iAnchorPos,(LPARAM)iCurPos);
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
|
||||
GlobalFree(pszText);
|
||||
@ -1478,11 +1478,11 @@ void EditURLEncode(HWND hwnd)
|
||||
else
|
||||
iCurPos = iAnchorPos + cchEscaped;
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(hwnd,SCI_CLEAR,0,0);
|
||||
SendMessage(hwnd,SCI_ADDTEXT,(WPARAM)cchEscaped,(LPARAM)pszEscaped);
|
||||
SendMessage(hwnd,SCI_SETSEL,(WPARAM)iAnchorPos,(LPARAM)iCurPos);
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
EndUndoAction(token);
|
||||
|
||||
LocalFree(pszText);
|
||||
LocalFree(pszTextW);
|
||||
@ -1563,11 +1563,11 @@ void EditURLDecode(HWND hwnd)
|
||||
else
|
||||
iCurPos = iAnchorPos + cchUnescaped;
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(hwnd,SCI_CLEAR,0,0);
|
||||
SendMessage(hwnd,SCI_ADDTEXT,(WPARAM)cchUnescaped,(LPARAM)pszUnescaped);
|
||||
SendMessage(hwnd,SCI_SETSEL,(WPARAM)iAnchorPos,(LPARAM)iCurPos);
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
EndUndoAction(token);
|
||||
|
||||
LocalFree(pszText);
|
||||
LocalFree(pszTextW);
|
||||
@ -1586,31 +1586,32 @@ void EditURLDecode(HWND hwnd)
|
||||
//
|
||||
void EditEscapeCChars(HWND hwnd) {
|
||||
|
||||
if (SendMessage(hwnd,SCI_GETSELECTIONEND,0,0) - SendMessage(hwnd,SCI_GETSELECTIONSTART,0,0))
|
||||
if (!SciCall_IsSelectionEmpty())
|
||||
{
|
||||
if (!SciCall_IsSelectionRectangle())
|
||||
if (SciCall_IsSelectionRectangle())
|
||||
{
|
||||
EDITFINDREPLACE efr = { "", "", "", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL };
|
||||
efr.hwnd = hwnd;
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\\");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\\\\");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\"");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\\\"");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\'");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\\\'");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
MsgBox(MBWARN, IDS_SELRECT);
|
||||
return;
|
||||
}
|
||||
else
|
||||
MsgBox(MBWARN,IDS_SELRECT);
|
||||
|
||||
EDITFINDREPLACE efr = { "", "", "", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL };
|
||||
efr.hwnd = hwnd;
|
||||
|
||||
int token = BeginUndoAction();
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\\");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\\\\");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\"");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\\\"");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\'");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\\\'");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1621,31 +1622,32 @@ void EditEscapeCChars(HWND hwnd) {
|
||||
//
|
||||
void EditUnescapeCChars(HWND hwnd) {
|
||||
|
||||
if (SendMessage(hwnd,SCI_GETSELECTIONEND,0,0) - SendMessage(hwnd,SCI_GETSELECTIONSTART,0,0))
|
||||
if (!SciCall_IsSelectionEmpty())
|
||||
{
|
||||
if (!SciCall_IsSelectionRectangle())
|
||||
if (SciCall_IsSelectionRectangle())
|
||||
{
|
||||
EDITFINDREPLACE efr = { "", "", "", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL };
|
||||
efr.hwnd = hwnd;
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\\\\");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\\");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\\\"");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\"");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\\\'");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\'");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
MsgBox(MBWARN, IDS_SELRECT);
|
||||
return;
|
||||
}
|
||||
else
|
||||
MsgBox(MBWARN,IDS_SELRECT);
|
||||
|
||||
EDITFINDREPLACE efr = { "", "", "", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL };
|
||||
efr.hwnd = hwnd;
|
||||
|
||||
int token = BeginUndoAction();
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\\\\");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\\");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\\\"");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\"");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\\\'");
|
||||
StringCchCopyA(efr.szReplace,FNDRPL_BUFFER,"\'");
|
||||
EditReplaceAllInSelection(hwnd,&efr,FALSE);
|
||||
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1923,17 +1925,17 @@ void EditTabsToSpaces(HWND hwnd,int nTabWidth,BOOL bOnlyIndentingWS)
|
||||
iCurPos = iSelStart + cchConvM;
|
||||
}
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
SendMessage(hwnd, SCI_SETTARGETRANGE, iSelStart, iSelEnd);
|
||||
SendMessage(hwnd, SCI_REPLACETARGET, (WPARAM)cchConvM, (LPARAM)pszText);
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
|
||||
EndUndoAction(token);
|
||||
|
||||
GlobalFree(pszText);
|
||||
}
|
||||
else
|
||||
@ -2052,16 +2054,15 @@ void EditSpacesToTabs(HWND hwnd,int nTabWidth,BOOL bOnlyIndentingWS)
|
||||
iCurPos = iSelStart + cchConvM;
|
||||
}
|
||||
|
||||
SendMessage(hwnd, SCI_BEGINUNDOACTION, 0, 0);
|
||||
int token = BeginUndoAction();
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
SendMessage(hwnd, SCI_SETTARGETRANGE, iSelStart, iSelEnd);
|
||||
SendMessage(hwnd, SCI_REPLACETARGET, (WPARAM)cchConvM, (LPARAM)pszText);
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd, SCI_ENDUNDOACTION, 0, 0);
|
||||
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
EndUndoAction(token);
|
||||
|
||||
GlobalFree(pszText);
|
||||
}
|
||||
@ -2087,12 +2088,12 @@ void EditMoveUp(HWND hwnd)
|
||||
int iLineCurPos = iCurPos - SciCall_PositionFromLine(iCurLine);
|
||||
int iLineAnchorPos = iAnchorPos - SciCall_PositionFromLine(iAnchorLine);
|
||||
if (iCurLine > 0) {
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(hwnd,SCI_LINETRANSPOSE,0,0);
|
||||
SciCall_SetSel(SciCall_PositionFromLine(iAnchorLine - 1) + iLineAnchorPos,
|
||||
SciCall_PositionFromLine(iCurLine - 1) + iLineCurPos);
|
||||
SendMessage(hwnd,SCI_CHOOSECARETX,0,0);
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
else if (!SciCall_IsSelectionRectangle()) {
|
||||
@ -2120,7 +2121,7 @@ void EditMoveUp(HWND hwnd)
|
||||
--iLineDest;
|
||||
}
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
SendMessage(hwnd, SCI_SETTARGETRANGE, iLineSrcStart, iLineSrcEnd);
|
||||
@ -2147,7 +2148,6 @@ void EditMoveUp(HWND hwnd)
|
||||
}
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd, SCI_ENDUNDOACTION, 0, 0);
|
||||
|
||||
if (iCurPos < iAnchorPos) {
|
||||
iCurPos = SciCall_PositionFromLine(iCurLine - 1);
|
||||
@ -2159,6 +2159,7 @@ void EditMoveUp(HWND hwnd)
|
||||
}
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2182,13 +2183,13 @@ void EditMoveDown(HWND hwnd)
|
||||
int iLineCurPos = iCurPos - SciCall_PositionFromLine(iCurLine);
|
||||
int iLineAnchorPos = iAnchorPos - SciCall_PositionFromLine(iAnchorLine);
|
||||
if (iCurLine < (SciCall_GetLineCount() - 1)) {
|
||||
SendMessage(hwnd, SCI_BEGINUNDOACTION, 0, 0);
|
||||
int token = BeginUndoAction();
|
||||
SciCall_GotoLine(iCurLine + 1);
|
||||
SendMessage(hwnd, SCI_LINETRANSPOSE, 0, 0);
|
||||
SciCall_SetSel(SciCall_PositionFromLine(iAnchorLine + 1) + iLineAnchorPos,
|
||||
SciCall_PositionFromLine(iCurLine + 1) + iLineCurPos);
|
||||
SendMessage(hwnd, SCI_CHOOSECARETX, 0, 0);
|
||||
SendMessage(hwnd, SCI_ENDUNDOACTION, 0, 0);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
else if (!SciCall_IsSelectionRectangle())
|
||||
@ -2235,7 +2236,7 @@ void EditMoveDown(HWND hwnd)
|
||||
iLineSrcEnd = SciCall_PositionFromLine(iLineSrc + 1);
|
||||
iLineDest = min(iCurLine,iAnchorLine);
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
SendMessage(hwnd, SCI_SETTARGETRANGE, iLineSrcStart, iLineSrcEnd);
|
||||
@ -2252,7 +2253,6 @@ void EditMoveDown(HWND hwnd)
|
||||
}
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd, SCI_ENDUNDOACTION, 0, 0);
|
||||
|
||||
LocalFree(pLine);
|
||||
|
||||
@ -2266,6 +2266,7 @@ void EditMoveDown(HWND hwnd)
|
||||
}
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2458,7 +2459,7 @@ void EditModifyLines(HWND hwnd,LPCWSTR pwszPrefix,LPCWSTR pwszAppend)
|
||||
}
|
||||
}
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
|
||||
for (iLine = iLineStart; iLine <= iLineEnd; iLine++)
|
||||
{
|
||||
@ -2502,7 +2503,6 @@ void EditModifyLines(HWND hwnd,LPCWSTR pwszPrefix,LPCWSTR pwszAppend)
|
||||
SendMessage(hwnd, SCI_REPLACESEL, 0, (LPARAM)mszInsert);
|
||||
}
|
||||
}
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
|
||||
// extend selection to start of first line
|
||||
// the above code is not required when last line has been excluded
|
||||
@ -2520,6 +2520,9 @@ void EditModifyLines(HWND hwnd,LPCWSTR pwszPrefix,LPCWSTR pwszAppend)
|
||||
}
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
}
|
||||
|
||||
EndUndoAction(token);
|
||||
|
||||
}
|
||||
else
|
||||
MsgBox(MBWARN,IDS_SELRECT);
|
||||
@ -2535,6 +2538,7 @@ void EditAlignText(HWND hwnd,int nMode)
|
||||
#define BUFSIZE_ALIGN 1024
|
||||
|
||||
BOOL bModified = FALSE;
|
||||
int token = -1;
|
||||
|
||||
int iSelStart = SciCall_GetSelectionStart();
|
||||
int iSelEnd = SciCall_GetSelectionEnd();
|
||||
@ -2595,7 +2599,7 @@ void EditAlignText(HWND hwnd,int nMode)
|
||||
if ((iIndentPos == iEndPos) && (iEndPos > 0)) {
|
||||
|
||||
if (!bModified) {
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
token = BeginUndoAction();
|
||||
bModified = TRUE;
|
||||
}
|
||||
SciCall_SetSel(SciCall_PositionFromLine(iLine), iEndPos);
|
||||
@ -2614,7 +2618,7 @@ void EditAlignText(HWND hwnd,int nMode)
|
||||
int cchLine = (int)SendMessage(hwnd,SCI_GETLINE,(WPARAM)iLine,(LPARAM)tchLineBuf);
|
||||
|
||||
if (!bModified) {
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
token = BeginUndoAction();
|
||||
bModified = TRUE;
|
||||
}
|
||||
|
||||
@ -2759,8 +2763,6 @@ void EditAlignText(HWND hwnd,int nMode)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bModified)
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
}
|
||||
else
|
||||
MsgBox(MBINFO,IDS_BUFFERTOOSMALL);
|
||||
@ -2775,6 +2777,10 @@ void EditAlignText(HWND hwnd,int nMode)
|
||||
iCurPos = SciCall_PositionFromLine(iLineEnd + 1);
|
||||
}
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
|
||||
if (bModified && (token >= 0)) {
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
else
|
||||
MsgBox(MBWARN,IDS_SELRECT);
|
||||
@ -2803,7 +2809,7 @@ void EditEncloseSelection(HWND hwnd,LPCWSTR pwszOpen,LPCWSTR pwszClose)
|
||||
if (!SciCall_IsSelectionRectangle())
|
||||
{
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
|
||||
if (StringCchLenA(mszOpen,COUNTOF(mszOpen))) {
|
||||
SciCall_SetSel(iSelStart, iSelStart);
|
||||
@ -2816,8 +2822,6 @@ void EditEncloseSelection(HWND hwnd,LPCWSTR pwszOpen,LPCWSTR pwszClose)
|
||||
SendMessage(hwnd, SCI_REPLACESEL, 0, (LPARAM)mszClose);
|
||||
}
|
||||
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
|
||||
// Fix selection
|
||||
if (iSelStart == iSelEnd)
|
||||
SciCall_SetSel(iSelStart + StringCchLenA(mszOpen, COUNTOF(mszOpen)),
|
||||
@ -2835,6 +2839,8 @@ void EditEncloseSelection(HWND hwnd,LPCWSTR pwszOpen,LPCWSTR pwszClose)
|
||||
}
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
}
|
||||
|
||||
EndUndoAction(token);
|
||||
}
|
||||
else
|
||||
MsgBox(MBWARN,IDS_SELRECT);
|
||||
@ -2885,7 +2891,7 @@ void EditToggleLineComments(HWND hwnd,LPCWSTR pwszComment,BOOL bInsertAtStart)
|
||||
}
|
||||
}
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
|
||||
for (int iLine = iLineStart; iLine <= iLineEnd; iLine++)
|
||||
{
|
||||
@ -2928,7 +2934,6 @@ void EditToggleLineComments(HWND hwnd,LPCWSTR pwszComment,BOOL bInsertAtStart)
|
||||
}
|
||||
}
|
||||
}
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
|
||||
if (iSelStart != iSelEnd)
|
||||
{
|
||||
@ -2944,6 +2949,7 @@ void EditToggleLineComments(HWND hwnd,LPCWSTR pwszComment,BOOL bInsertAtStart)
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
}
|
||||
|
||||
EndUndoAction(token);
|
||||
}
|
||||
else
|
||||
MsgBox(MBWARN,IDS_SELRECT);
|
||||
@ -2961,6 +2967,7 @@ void EditPadWithSpaces(HWND hwnd,BOOL bSkipEmpty,BOOL bNoUndoGroup)
|
||||
int iLine = 0;
|
||||
BOOL bIsRectangular = FALSE;
|
||||
BOOL bReducedSelection = FALSE;
|
||||
int token = -1;
|
||||
|
||||
int iSelStart = 0;
|
||||
int iSelEnd = 0;
|
||||
@ -3034,7 +3041,7 @@ void EditPadWithSpaces(HWND hwnd,BOOL bSkipEmpty,BOOL bNoUndoGroup)
|
||||
pmszPadStr[size] = '\0';
|
||||
|
||||
if (!bNoUndoGroup)
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
token = BeginUndoAction();
|
||||
|
||||
for (iLine = iLineStart; iLine <= iLineEnd; iLine++) {
|
||||
|
||||
@ -3064,9 +3071,6 @@ void EditPadWithSpaces(HWND hwnd,BOOL bSkipEmpty,BOOL bNoUndoGroup)
|
||||
|
||||
if (pmszPadStr)
|
||||
LocalFree(pmszPadStr);
|
||||
|
||||
if (!bNoUndoGroup)
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
}
|
||||
|
||||
if (!bIsRectangular && (SciCall_LineFromPosition(iSelStart) != SciCall_LineFromPosition(iSelEnd)))
|
||||
@ -3096,6 +3100,9 @@ void EditPadWithSpaces(HWND hwnd,BOOL bSkipEmpty,BOOL bNoUndoGroup)
|
||||
SendMessage(hwnd,SCI_SETRECTANGULARSELECTIONCARET,(WPARAM)iCurPos,0);
|
||||
SendMessage(hwnd,SCI_SETRECTANGULARSELECTIONANCHOR,(WPARAM)iAnchorPos,0);
|
||||
}
|
||||
|
||||
if (!bNoUndoGroup && (token >= 0))
|
||||
EndUndoAction(token);
|
||||
}
|
||||
|
||||
|
||||
@ -3129,7 +3136,7 @@ void EditStripFirstCharacter(HWND hwnd)
|
||||
if (iSelEnd <= SciCall_PositionFromLine(iLineEnd)) { --iLineEnd; }
|
||||
|
||||
g_flagIgnoreNotifyChange = TRUE;
|
||||
SendMessage(hwnd, SCI_BEGINUNDOACTION, 0, 0);
|
||||
int token = BeginUndoAction();
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
int chCnt = 0;
|
||||
@ -3143,12 +3150,13 @@ void EditStripFirstCharacter(HWND hwnd)
|
||||
}
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd, SCI_ENDUNDOACTION, 0, 0);
|
||||
g_flagIgnoreNotifyChange = FALSE;
|
||||
|
||||
if (!bIsSelEmpty) {
|
||||
SciCall_SetSel(iSelStart, (iSelEnd - chCnt));
|
||||
}
|
||||
|
||||
EndUndoAction(token);
|
||||
UpdateUI();
|
||||
}
|
||||
|
||||
@ -3182,8 +3190,8 @@ void EditStripLastCharacter(HWND hwnd)
|
||||
if (iSelStart >= SciCall_GetLineEndPosition(iLineStart)) { ++iLineStart; }
|
||||
if (iSelEnd < SciCall_GetLineEndPosition(iLineEnd)) { --iLineEnd; }
|
||||
|
||||
int token = BeginUndoAction();
|
||||
g_flagIgnoreNotifyChange = TRUE;
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
for (int iLine = iLineStart; iLine <= iLineEnd; ++iLine)
|
||||
@ -3198,8 +3206,8 @@ void EditStripLastCharacter(HWND hwnd)
|
||||
}
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
g_flagIgnoreNotifyChange = FALSE;
|
||||
EndUndoAction(token);
|
||||
}
|
||||
|
||||
|
||||
@ -3233,8 +3241,8 @@ void EditStripTrailingBlanks(HWND hwnd, BOOL bIgnoreSelection)
|
||||
if (iSelEnd < SciCall_GetLineEndPosition(iLineEnd)) { --iLineEnd; }
|
||||
|
||||
|
||||
int token = BeginUndoAction();
|
||||
g_flagIgnoreNotifyChange = TRUE;
|
||||
SendMessage(hwnd, SCI_BEGINUNDOACTION, 0, 0);
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
for (int iLine = iLineStart; iLine <= iLineEnd; ++iLine)
|
||||
@ -3255,8 +3263,8 @@ void EditStripTrailingBlanks(HWND hwnd, BOOL bIgnoreSelection)
|
||||
}
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd, SCI_ENDUNDOACTION, 0, 0);
|
||||
g_flagIgnoreNotifyChange = FALSE;
|
||||
EndUndoAction(token);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
@ -3330,7 +3338,7 @@ void EditCompressSpaces(HWND hwnd)
|
||||
|
||||
if (bModified) {
|
||||
|
||||
SendMessage(hwnd, SCI_BEGINUNDOACTION, 0, 0);
|
||||
int token = BeginUndoAction();
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
if (iSelStart != iSelEnd) {
|
||||
@ -3352,7 +3360,7 @@ void EditCompressSpaces(HWND hwnd)
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd, SCI_ENDUNDOACTION, 0, 0);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
if (pszIn)
|
||||
@ -3389,7 +3397,7 @@ void EditRemoveBlankLines(HWND hwnd,BOOL bMerge)
|
||||
if ((iSelEnd <= SciCall_PositionFromLine(iLineEnd)) && (iLineEnd != SciCall_GetLineCount() - 1)) { --iLineEnd; }
|
||||
|
||||
g_flagIgnoreNotifyChange = TRUE;
|
||||
SendMessage(hwnd, SCI_BEGINUNDOACTION, 0, 0);
|
||||
int token = BeginUndoAction();
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
for (int iLine = iLineStart; iLine <= iLineEnd; )
|
||||
@ -3414,7 +3422,7 @@ void EditRemoveBlankLines(HWND hwnd,BOOL bMerge)
|
||||
}
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd, SCI_ENDUNDOACTION, 0, 0);
|
||||
EndUndoAction(token);
|
||||
g_flagIgnoreNotifyChange = FALSE;
|
||||
|
||||
}
|
||||
@ -3600,16 +3608,15 @@ void EditWrapToColumn(HWND hwnd,int nColumn/*,int nTabWidth*/)
|
||||
iCurPos = iSelStart + cchConvM;
|
||||
}
|
||||
|
||||
SendMessage(hwnd,SCI_BEGINUNDOACTION,0,0);
|
||||
int token = BeginUndoAction();
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
SendMessage(hwnd, SCI_SETTARGETRANGE, iSelStart, iSelEnd);
|
||||
SendMessage(hwnd, SCI_REPLACETARGET, (WPARAM)cchConvM, (LPARAM)pszText);
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd,SCI_ENDUNDOACTION,0,0);
|
||||
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
EndUndoAction(token);
|
||||
|
||||
GlobalFree(pszText);
|
||||
}
|
||||
@ -3713,16 +3720,15 @@ void EditJoinLinesEx(HWND hwnd, BOOL bPreserveParagraphs, BOOL bCRLF2Space)
|
||||
iCurPos = iSelStart + cchJoin;
|
||||
}
|
||||
|
||||
SendMessage(hwnd, SCI_BEGINUNDOACTION, 0, 0);
|
||||
int token = BeginUndoAction();
|
||||
EditEnterTargetTransaction();
|
||||
|
||||
SendMessage(hwnd, SCI_SETTARGETRANGE, iSelStart, iSelEnd);
|
||||
SendMessage(hwnd, SCI_REPLACETARGET, (WPARAM)cchJoin, (LPARAM)pszJoin);
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd, SCI_ENDUNDOACTION, 0, 0);
|
||||
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
EndUndoAction(token);
|
||||
|
||||
}
|
||||
|
||||
@ -3776,6 +3782,7 @@ int CmpLogicalRev(const void *s1, const void *s2) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void EditSortLines(HWND hwnd, int iSortFlags)
|
||||
{
|
||||
BOOL bIsRectangular = FALSE;
|
||||
@ -3871,7 +3878,7 @@ void EditSortLines(HWND hwnd, int iSortFlags)
|
||||
|
||||
iTabWidth = (UINT)SendMessage(hwnd, SCI_GETTABWIDTH, 0, 0);
|
||||
|
||||
SendMessage(hwnd, SCI_BEGINUNDOACTION, 0, 0);
|
||||
int token = BeginUndoAction();
|
||||
|
||||
if (bIsRectangular)
|
||||
EditPadWithSpaces(hwnd, !(iSortFlags & SORT_SHUFFLE), TRUE);
|
||||
@ -4009,7 +4016,6 @@ void EditSortLines(HWND hwnd, int iSortFlags)
|
||||
SendMessage(hwnd, SCI_REPLACETARGET, (WPARAM)-1, (LPARAM)pmszResult);
|
||||
|
||||
EditLeaveTargetTransaction();
|
||||
SendMessage(hwnd, SCI_ENDUNDOACTION, 0, 0);
|
||||
|
||||
LocalFree(pmszResult);
|
||||
|
||||
@ -4022,6 +4028,8 @@ void EditSortLines(HWND hwnd, int iSortFlags)
|
||||
else {
|
||||
SendMessage(hwnd, SCI_SETSEL, (WPARAM)iAnchorPos, (LPARAM)iCurPos);
|
||||
}
|
||||
|
||||
EndUndoAction(token);
|
||||
}
|
||||
|
||||
|
||||
@ -5490,6 +5498,7 @@ static UT_icd ReplPos_icd = { sizeof(ReplPos_t), NULL, NULL, NULL };
|
||||
|
||||
int EditReplaceAllInRange(HWND hwnd, LPCEDITFINDREPLACE lpefr, BOOL bShowInfo, int iStartPos, int iEndPos)
|
||||
{
|
||||
int token = -1;
|
||||
char szFind[FNDRPL_BUFFER];
|
||||
|
||||
if (iStartPos > iEndPos)
|
||||
@ -5545,7 +5554,7 @@ int EditReplaceAllInRange(HWND hwnd, LPCEDITFINDREPLACE lpefr, BOOL bShowInfo, i
|
||||
int iCount = utarray_len(ReplPosUTArray);
|
||||
|
||||
if (iCount > 0)
|
||||
SendMessage(hwnd, SCI_BEGINUNDOACTION, 0, 0);
|
||||
token = BeginUndoAction();
|
||||
|
||||
// === iterate over findings and replace strings ===
|
||||
|
||||
@ -5579,8 +5588,8 @@ int EditReplaceAllInRange(HWND hwnd, LPCEDITFINDREPLACE lpefr, BOOL bShowInfo, i
|
||||
utarray_free(ReplPosUTArray);
|
||||
LocalFree(pszReplace);
|
||||
|
||||
if (iCount > 0)
|
||||
SendMessage(hwnd, SCI_ENDUNDOACTION, 0, 0);
|
||||
if ((iCount > 0) && (token >= 0))
|
||||
EndUndoAction(token);
|
||||
|
||||
if (bShowInfo) {
|
||||
if (iCount > 0)
|
||||
@ -5602,12 +5611,8 @@ BOOL EditReplaceAll(HWND hwnd,LPCEDITFINDREPLACE lpefr,BOOL bShowInfo)
|
||||
int start = 0;
|
||||
int end = SciCall_GetTextLength();
|
||||
|
||||
int token = BeginSelUndoAction();
|
||||
|
||||
int iCount = EditReplaceAllInRange(hwnd, lpefr, bShowInfo, start, end);
|
||||
|
||||
EndSelUndoAction(token);
|
||||
|
||||
return (iCount > 0) ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
@ -5623,15 +5628,11 @@ BOOL EditReplaceAllInSelection(HWND hwnd,LPCEDITFINDREPLACE lpefr,BOOL bShowInfo
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int token = BeginSelUndoAction();
|
||||
|
||||
int start = SciCall_GetSelectionStart();
|
||||
int end = SciCall_GetSelectionEnd();
|
||||
|
||||
int iCount = EditReplaceAllInRange(hwnd, lpefr, bShowInfo, start, end);
|
||||
|
||||
EndSelUndoAction(token);
|
||||
|
||||
if (iCount <= 0)
|
||||
return FALSE;
|
||||
|
||||
|
||||
240
src/Notepad3.c
240
src/Notepad3.c
@ -955,19 +955,21 @@ HWND InitInstance(HINSTANCE hInstance,LPSTR pszCmdLine,int nCmdShow)
|
||||
|
||||
// Check for /c [if no file is specified] -- even if a file is specified
|
||||
/*else */if (flagNewFromClipboard) {
|
||||
if (SendMessage(g_hwndEdit,SCI_CANPASTE,0,0)) {
|
||||
if (SendMessage(g_hwndEdit, SCI_CANPASTE, 0, 0)) {
|
||||
BOOL bAutoIndent2 = bAutoIndent;
|
||||
bAutoIndent = 0;
|
||||
EditJumpTo(g_hwndEdit,-1,0);
|
||||
SendMessage(g_hwndEdit,SCI_BEGINUNDOACTION,0,0);
|
||||
if (SendMessage(g_hwndEdit,SCI_GETLENGTH,0,0) > 0)
|
||||
SendMessage(g_hwndEdit,SCI_NEWLINE,0,0);
|
||||
SendMessage(g_hwndEdit,SCI_PASTE,0,0);
|
||||
SendMessage(g_hwndEdit,SCI_NEWLINE,0,0);
|
||||
SendMessage(g_hwndEdit,SCI_ENDUNDOACTION,0,0);
|
||||
EditJumpTo(g_hwndEdit, -1, 0);
|
||||
SendMessage(g_hwndEdit, SCI_BEGINUNDOACTION, 0, 0);
|
||||
if (SendMessage(g_hwndEdit, SCI_GETLENGTH, 0, 0) > 0) {
|
||||
SendMessage(g_hwndEdit, SCI_NEWLINE, 0, 0);
|
||||
}
|
||||
SendMessage(g_hwndEdit, SCI_PASTE, 0, 0);
|
||||
SendMessage(g_hwndEdit, SCI_NEWLINE, 0, 0);
|
||||
SendMessage(g_hwndEdit, SCI_ENDUNDOACTION, 0, 0);
|
||||
bAutoIndent = bAutoIndent2;
|
||||
if (flagJumpTo)
|
||||
EditJumpTo(g_hwndEdit,iInitialLine,iInitialColumn);
|
||||
if (flagJumpTo) {
|
||||
EditJumpTo(g_hwndEdit, iInitialLine, iInitialColumn);
|
||||
}
|
||||
EditEnsureSelectionVisible(g_hwndEdit);
|
||||
}
|
||||
}
|
||||
@ -3025,7 +3027,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
if (flagPasteBoard)
|
||||
bLastCopyFromMe = TRUE;
|
||||
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
if (!SendMessage(g_hwndEdit, SCI_GETSELECTIONEMPTY, 0, 0))
|
||||
{
|
||||
SendMessage(g_hwndEdit, SCI_CUT, 0, 0);
|
||||
@ -3034,7 +3036,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
SendMessage(g_hwndEdit, SCI_COPYALLOWLINE, 0, 0);
|
||||
SendMessage(g_hwndEdit, SCI_LINEDELETE, 0, 0);
|
||||
}
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
UpdateToolbar();
|
||||
}
|
||||
break;
|
||||
@ -3083,7 +3085,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
int iCurrPos = (int)SendMessage(g_hwndEdit, SCI_GETCURRENTPOS, 0, 0);
|
||||
int iAnchor = iCurrPos;
|
||||
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
|
||||
if (SendMessage(g_hwndEdit,SCI_GETSELECTIONEMPTY,0,0))
|
||||
{
|
||||
@ -3114,7 +3116,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
SendMessage(g_hwndEdit, SCI_SETSEL, iCurrPos + lstrlenA(pClip), iCurrPos);
|
||||
}
|
||||
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
|
||||
LocalFree(pClip);
|
||||
|
||||
@ -3198,20 +3200,12 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
|
||||
case IDM_EDIT_MOVELINEUP:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
EditMoveUp(g_hwndEdit);
|
||||
EndSelUndoAction(token);
|
||||
}
|
||||
EditMoveUp(g_hwndEdit);
|
||||
break;
|
||||
|
||||
|
||||
case IDM_EDIT_MOVELINEDOWN:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
EditMoveDown(g_hwndEdit);
|
||||
EndSelUndoAction(token);
|
||||
}
|
||||
EditMoveDown(g_hwndEdit);
|
||||
break;
|
||||
|
||||
|
||||
@ -3224,10 +3218,10 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (flagPasteBoard)
|
||||
bLastCopyFromMe = TRUE;
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_LINECUT,0,0);
|
||||
UpdateToolbar();
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3242,45 +3236,45 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case IDM_EDIT_DELETELINE:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit, SCI_LINEDELETE, 0, 0);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case IDM_EDIT_DELETELINELEFT:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit, SCI_DELLINELEFT, 0, 0);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case IDM_EDIT_DELETELINERIGHT:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit, SCI_DELLINERIGHT, 0, 0);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case IDM_EDIT_INDENT:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_TAB,0,0);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case IDM_EDIT_UNINDENT:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_BACKTAB,0,0);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3288,9 +3282,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_ENCLOSESELECTION:
|
||||
if (EditEncloseSelectionDlg(hwnd,wchPrefixSelection,wchAppendSelection)) {
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditEncloseSelection(g_hwndEdit,wchPrefixSelection,wchAppendSelection);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3299,9 +3291,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_SELECTIONDUPLICATE:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_SELECTIONDUPLICATE,0,0);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3310,9 +3302,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_PADWITHSPACES:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditPadWithSpaces(g_hwndEdit,FALSE,FALSE);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3321,9 +3311,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_STRIP1STCHAR:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditStripFirstCharacter(g_hwndEdit);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3332,9 +3320,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_STRIPLASTCHAR:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditStripLastCharacter(g_hwndEdit);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3342,10 +3328,8 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case IDM_EDIT_TRIMLINES:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
BeginWaitCursor(NULL);
|
||||
EditStripTrailingBlanks(g_hwndEdit, FALSE);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3354,9 +3338,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_COMPRESSWS:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditCompressSpaces(g_hwndEdit);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3365,9 +3347,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_MERGEBLANKLINES:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditRemoveBlankLines(g_hwndEdit,TRUE);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3376,9 +3356,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_REMOVEBLANKLINES:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditRemoveBlankLines(g_hwndEdit,FALSE);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3388,9 +3366,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (EditModifyLinesDlg(hwnd,wchPrefixLines,wchAppendLines)) {
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditModifyLines(g_hwndEdit,wchPrefixLines,wchAppendLines);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
}
|
||||
@ -3401,9 +3377,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (EditAlignDlg(hwnd,&iAlignMode)) {
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditAlignText(g_hwndEdit,iAlignMode);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
}
|
||||
@ -3414,9 +3388,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (EditSortDlg(hwnd,&iSortOptions)) {
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditSortLines(g_hwndEdit,iSortOptions);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
}
|
||||
@ -3432,9 +3404,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
iWrapCol = max(min(iWrapCol,512),1);
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditWrapToColumn(g_hwndEdit,iWrapCol);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
}
|
||||
@ -3444,12 +3414,12 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_SPLITLINES:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
EditEnterTargetTransaction();
|
||||
SciCall_TargetFromSelection();
|
||||
SendMessage(g_hwndEdit,SCI_LINESSPLIT,0,0);
|
||||
EditLeaveTargetTransaction();
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3458,9 +3428,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_JOINLINES:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditJoinLinesEx(g_hwndEdit, FALSE, TRUE);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3468,9 +3436,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_JOINLN_NOSP:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditJoinLinesEx(g_hwndEdit, FALSE, FALSE);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3478,9 +3444,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_JOINLINES_PARA:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditJoinLinesEx(g_hwndEdit, TRUE, TRUE);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3489,9 +3453,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_CONVERTUPPERCASE:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_UPPERCASE,0,0);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3500,9 +3464,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_CONVERTLOWERCASE:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_LOWERCASE,0,0);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3511,9 +3475,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_INVERTCASE:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditInvertCase(g_hwndEdit);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3522,9 +3484,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_TITLECASE:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditTitleCase(g_hwndEdit);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3533,9 +3493,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_SENTENCECASE:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditSentenceCase(g_hwndEdit);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3544,9 +3502,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_CONVERTTABS:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditTabsToSpaces(g_hwndEdit, iTabWidth, FALSE);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3555,9 +3511,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_CONVERTSPACES:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditSpacesToTabs(g_hwndEdit, iTabWidth, FALSE);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3566,9 +3520,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_CONVERTTABS2:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditTabsToSpaces(g_hwndEdit, iTabWidth, TRUE);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3577,9 +3529,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_EDIT_CONVERTSPACES2:
|
||||
{
|
||||
BeginWaitCursor(NULL);
|
||||
int token = BeginSelUndoAction();
|
||||
EditSpacesToTabs(g_hwndEdit, iTabWidth, TRUE);
|
||||
EndSelUndoAction(token);
|
||||
EndWaitCursor();
|
||||
}
|
||||
break;
|
||||
@ -3604,9 +3554,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
char *p = StrChrA(msz, ',');
|
||||
if (p)
|
||||
*p = 0;
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_REPLACESEL,0,(LPARAM)msz);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -3651,9 +3601,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
UINT uCP = Encoding_SciGetCodePage(g_hwndEdit);
|
||||
WideCharToMultiByteStrg(uCP,tchDateTime,mszBuf);
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_REPLACESEL,0,(LPARAM)mszBuf);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3683,9 +3633,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
UINT uCP = Encoding_SciGetCodePage(g_hwndEdit);
|
||||
WideCharToMultiByteStrg(uCP,pszInsert,mszBuf);
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_REPLACESEL,0,(LPARAM)mszBuf);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3701,9 +3651,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
UINT uCP = Encoding_SciGetCodePage(g_hwndEdit);
|
||||
char mszGuid[40 * 4]; // UTF-8 max of 4 bytes per char
|
||||
if (WideCharToMultiByteStrg(uCP,pwszGuid,mszGuid)) {
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_REPLACESEL,0,(LPARAM)mszGuid);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4690,7 +4640,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case CMD_CTRLENTER:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
int iPos = (int)SendMessage(g_hwndEdit,SCI_GETCURRENTPOS,0,0);
|
||||
int iLine = (int)SendMessage(g_hwndEdit,SCI_LINEFROMPOSITION,(WPARAM)iPos,0);
|
||||
if (iLine <= 0) {
|
||||
@ -4703,7 +4653,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
SendMessage(g_hwndEdit,SCI_GETLINEENDPOSITION,(WPARAM)(iLine - 1),0),0);
|
||||
SendMessage(g_hwndEdit,SCI_NEWLINE,0,0);
|
||||
}
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -4723,12 +4673,12 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
SendMessage(g_hwndEdit, SCI_CLEAR, 0, 0);
|
||||
}
|
||||
else {
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit, SCI_CLEAR, 0, 0);
|
||||
// possible unexpected behavior on Virtual Space Access, so:
|
||||
const int iPos = SciCall_GetCurrentPos();
|
||||
SendMessage(g_hwndEdit, SCI_SETSELECTION, iPos, iPos);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -4738,9 +4688,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
if ((BOOL)SendMessage(g_hwndEdit, SCI_GETSELECTIONEMPTY, 0, 0))
|
||||
SendMessage(g_hwndEdit, SCI_DELETEBACK, 0, 0);
|
||||
else {
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit, SCI_DELETEBACK, 0, 0);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -4764,9 +4714,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
int iIndentPos = (int)SendMessage(g_hwndEdit,SCI_GETLINEINDENTPOSITION,(WPARAM)iLine,0);
|
||||
|
||||
if (iPos != iAnchor) {
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_SETSEL,(WPARAM)iPos,(LPARAM)iPos);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
else {
|
||||
if (iPos == iStartPos)
|
||||
@ -4789,9 +4739,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
int iEndPos = (int)SendMessage(g_hwndEdit,SCI_GETLINEENDPOSITION,(WPARAM)iLine,0);
|
||||
|
||||
if (iPos != iAnchor) {
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit, SCI_SETSEL, (WPARAM)iPos, (LPARAM)iPos);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
else {
|
||||
if (iStartPos != iEndPos)
|
||||
@ -4805,13 +4755,13 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case CMD_CTRLTAB:
|
||||
{
|
||||
int token = ((BOOL)SendMessage(g_hwndEdit, SCI_GETSELECTIONEMPTY, 0, 0)) ? -1 : BeginSelUndoAction();
|
||||
int token = ((BOOL)SendMessage(g_hwndEdit, SCI_GETSELECTIONEMPTY, 0, 0)) ? -1 : BeginUndoAction();
|
||||
SendMessage(g_hwndEdit,SCI_SETTABINDENTS,FALSE,0);
|
||||
SendMessage(g_hwndEdit,SCI_SETUSETABS,TRUE,0);
|
||||
SendMessage(g_hwndEdit,SCI_TAB,0,0);
|
||||
SendMessage(g_hwndEdit,SCI_SETUSETABS,!bTabsAsSpaces,0);
|
||||
SendMessage(g_hwndEdit,SCI_SETTABINDENTS,bTabIndents,0);
|
||||
if (token >= 0) EndSelUndoAction(token);
|
||||
if (token >= 0) EndUndoAction(token);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -5106,56 +5056,32 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
|
||||
case CMD_STRINGIFY:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
EditEncloseSelection(g_hwndEdit,L"'",L"'");
|
||||
EndSelUndoAction(token);
|
||||
}
|
||||
EditEncloseSelection(g_hwndEdit,L"'",L"'");
|
||||
break;
|
||||
|
||||
|
||||
case CMD_STRINGIFY2:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
EditEncloseSelection(g_hwndEdit,L"\"",L"\"");
|
||||
EndSelUndoAction(token);
|
||||
}
|
||||
EditEncloseSelection(g_hwndEdit,L"\"",L"\"");
|
||||
break;
|
||||
|
||||
|
||||
case CMD_EMBRACE:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
EditEncloseSelection(g_hwndEdit,L"(",L")");
|
||||
EndSelUndoAction(token);
|
||||
}
|
||||
EditEncloseSelection(g_hwndEdit,L"(",L")");
|
||||
break;
|
||||
|
||||
|
||||
case CMD_EMBRACE2:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
EditEncloseSelection(g_hwndEdit,L"[",L"]");
|
||||
EndSelUndoAction(token);
|
||||
}
|
||||
EditEncloseSelection(g_hwndEdit,L"[",L"]");
|
||||
break;
|
||||
|
||||
|
||||
case CMD_EMBRACE3:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
EditEncloseSelection(g_hwndEdit,L"{",L"}");
|
||||
EndSelUndoAction(token);
|
||||
}
|
||||
EditEncloseSelection(g_hwndEdit,L"{",L"}");
|
||||
break;
|
||||
|
||||
|
||||
case CMD_EMBRACE4:
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
EditEncloseSelection(g_hwndEdit,L"`",L"`");
|
||||
EndSelUndoAction(token);
|
||||
}
|
||||
EditEncloseSelection(g_hwndEdit,L"`",L"`");
|
||||
break;
|
||||
|
||||
|
||||
@ -5670,10 +5596,10 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
|
||||
// check for ADDUNDOACTION step
|
||||
if (scn->modificationType & SC_MOD_CONTAINER) {
|
||||
if (scn->modificationType & SC_PERFORMED_UNDO) {
|
||||
RestoreSelectionAction(scn->token, UNDO);
|
||||
RestoreAction(scn->token, UNDO);
|
||||
}
|
||||
else if (scn->modificationType & SC_PERFORMED_REDO) {
|
||||
RestoreSelectionAction(scn->token, REDO);
|
||||
RestoreAction(scn->token, REDO);
|
||||
}
|
||||
}
|
||||
else if (scn->modificationType & SC_MOD_CHANGESTYLE) {
|
||||
@ -5802,10 +5728,10 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
|
||||
StringCchCompareINA(tchIns, COUNTOF(tchIns), "</link>", -1) &&
|
||||
StringCchCompareINA(tchIns, COUNTOF(tchIns), "</meta>", -1))
|
||||
{
|
||||
int token = BeginSelUndoAction();
|
||||
int token = BeginUndoAction();
|
||||
SendMessage(g_hwndEdit, SCI_REPLACESEL, 0, (LPARAM)tchIns);
|
||||
SendMessage(g_hwndEdit, SCI_SETSEL, iCurPos, iCurPos);
|
||||
EndSelUndoAction(token);
|
||||
EndUndoAction(token);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -7471,10 +7397,10 @@ void InvalidateSelections()
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// BeginSelUndoAction()
|
||||
// BeginUndoAction()
|
||||
//
|
||||
//
|
||||
int BeginSelUndoAction()
|
||||
int BeginUndoAction()
|
||||
{
|
||||
int token = -1;
|
||||
UndoRedoSelection_t sel = { -1, -1, -1, -1, -1, 0, 0, 0, 0, 0 };
|
||||
@ -7497,7 +7423,7 @@ int BeginSelUndoAction()
|
||||
sel.anchorPos_undo = (int)SendMessage(g_hwndEdit,SCI_GETANCHOR,0,0);
|
||||
sel.currPos_undo = (int)SendMessage(g_hwndEdit,SCI_GETCURRENTPOS,0,0);
|
||||
}
|
||||
token = UndoRedoSelectionMap(-1, &sel);
|
||||
token = UndoRedoActionMap(-1, &sel);
|
||||
if (token >= 0) {
|
||||
SendMessage(g_hwndEdit, SCI_BEGINUNDOACTION, 0, 0);
|
||||
SendMessage(g_hwndEdit, SCI_ADDUNDOACTION, (WPARAM)token, 0);
|
||||
@ -7509,14 +7435,14 @@ int BeginSelUndoAction()
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// EndSelUndoAction()
|
||||
// EndUndoAction()
|
||||
//
|
||||
//
|
||||
void EndSelUndoAction(int token)
|
||||
void EndUndoAction(int token)
|
||||
{
|
||||
if (token >= 0) {
|
||||
UndoRedoSelection_t sel = { -1, -1, -1, -1, -1, 0, 0, 0, 0, 0 };
|
||||
if (UndoRedoSelectionMap(token,&sel) >= 0) {
|
||||
if (UndoRedoActionMap(token,&sel) >= 0) {
|
||||
// mode and type should not have changed
|
||||
if (sel.selMode == SC_SEL_LINES) {
|
||||
sel.anchorPos_redo = (int)SendMessage(g_hwndEdit,SCI_GETSELECTIONSTART,0,0);
|
||||
@ -7535,7 +7461,7 @@ void EndSelUndoAction(int token)
|
||||
sel.currPos_redo = (int)SendMessage(g_hwndEdit,SCI_GETCURRENTPOS,0,0);
|
||||
}
|
||||
}
|
||||
UndoRedoSelectionMap(token,&sel); // set with redo action filled
|
||||
UndoRedoActionMap(token,&sel); // set with redo action filled
|
||||
SendMessage(g_hwndEdit, SCI_ENDUNDOACTION, 0, 0);
|
||||
}
|
||||
}
|
||||
@ -7543,13 +7469,13 @@ void EndSelUndoAction(int token)
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// RestoreSelectionAction()
|
||||
// RestoreAction()
|
||||
//
|
||||
//
|
||||
void RestoreSelectionAction(int token, DoAction doAct)
|
||||
void RestoreAction(int token, DoAction doAct)
|
||||
{
|
||||
UndoRedoSelection_t sel = { -1, -1, -1, -1, -1, 0, 0, 0, 0, 0 };
|
||||
if (UndoRedoSelectionMap(token,&sel) >= 0) {
|
||||
if (UndoRedoActionMap(token,&sel) >= 0) {
|
||||
// we are inside undo/redo transaction, so do delayed PostMessage() instead of SendMessage()
|
||||
int anchorPos = (doAct == UNDO ? sel.anchorPos_undo : sel.anchorPos_redo);
|
||||
int currPos = (doAct == UNDO ? sel.currPos_undo : sel.currPos_redo);
|
||||
@ -7585,7 +7511,7 @@ void RestoreSelectionAction(int token, DoAction doAct)
|
||||
//
|
||||
//
|
||||
|
||||
int UndoRedoSelectionMap(int token, UndoRedoSelection_t* selection)
|
||||
int UndoRedoActionMap(int token, UndoRedoSelection_t* selection)
|
||||
{
|
||||
if (UndoRedoSelectionUTArray == NULL)
|
||||
return -1;
|
||||
@ -8902,7 +8828,7 @@ void CALLBACK WatchTimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime)
|
||||
//
|
||||
void CALLBACK PasteBoardTimer(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime)
|
||||
{
|
||||
if (dwLastCopyTime > 0 && GetTickCount() - dwLastCopyTime > 200) {
|
||||
if ((dwLastCopyTime > 0) && ((GetTickCount() - dwLastCopyTime) > 200)) {
|
||||
|
||||
if (SendMessage(g_hwndEdit,SCI_CANPASTE,0,0)) {
|
||||
|
||||
@ -8910,15 +8836,15 @@ void CALLBACK PasteBoardTimer(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime)
|
||||
bAutoIndent = 0;
|
||||
EditJumpTo(g_hwndEdit,-1,0);
|
||||
SendMessage(g_hwndEdit,SCI_BEGINUNDOACTION,0,0);
|
||||
if (SendMessage(g_hwndEdit,SCI_GETLENGTH,0,0) > 0)
|
||||
SendMessage(g_hwndEdit,SCI_NEWLINE,0,0);
|
||||
if (SendMessage(g_hwndEdit, SCI_GETLENGTH, 0, 0) > 0) {
|
||||
SendMessage(g_hwndEdit, SCI_NEWLINE, 0, 0);
|
||||
}
|
||||
SendMessage(g_hwndEdit,SCI_PASTE,0,0);
|
||||
SendMessage(g_hwndEdit,SCI_NEWLINE,0,0);
|
||||
SendMessage(g_hwndEdit,SCI_ENDUNDOACTION,0,0);
|
||||
EditEnsureSelectionVisible(g_hwndEdit);
|
||||
bAutoIndent = bAutoIndent2;
|
||||
}
|
||||
|
||||
dwLastCopyTime = 0;
|
||||
}
|
||||
|
||||
|
||||
@ -150,10 +150,10 @@ void UpdateUI();
|
||||
|
||||
|
||||
void InvalidateSelections();
|
||||
int BeginSelUndoAction();
|
||||
void EndSelUndoAction(int);
|
||||
void RestoreSelectionAction(int,DoAction);
|
||||
int UndoRedoSelectionMap(int,UndoRedoSelection_t*);
|
||||
int BeginUndoAction();
|
||||
void EndUndoAction(int);
|
||||
void RestoreAction(int,DoAction);
|
||||
int UndoRedoActionMap(int,UndoRedoSelection_t*);
|
||||
void OpenHotSpotURL(int, BOOL);
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user