diff --git a/Versions/build.txt b/Versions/build.txt
index d00194588..e9767b95a 100644
--- a/Versions/build.txt
+++ b/Versions/build.txt
@@ -1 +1 @@
-2601
+2602
diff --git a/language/np3_af_za/menu_af_za.rc b/language/np3_af_za/menu_af_za.rc
index babfbe4f5..e570abbd2 100644
--- a/language/np3_af_za/menu_af_za.rc
+++ b/language/np3_af_za/menu_af_za.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Select &Word or Lines\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multi-Select &All Matches\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Boe&kmerke"
diff --git a/language/np3_be_by/menu_be_by.rc b/language/np3_be_by/menu_be_by.rc
index d95fbacfd..316496cad 100644
--- a/language/np3_be_by/menu_be_by.rc
+++ b/language/np3_be_by/menu_be_by.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM " & \tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "& \tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "&"
diff --git a/language/np3_de_de/menu_de_de.rc b/language/np3_de_de/menu_de_de.rc
index b33b11217..d2467ef9e 100644
--- a/language/np3_de_de/menu_de_de.rc
+++ b/language/np3_de_de/menu_de_de.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Selektiere &Wort oder Zeile\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multiselektion &aller Fundstellen\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Neue Undo &Tippsequenz bei Zeilenumbruch", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Neue Undo &Transaktion bei Zeilenumbruch", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Lesezeichen"
diff --git a/language/np3_en_gb/menu_en_gb.rc b/language/np3_en_gb/menu_en_gb.rc
index eab9d2843..61e46f736 100644
--- a/language/np3_en_gb/menu_en_gb.rc
+++ b/language/np3_en_gb/menu_en_gb.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Select &Word or Lines\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multi-Select &All Matches\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Boo&kmarks"
diff --git a/language/np3_en_us/menu_en_us.rc b/language/np3_en_us/menu_en_us.rc
index 1e113d121..c80662357 100644
--- a/language/np3_en_us/menu_en_us.rc
+++ b/language/np3_en_us/menu_en_us.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Select &Word or Lines\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multi-Select &All Matches\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Boo&kmarks"
diff --git a/language/np3_es_es/menu_es_es.rc b/language/np3_es_es/menu_es_es.rc
index c002fdad7..594f43e16 100644
--- a/language/np3_es_es/menu_es_es.rc
+++ b/language/np3_es_es/menu_es_es.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Seleccionar &palabra o lneas\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multi-seleccin &todas coincidencias\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "&Marcadores"
diff --git a/language/np3_fr_fr/menu_fr_fr.rc b/language/np3_fr_fr/menu_fr_fr.rc
index 32d8cfdae..baf7f6aab 100644
--- a/language/np3_fr_fr/menu_fr_fr.rc
+++ b/language/np3_fr_fr/menu_fr_fr.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Slectionner &mot ou lignes\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multi-slection &toutes correspondances\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Sig&nets"
diff --git a/language/np3_hu_hu/menu_hu_hu.rc b/language/np3_hu_hu/menu_hu_hu.rc
index ad4606de0..7e6ef4f22 100644
--- a/language/np3_hu_hu/menu_hu_hu.rc
+++ b/language/np3_hu_hu/menu_hu_hu.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Sz vag&y sorok kijellse\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "sszes egyezs ki&jellse\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Kny&vjelzk"
diff --git a/language/np3_it_it/menu_it_it.rc b/language/np3_it_it/menu_it_it.rc
index 80ba3de1f..838920c0e 100644
--- a/language/np3_it_it/menu_it_it.rc
+++ b/language/np3_it_it/menu_it_it.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Seleziona &Parola o Linea\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multi-Selezione di &tutte le occorrenze\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Boo&kmarks"
diff --git a/language/np3_ja_jp/menu_ja_jp.rc b/language/np3_ja_jp/menu_ja_jp.rc
index 1a74efb8d..13f515c39 100644
--- a/language/np3_ja_jp/menu_ja_jp.rc
+++ b/language/np3_ja_jp/menu_ja_jp.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "PsI(&W)\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "v镶ׂĂɃ}`J[\(&A)\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "ubN}[N()(&K)"
diff --git a/language/np3_ko_kr/menu_ko_kr.rc b/language/np3_ko_kr/menu_ko_kr.rc
index 08ead08c7..d6845734e 100644
--- a/language/np3_ko_kr/menu_ko_kr.rc
+++ b/language/np3_ko_kr/menu_ko_kr.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "ܾ Ǵ (&W)\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM " ġ (&A)\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "å(&K)"
diff --git a/language/np3_nl_nl/menu_nl_nl.rc b/language/np3_nl_nl/menu_nl_nl.rc
index b47eb1620..2ca8e9a51 100644
--- a/language/np3_nl_nl/menu_nl_nl.rc
+++ b/language/np3_nl_nl/menu_nl_nl.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Selectie &woord of lijnen\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multi-selectie alle Matching\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Blad&wijzers"
diff --git a/language/np3_pl_pl/menu_pl_pl.rc b/language/np3_pl_pl/menu_pl_pl.rc
index a62da3b9a..488f98943 100644
--- a/language/np3_pl_pl/menu_pl_pl.rc
+++ b/language/np3_pl_pl/menu_pl_pl.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Zaznacz wyraz lub wiersz\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multiwybr-wszystko pasujce\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Zakadki"
diff --git a/language/np3_pt_br/menu_pt_br.rc b/language/np3_pt_br/menu_pt_br.rc
index 1d59119f9..ef013f4de 100644
--- a/language/np3_pt_br/menu_pt_br.rc
+++ b/language/np3_pt_br/menu_pt_br.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Select &Word or Lines\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multi-Select &All Matches\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Boo&kmarks"
diff --git a/language/np3_ru_ru/menu_ru_ru.rc b/language/np3_ru_ru/menu_ru_ru.rc
index 3713eac88..b90215749 100644
--- a/language/np3_ru_ru/menu_ru_ru.rc
+++ b/language/np3_ru_ru/menu_ru_ru.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM " & \tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "& \tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "&"
diff --git a/language/np3_sk_sk/menu_sk_sk.rc b/language/np3_sk_sk/menu_sk_sk.rc
index c43238d33..62bffab2f 100644
--- a/language/np3_sk_sk/menu_sk_sk.rc
+++ b/language/np3_sk_sk/menu_sk_sk.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Select &Word or Lines\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multi-Select &All Matches\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Boo&kmarks"
diff --git a/language/np3_sv_se/menu_sv_se.rc b/language/np3_sv_se/menu_sv_se.rc
index 7050a0e8d..3fc5d7438 100644
--- a/language/np3_sv_se/menu_sv_se.rc
+++ b/language/np3_sv_se/menu_sv_se.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Select &Word or Lines\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multi-Select &All Matches\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Boo&kmarks"
diff --git a/language/np3_tr_tr/menu_tr_tr.rc b/language/np3_tr_tr/menu_tr_tr.rc
index b2b444255..f8942c0cd 100644
--- a/language/np3_tr_tr/menu_tr_tr.rc
+++ b/language/np3_tr_tr/menu_tr_tr.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "Select &Word or Lines\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "Multi-Select &All Matches\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "Boo&kmarks"
diff --git a/language/np3_zh_cn/menu_zh_cn.rc b/language/np3_zh_cn/menu_zh_cn.rc
index 6e2fe247a..821888b6c 100644
--- a/language/np3_zh_cn/menu_zh_cn.rc
+++ b/language/np3_zh_cn/menu_zh_cn.rc
@@ -270,7 +270,7 @@ BEGIN
MENUITEM "ѡʻ(&W)\tCtrl+Spc", IDM_EDIT_SELECTWORD
MENUITEM "ѡȫƥ(&A)\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES
MENUITEM SEPARATOR
- MENUITEM "Split Undo &Typing Sequence on Line Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
+ MENUITEM "Split Undo &Transaction at Line-Breaks", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK
END
MENUITEM SEPARATOR
POPUP "ǩ(&K)"
diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf
index d25f82f33..dc9850caf 100644
--- a/res/Notepad3.exe.manifest.conf
+++ b/res/Notepad3.exe.manifest.conf
@@ -3,7 +3,7 @@
Notepad3 BETA
diff --git a/src/Notepad3.c b/src/Notepad3.c
index 9b706dbdb..c2f4c97ed 100644
--- a/src/Notepad3.c
+++ b/src/Notepad3.c
@@ -386,12 +386,12 @@ static bool _InUndoRedoTransaction();
static void _SaveRedoSelection(int token);
static int _SaveUndoSelection();
static int _UndoRedoActionMap(int token, UndoRedoSelection_t** selection);
-static void _SplitUndoTransaction();
+static void _SplitUndoTransaction(const int iModType);
// ----------------------------------------------------------------------------
static void _DelayClearZoomCallTip(int delay);
-static void _DelayUndoRedoTypingSequenceSplit(int delay);
+static void _DelaySplitUndoTransaction(int delay, int iModType);
#ifdef _EXTRA_DRAG_N_DROP_HANDLER_
static CLIPFORMAT cfDrpF = CF_HDROP;
@@ -465,26 +465,23 @@ static int msgcmp(void* mqc1, void* mqc2)
static void _MQ_AppendCmd(CmdMessageQueue_t* const pMsgQCmd, int cycles)
{
+ if (!pMsgQCmd) { return; }
+
CmdMessageQueue_t* pmqc = NULL;
DL_SEARCH(MessageQueue, pmqc, pMsgQCmd, msgcmp);
if (!pmqc) { // NOT found
- pmqc = AllocMem(sizeof(CmdMessageQueue_t), HEAP_ZERO_MEMORY);
- pmqc->hwnd = pMsgQCmd->hwnd;
- pmqc->cmd = pMsgQCmd->cmd;
- pmqc->wparam = pMsgQCmd->wparam;
- pmqc->lparam = pMsgQCmd->lparam;
+ pmqc = pMsgQCmd;
pmqc->delay = cycles;
DL_APPEND(MessageQueue, pmqc);
}
-
- if (cycles < 2) {
- pmqc->delay = -1; // execute now (do not use PostMessage() here)
- SendMessage(pMsgQCmd->hwnd, pMsgQCmd->cmd, pMsgQCmd->wparam, pMsgQCmd->lparam);
- }
else {
pmqc->delay = (pmqc->delay + cycles) / 2; // increase delay
}
+ if (pmqc->delay < 2) {
+ pmqc->delay = -1; // execute now (do not use PostMessage() here)
+ SendMessage(pMsgQCmd->hwnd, pMsgQCmd->cmd, pMsgQCmd->wparam, pMsgQCmd->lparam);
+ }
}
// ----------------------------------------------------------------------------
@@ -732,7 +729,7 @@ static void _CleanUpResources(const HWND hwnd, bool bIsInitialized)
DL_FOREACH_SAFE(MessageQueue, pmqc, dummy)
{
DL_DELETE(MessageQueue, pmqc);
- FreeMem(pmqc);
+ //~FreeMem(pmqc); // No AllocMem Anymore
}
if (UndoRedoSelectionUTArray != NULL) {
@@ -3484,7 +3481,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
break;
case IDT_TIMER_UNDO_REDO_SPLIT:
- _SplitUndoTransaction();
+ _SplitUndoTransaction((int)lParam);
break;
@@ -3864,18 +3861,19 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_EDIT_CUT:
{
- if (s_flagPasteBoard)
+ if (s_flagPasteBoard) {
s_bLastCopyFromMe = true;
-
- _BEGIN_UNDO_ACTION_
- if (!SciCall_IsSelectionEmpty())
- {
- SciCall_Cut();
}
- else { // VisualStudio behavior
+ _BEGIN_UNDO_ACTION_
+ if (SciCall_IsSelectionEmpty())
+ {
+ // VisualStudio behavior
SciCall_CopyAllowLine();
SciCall_LineDelete();
}
+ else {
+ SciCall_Cut();
+ }
_END_UNDO_ACTION_
UpdateToolbar();
}
@@ -4028,13 +4026,14 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
_END_UNDO_ACTION_
break;
+
case IDM_EDIT_CUTLINE:
{
if (s_flagPasteBoard) {
s_bLastCopyFromMe = true;
}
_BEGIN_UNDO_ACTION_
- SendMessage(Globals.hwndEdit,SCI_LINECUT,0,0);
+ SciCall_LineCut();
_END_UNDO_ACTION_
UpdateToolbar();
}
@@ -6993,12 +6992,10 @@ inline static LRESULT _MsgNotifyLean(const LPNMHDR pnmh, const SCNotification* c
DWORD const timeout = Settings2.UndoRedoSplitTimeout;
if (timeout != 0UL) {
if (timeout > _MQ_IMMEDIATE) {
- _DelayUndoRedoTypingSequenceSplit(timeout);
+ _DelaySplitUndoTransaction(timeout, iModType);
}
else {
- if (!((iModType & SC_PERFORMED_UNDO) || (iModType & SC_PERFORMED_REDO))) {
- _SplitUndoTransaction();
- }
+ _SplitUndoTransaction(iModType);
}
}
_SetSaveNeededFlag(true);
@@ -7091,20 +7088,18 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
UpdateVisibleHotspotIndicators();
if (scn->linesAdded != 0) {
- if (Settings.SplitUndoTypingSeqOnLnBreak) {
- _SplitUndoTransaction();
+ if (Settings.SplitUndoTypingSeqOnLnBreak && (scn->linesAdded == 1)) {
+ _SplitUndoTransaction(iModType);
}
UpdateMarginWidth();
}
DWORD const timeout = Settings2.UndoRedoSplitTimeout;
if (timeout != 0UL) {
if (timeout > _MQ_IMMEDIATE) {
- _DelayUndoRedoTypingSequenceSplit(timeout);
+ _DelaySplitUndoTransaction(timeout, iModType);
}
else {
- if (!((iModType & SC_PERFORMED_UNDO) || (iModType & SC_PERFORMED_REDO))) {
- _SplitUndoTransaction();
- }
+ _SplitUndoTransaction(iModType);
}
}
_SetSaveNeededFlag(true);
@@ -8051,11 +8046,11 @@ static void _DelayClearZoomCallTip(int delay)
// _DelayClearZoomCallTip()
//
//
-static void _DelayUndoRedoTypingSequenceSplit(int delay)
+static void _DelaySplitUndoTransaction(int delay, int iModType)
{
static CmdMessageQueue_t mqc = MQ_WM_CMD_INIT(IDT_TIMER_UNDO_REDO_SPLIT, 0);
mqc.hwnd = Globals.hwndMain;
- //mqc.lparam = (LPARAM)bForceRedraw;
+ mqc.lparam = (LPARAM)iModType;
_MQ_AppendCmd(&mqc, (UINT)(delay <= 0 ? 0 : _MQ_ms(delay)));
}
@@ -9312,10 +9307,13 @@ static int _UndoRedoActionMap(int token, UndoRedoSelection_t** selection)
// _SplitUndoTransaction()
//
//
-static void _SplitUndoTransaction() {
+static void _SplitUndoTransaction(const int iModType)
+{
if (!_InUndoRedoTransaction()) {
- SciCall_BeginUndoAction();
- SciCall_EndUndoAction();
+ if (!((iModType & SC_PERFORMED_UNDO) || (iModType & SC_PERFORMED_REDO))) {
+ SciCall_BeginUndoAction();
+ SciCall_EndUndoAction();
+ }
}
}
diff --git a/src/SciCall.h b/src/SciCall.h
index 94ce8e361..0823e3af8 100644
--- a/src/SciCall.h
+++ b/src/SciCall.h
@@ -219,6 +219,7 @@ DeclareSciCallR2(FindText, FINDTEXT, DocPos, int, flags, struct Sci_TextToFind*,
// Operations
DeclareSciCallV0(Cut, CUT)
+DeclareSciCallV0(LineCut, LINECUT)
DeclareSciCallV0(Copy, COPY)
DeclareSciCallV0(Paste, PASTE)
DeclareSciCallV0(Clear, CLEAR)
diff --git a/src/VersionEx.h b/src/VersionEx.h
index 49139491c..311e1ce13 100644
--- a/src/VersionEx.h
+++ b/src/VersionEx.h
@@ -7,8 +7,8 @@
#define SAPPNAME "Notepad3"
#define VERSION_MAJOR 5
#define VERSION_MINOR 19
-#define VERSION_REV 827
-#define VERSION_BUILD 2601
+#define VERSION_REV 828
+#define VERSION_BUILD 2602
#define SCINTILLA_VER 420
#define ONIGURUMA_REGEX_VER 6.9.3
#define UCHARDET_VER 2018.09.27