diff --git a/Versions/build.txt b/Versions/build.txt
index 5ab2c45b3..e2bb11dae 100644
--- a/Versions/build.txt
+++ b/Versions/build.txt
@@ -1 +1 @@
-1067
+1098
diff --git a/language/common_res.h b/language/common_res.h
index 4951f03b6..d2394e869 100644
--- a/language/common_res.h
+++ b/language/common_res.h
@@ -386,7 +386,8 @@
#define IDM_EDIT_SELECTLINE 40312
#define IDM_EDIT_MOVELINEUP 40313
#define IDM_EDIT_MOVELINEDOWN 40314
-#define IDM_EDIT_DUPLICATELINE 40315
+#define IDM_EDIT_DUPLINEORSELECTION 40315
+//#define IDM_EDIT_SELECTIONDUPLICATE 40329
#define IDM_EDIT_LINETRANSPOSE 40316
#define IDM_EDIT_CUTLINE 40317
#define IDM_EDIT_COPYLINE 40318
@@ -400,56 +401,55 @@
#define IDM_EDIT_INDENT 40326
#define IDM_EDIT_UNINDENT 40327
#define IDM_EDIT_ENCLOSESELECTION 40328
-#define IDM_EDIT_SELECTIONDUPLICATE 40329
-#define IDM_EDIT_PADWITHSPACES 40330
-#define IDM_EDIT_STRIP1STCHAR 40331
-#define IDM_EDIT_STRIPLASTCHAR 40332
-#define IDM_EDIT_TRIMLINES 40333
-#define IDM_EDIT_COMPRESS_BLANKS 40334
-#define IDM_EDIT_MERGEBLANKLINES 40335
-#define IDM_EDIT_REMOVEBLANKLINES 40336
-#define IDM_EDIT_MODIFYLINES 40337
-#define IDM_EDIT_SORTLINES 40338
-#define IDM_EDIT_ALIGN 40339
-#define IDM_EDIT_CONVERTUPPERCASE 40340
-#define IDM_EDIT_CONVERTLOWERCASE 40341
-#define IDM_EDIT_INVERTCASE 40342
-#define IDM_EDIT_TITLECASE 40343
-#define IDM_EDIT_SENTENCECASE 40344
-#define IDM_EDIT_CONVERTTABS 40345
-#define IDM_EDIT_CONVERTSPACES 40346
-#define IDM_EDIT_CONVERTTABS2 40347
-#define IDM_EDIT_CONVERTSPACES2 40348
-#define IDM_EDIT_INSERT_TAG 40349
-#define IDM_EDIT_INSERT_ENCODING 40350
-#define IDM_EDIT_INSERT_SHORTDATE 40351
-#define IDM_EDIT_INSERT_LONGDATE 40352
-#define IDM_EDIT_INSERT_FILENAME 40353
-#define IDM_EDIT_INSERT_PATHNAME 40354
-#define IDM_EDIT_LINECOMMENT 40355
-#define IDM_EDIT_STREAMCOMMENT 40356
-#define IDM_EDIT_URLENCODE 40357
-#define IDM_EDIT_URLDECODE 40358
-#define IDM_EDIT_ESCAPECCHARS 40359
-#define IDM_EDIT_UNESCAPECCHARS 40360
-#define IDM_EDIT_CHAR2HEX 40361
-#define IDM_EDIT_HEX2CHAR 40362
-#define IDM_EDIT_FINDMATCHINGBRACE 40363
-#define IDM_EDIT_SELTOMATCHINGBRACE 40364
-#define IDM_EDIT_FIND 40365
-#define IDM_EDIT_SAVEFIND 40366
-#define IDM_EDIT_FINDNEXT 40367
-#define IDM_EDIT_FINDPREV 40368
-#define IDM_EDIT_REPLACE 40369
-#define IDM_EDIT_REPLACENEXT 40370
-#define IDM_EDIT_GOTOLINE 40371
-#define IDM_EDIT_SELTONEXT 40372
-#define IDM_EDIT_SELTOPREV 40373
-#define IDM_EDIT_COMPLETEWORD 40374
-#define IDM_EDIT_JOINLN_NOSP 40375
-#define IDM_EDIT_REMOVEDUPLICATELINES 40376
-#define IDM_EDIT_REMOVEEMPTYLINES 40377
-#define IDM_EDIT_MERGEEMPTYLINES 40378
+#define IDM_EDIT_PADWITHSPACES 40329
+#define IDM_EDIT_STRIP1STCHAR 40330
+#define IDM_EDIT_STRIPLASTCHAR 40331
+#define IDM_EDIT_TRIMLINES 40332
+#define IDM_EDIT_COMPRESS_BLANKS 40333
+#define IDM_EDIT_MERGEBLANKLINES 40334
+#define IDM_EDIT_REMOVEBLANKLINES 40335
+#define IDM_EDIT_MODIFYLINES 40336
+#define IDM_EDIT_SORTLINES 40337
+#define IDM_EDIT_ALIGN 40338
+#define IDM_EDIT_CONVERTUPPERCASE 40339
+#define IDM_EDIT_CONVERTLOWERCASE 40340
+#define IDM_EDIT_INVERTCASE 40341
+#define IDM_EDIT_TITLECASE 40342
+#define IDM_EDIT_SENTENCECASE 40343
+#define IDM_EDIT_CONVERTTABS 40344
+#define IDM_EDIT_CONVERTSPACES 40345
+#define IDM_EDIT_CONVERTTABS2 40346
+#define IDM_EDIT_CONVERTSPACES2 40347
+#define IDM_EDIT_INSERT_TAG 40348
+#define IDM_EDIT_INSERT_ENCODING 40349
+#define IDM_EDIT_INSERT_SHORTDATE 40350
+#define IDM_EDIT_INSERT_LONGDATE 40351
+#define IDM_EDIT_INSERT_FILENAME 40352
+#define IDM_EDIT_INSERT_PATHNAME 40353
+#define IDM_EDIT_LINECOMMENT 40354
+#define IDM_EDIT_STREAMCOMMENT 40355
+#define IDM_EDIT_URLENCODE 40356
+#define IDM_EDIT_URLDECODE 40357
+#define IDM_EDIT_ESCAPECCHARS 40358
+#define IDM_EDIT_UNESCAPECCHARS 40359
+#define IDM_EDIT_CHAR2HEX 40360
+#define IDM_EDIT_HEX2CHAR 40361
+#define IDM_EDIT_FINDMATCHINGBRACE 40362
+#define IDM_EDIT_SELTOMATCHINGBRACE 40363
+#define IDM_EDIT_FIND 40364
+#define IDM_EDIT_SAVEFIND 40365
+#define IDM_EDIT_FINDNEXT 40366
+#define IDM_EDIT_FINDPREV 40367
+#define IDM_EDIT_REPLACE 40368
+#define IDM_EDIT_REPLACENEXT 40369
+#define IDM_EDIT_GOTOLINE 40370
+#define IDM_EDIT_SELTONEXT 40371
+#define IDM_EDIT_SELTOPREV 40372
+#define IDM_EDIT_COMPLETEWORD 40373
+#define IDM_EDIT_JOINLN_NOSP 40374
+#define IDM_EDIT_REMOVEDUPLICATELINES 40375
+#define IDM_EDIT_REMOVEEMPTYLINES 40376
+#define IDM_EDIT_MERGEEMPTYLINES 40377
#define IDM_VIEW_SCHEME 40400
#define IDM_VIEW_USE2NDDEFAULT 40401
diff --git a/language/np3_af_za/menu_af_za.rc b/language/np3_af_za/menu_af_za.rc
index 40154c1f6..09a147f49 100644
Binary files a/language/np3_af_za/menu_af_za.rc and b/language/np3_af_za/menu_af_za.rc differ
diff --git a/language/np3_de_de/menu_de_de.rc b/language/np3_de_de/menu_de_de.rc
index 1ff52b1ac..36dfe3c70 100644
Binary files a/language/np3_de_de/menu_de_de.rc and b/language/np3_de_de/menu_de_de.rc differ
diff --git a/language/np3_en_gb/menu_en_gb.rc b/language/np3_en_gb/menu_en_gb.rc
index 01dd5d85d..aeb59ffd2 100644
Binary files a/language/np3_en_gb/menu_en_gb.rc and b/language/np3_en_gb/menu_en_gb.rc differ
diff --git a/language/np3_en_us/menu_en_us.rc b/language/np3_en_us/menu_en_us.rc
index f23919fdd..d36c0e93f 100644
Binary files a/language/np3_en_us/menu_en_us.rc and b/language/np3_en_us/menu_en_us.rc differ
diff --git a/language/np3_es_es/menu_es_es.rc b/language/np3_es_es/menu_es_es.rc
index cd36aec4e..17f4b9328 100644
Binary files a/language/np3_es_es/menu_es_es.rc and b/language/np3_es_es/menu_es_es.rc differ
diff --git a/language/np3_fr_fr/menu_fr_fr.rc b/language/np3_fr_fr/menu_fr_fr.rc
index 8e63abedd..8ffbf15fc 100644
Binary files a/language/np3_fr_fr/menu_fr_fr.rc and b/language/np3_fr_fr/menu_fr_fr.rc differ
diff --git a/language/np3_ja_jp/menu_ja_jp.rc b/language/np3_ja_jp/menu_ja_jp.rc
index d1152c0ef..23e68c02b 100644
Binary files a/language/np3_ja_jp/menu_ja_jp.rc and b/language/np3_ja_jp/menu_ja_jp.rc differ
diff --git a/language/np3_nl_nl/menu_nl_nl.rc b/language/np3_nl_nl/menu_nl_nl.rc
index 49e17771e..b3456b151 100644
Binary files a/language/np3_nl_nl/menu_nl_nl.rc and b/language/np3_nl_nl/menu_nl_nl.rc differ
diff --git a/language/np3_zh_cn/menu_zh_cn.rc b/language/np3_zh_cn/menu_zh_cn.rc
index a8e784cc8..6f0228ce9 100644
Binary files a/language/np3_zh_cn/menu_zh_cn.rc and b/language/np3_zh_cn/menu_zh_cn.rc differ
diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf
index da65570a0..a68337bed 100644
--- a/res/Notepad3.exe.manifest.conf
+++ b/res/Notepad3.exe.manifest.conf
@@ -3,7 +3,7 @@
Notepad3 TinyExpr
diff --git a/src/Dialogs.c b/src/Dialogs.c
index 9c0c32663..a8d1d10b7 100644
--- a/src/Dialogs.c
+++ b/src/Dialogs.c
@@ -2696,6 +2696,8 @@ void GetMonitorWorkArea(RECT* pRect)
if (SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, 0) != 0) {
SetRect(pRect, rc.left, rc.top, rc.right, rc.bottom);
}
+ else
+ SetRectEmpty(pRect);
}
}
diff --git a/src/Edit.c b/src/Edit.c
index 54102e1c4..c4e3fcb7b 100644
--- a/src/Edit.c
+++ b/src/Edit.c
@@ -8152,6 +8152,7 @@ inline bool _FoldToggleNode(DocLn ln, FOLD_ACTION action)
void __stdcall EditFoldPerformAction(DocLn ln, int mode, FOLD_ACTION action)
{
+ bool fToggled = false;
if (action == SNIFF) {
action = SciCall_GetFoldExpanded(ln) ? FOLD : EXPAND;
}
@@ -8180,12 +8181,13 @@ void __stdcall EditFoldPerformAction(DocLn ln, int mode, FOLD_ACTION action)
if (lv < lvStop || (lv == lvStop && fHeader && ln != lnNode))
return;
else if (fHeader && (lv == lvNode || (lv > lvNode && mode & FOLD_CHILDREN)))
- _FoldToggleNode(ln, action);
+ fToggled |= _FoldToggleNode(ln, action);
}
}
else {
- _FoldToggleNode(ln, action);
+ fToggled = _FoldToggleNode(ln, action);
}
+ if (fToggled) { SciCall_ScrollCaret(); }
}
@@ -8193,7 +8195,6 @@ void EditToggleFolds(FOLD_ACTION action, bool bForceAll)
{
static FOLD_ACTION sbLastSniffAllAction = EXPAND;
- bool fToggled = bForceAll;
DocLn const iBegLn = SciCall_LineFromPosition(SciCall_GetSelectionStart());
DocLn const iEndLn = SciCall_LineFromPosition(SciCall_GetSelectionEnd());
@@ -8205,18 +8206,19 @@ void EditToggleFolds(FOLD_ACTION action, bool bForceAll)
if (iBegLn == iEndLn) {
// single line
DocLn const ln = (SciCall_GetFoldLevel(iBegLn) & SC_FOLDLEVELHEADERFLAG) ? iBegLn : SciCall_GetFoldParent(iBegLn);
- _FoldToggleNode(ln, action);
+ if (_FoldToggleNode(ln, action)) { SciCall_ScrollCaret(); }
}
else {
// selection range spans at least two lines
+ bool fToggled = bForceAll;
for (DocLn ln = iBegLn; ln <= iEndLn; ++ln) {
if (SciCall_GetFoldLevel(ln) & SC_FOLDLEVELHEADERFLAG) {
- if (_FoldToggleNode(ln, action)) { fToggled = !fToggled ? true : false; }
+ fToggled |= _FoldToggleNode(ln, action);
}
}
+ if (fToggled) { EditEnsureSelectionVisible(g_hwndEdit); }
}
}
- if (fToggled) { EditEnsureSelectionVisible(g_hwndEdit); }
}
@@ -8305,7 +8307,7 @@ void EditFoldAltArrow(FOLD_MOVE move, FOLD_ACTION action)
else {
ln = (SciCall_GetFoldLevel(iBegLn) & SC_FOLDLEVELHEADERFLAG) ? iBegLn : SciCall_GetFoldParent(iBegLn);
if (action != SNIFF) {
- _FoldToggleNode(ln, action);
+ if (_FoldToggleNode(ln, action)) { SciCall_ScrollCaret(); }
}
}
}
diff --git a/src/Notepad3.c b/src/Notepad3.c
index b9af9f09c..47350cd27 100644
--- a/src/Notepad3.c
+++ b/src/Notepad3.c
@@ -166,7 +166,7 @@ static WCHAR g_tchToolbarBitmap[MAX_PATH] = { L'\0' };
static WCHAR g_tchToolbarBitmapHot[MAX_PATH] = { L'\0' };
static WCHAR g_tchToolbarBitmapDisabled[MAX_PATH] = { L'\0' };
-static WININFO g_WinInfo = INIT_WININFO;
+static WININFO g_WinInfo = INIT_WININFO; // <= (g_flagDefaultPos == 1)
static int g_WinCurrentWidth = 0;
int iPathNameFormat;
@@ -990,30 +990,23 @@ void EndWaitCursor()
// _InitWindowPosition()
//
//
-#define _BORDEROFFSET (IsWin10() ? 8 : 16)
-
-
static void __fastcall _InitDefaultWndPos(WININFO* pWinInfo)
{
- RECT rc = RectFromWinInfo(pWinInfo);
- GetMonitorWorkArea(&rc);
- pWinInfo->y = rc.top + _BORDEROFFSET;
- pWinInfo->cy = rc.bottom - rc.top - (_BORDEROFFSET * 2);
- pWinInfo->cx = (rc.right - rc.left) / 2; //min(rc.right - rc.left - 32, g_WinInfo.cy);
- pWinInfo->x = (g_flagDefaultPos == 3) ? rc.left + _BORDEROFFSET : rc.right - g_WinInfo.cx - _BORDEROFFSET;
+ RECT rcMon = RectFromWinInfo(pWinInfo);
+ GetMonitorWorkArea(&rcMon);
+ pWinInfo->y = rcMon.top;
+ pWinInfo->cy = rcMon.bottom - rcMon.top;
+ pWinInfo->cx = (rcMon.right - rcMon.left) / 2; //min(rcMon.right - rcMon.left - 32, g_WinInfo.cy);
+ pWinInfo->x = (g_flagDefaultPos == 3) ? rcMon.left : rcMon.right - g_WinInfo.cx;
+
+ FitIntoMonitorWorkArea(&rcMon, pWinInfo, false);
}
// ----------------------------------------------------------------------------
static void __fastcall _InitWindowPosition()
{
- if (g_flagDefaultPos == 1)
- {
- g_WinInfo.x = g_WinInfo.y = g_WinInfo.cx = g_WinInfo.cy = CW_USEDEFAULT;
- g_WinInfo.max = 0;
- g_WinInfo.zoom = 100;
- }
- else if (g_flagDefaultPos >= 4)
+ if (g_flagDefaultPos >= 4)
{
RECT rcMon = RectFromWinInfo(&g_WinInfo);
GetMonitorWorkArea(&rcMon);
@@ -1060,7 +1053,7 @@ static void __fastcall _InitWindowPosition()
RECT rcMon = RectFromWinInfo(&g_WinInfo);
GetMonitorWorkArea(&rcMon);
- WININFO wiWin = g_WinInfo; wiWin.cx = wiWin.cy = _BORDEROFFSET * 2; // really small
+ WININFO wiWin = g_WinInfo; wiWin.cx = wiWin.cy = 32; // really small
FitIntoMonitorWorkArea(&rcMon, &wiWin, false);
g_WinInfo.x = wiWin.x;
@@ -2311,8 +2304,7 @@ LRESULT MsgSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
HDWP hdwp = BeginDeferWindowPos(2);
- DeferWindowPos(hdwp,hwndEditFrame,NULL,x,y,cx,cy,
- SWP_NOZORDER | SWP_NOACTIVATE);
+ DeferWindowPos(hdwp,hwndEditFrame,NULL,x,y,cx,cy, SWP_NOZORDER | SWP_NOACTIVATE);
DeferWindowPos(hdwp,g_hwndEdit,NULL,x+cxEditFrame,y+cyEditFrame,
cx-2*cxEditFrame,cy-2*cyEditFrame,
@@ -2794,7 +2786,7 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
EnableCmd(hmenu,IDM_EDIT_MOVELINEUP,!ro);
EnableCmd(hmenu,IDM_EDIT_MOVELINEDOWN,!ro);
- EnableCmd(hmenu,IDM_EDIT_DUPLICATELINE,!ro);
+ EnableCmd(hmenu,IDM_EDIT_DUPLINEORSELECTION,!ro);
EnableCmd(hmenu,IDM_EDIT_LINETRANSPOSE,!ro);
EnableCmd(hmenu,IDM_EDIT_CUTLINE,!ro);
EnableCmd(hmenu,IDM_EDIT_COPYLINE,true);
@@ -2813,7 +2805,6 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
EnableCmd(hmenu,IDM_EDIT_STRIP1STCHAR,!ro);
EnableCmd(hmenu,IDM_EDIT_STRIPLASTCHAR,!ro);
EnableCmd(hmenu,IDM_EDIT_TRIMLINES,!ro);
- EnableCmd(hmenu, IDM_EDIT_SELECTIONDUPLICATE, !ro);
EnableCmd(hmenu, IDM_EDIT_COMPRESS_BLANKS, !ro);
EnableCmd(hmenu, IDM_EDIT_MODIFYLINES, !ro);
@@ -3591,16 +3582,16 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
break;
- case IDM_EDIT_DUPLICATELINE:
+ case IDM_EDIT_DUPLINEORSELECTION:
_BEGIN_UNDO_ACTION_;
- SendMessage(g_hwndEdit,SCI_LINEDUPLICATE,0,0);
+ if (SciCall_IsSelectionEmpty()) { SciCall_LineDuplicate(); } else { SciCall_SelectionDuplicate(); }
_END_UNDO_ACTION_;
break;
case IDM_EDIT_LINETRANSPOSE:
_BEGIN_UNDO_ACTION_;
- SendMessage(g_hwndEdit, SCI_LINETRANSPOSE,0,0);
+ SciCall_LineTranspose();
_END_UNDO_ACTION_;
break;
@@ -3619,7 +3610,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_EDIT_DELETELINE:
{
_BEGIN_UNDO_ACTION_;
- SendMessage(g_hwndEdit, SCI_LINEDELETE, 0, 0);
+ SciCall_LineDelete();
_END_UNDO_ACTION_;
}
break;
@@ -3628,7 +3619,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_EDIT_DELETELINELEFT:
{
_BEGIN_UNDO_ACTION_;
- SendMessage(g_hwndEdit, SCI_DELLINELEFT, 0, 0);
+ SciCall_DelLineLeft();
_END_UNDO_ACTION_;
}
break;
@@ -3637,7 +3628,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_EDIT_DELETELINERIGHT:
{
_BEGIN_UNDO_ACTION_;
- SendMessage(g_hwndEdit, SCI_DELLINERIGHT, 0, 0);
+ SciCall_DelLineRight();
_END_UNDO_ACTION_;
}
break;
@@ -3711,17 +3702,6 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
break;
- case IDM_EDIT_SELECTIONDUPLICATE:
- {
- BeginWaitCursor(NULL);
- _BEGIN_UNDO_ACTION_;
- SendMessage(g_hwndEdit,SCI_SELECTIONDUPLICATE,0,0);
- _END_UNDO_ACTION_;
- EndWaitCursor();
- }
- break;
-
-
case IDM_EDIT_PADWITHSPACES:
{
BeginWaitCursor(NULL);
@@ -4808,7 +4788,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_VIEW_TOGGLEFOLDS:
- EditToggleFolds(SNIFF, true);
+ EditToggleFolds(SNIFF, SciCall_IsSelectionEmpty());
break;
case IDM_VIEW_TOGGLE_CURRENT_FOLD:
@@ -6161,7 +6141,7 @@ static void __fastcall _HandleTinyExpr()
}
}
-
+#if 0
//=============================================================================
//
// _IsIMEOpenInNativeMode()
@@ -6181,6 +6161,7 @@ static bool __fastcall _IsIMEOpenInNativeMode()
}
return result;
}
+#endif
//=============================================================================
//
@@ -6378,7 +6359,7 @@ LRESULT MsgNotify(HWND hwnd, WPARAM wParam, LPARAM lParam)
}
if ((g_bAutoCompleteWords || g_bAutoCLexerKeyWords)) {
- if ((g_bAutoCinASCIIModeOnly && (ich > 0x7F)) || (scn->modifiers != SC_CHARADDED_NORMAL)) {
+ if (g_bAutoCinASCIIModeOnly && ((ich > 0x7F) || (scn->modifiers != SC_CHARADDED_NORMAL))) {
SciCall_AutoCCancel();
return 0LL;
}
@@ -6721,18 +6702,13 @@ void LoadSettings()
}
g_iBidirectional = (clampi(g_iBidirectional, SC_BIDIRECTIONAL_DISABLED, SC_BIDIRECTIONAL_R2L) > 0) ? SC_BIDIRECTIONAL_R2L : 0;
-#if 0
- // Settings2 deprecated
- g_IMEInteraction = IniSectionGetInt(pIniSection, L"IMEInteraction", 111);
- if ((g_IMEInteraction != 111) && g_bSaveSettings) {
- // cleanup
- IniSetString(L"Settings2", L"IMEInteraction", NULL);
- IniSetInt(L"Settings", L"IMEInteraction", g_iBidirectional);
+ g_IMEInteraction = clampi(IniSectionGetInt(pIniSection, L"IMEInteraction", -1), -1, SC_IME_INLINE);
+ // Korean IME use inline mode by default
+ if (g_IMEInteraction == -1) { // auto detection once
+ // ScintillaWin::KoreanIME()
+ int const codePage = Scintilla_InputCodePage();
+ g_IMEInteraction = ((codePage == 949 || codePage == 1361) ? SC_IME_INLINE : SC_IME_WINDOWED);
}
- g_IMEInteraction = clampi(g_IMEInteraction, 0, 1);
-#else
- g_IMEInteraction = clampi(IniSectionGetInt(pIniSection, L"IMEInteraction", SC_IME_WINDOWED), SC_IME_WINDOWED, SC_IME_INLINE);
-#endif
g_iSciFontQuality = clampi(IniSectionGetInt(pIniSection, L"SciFontQuality", FontQuality[3]), 0, 3);
@@ -6752,7 +6728,6 @@ void LoadSettings()
IniSectionGetString(pIniSection, L"AdministrationTool.exe", L"", g_tchAdministrationExe, COUNTOF(g_tchAdministrationExe));
-
// --------------------------------------------------------------------------
LoadIniSection(L"Settings", pIniSection, cchIniSection);
// --------------------------------------------------------------------------
diff --git a/src/Notepad3.rc b/src/Notepad3.rc
index 05b4aede1..0dceae7e0 100644
--- a/src/Notepad3.rc
+++ b/src/Notepad3.rc
@@ -85,7 +85,6 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
IDR_MAINWND ACCELERATORS
BEGIN
- 46, /*'.'*/ IDM_EDIT_LINETRANSPOSE, ASCII, ALT, NOINVERT
"0", IDM_VIEW_RESETZOOM, VIRTKEY, CONTROL, NOINVERT
"0", IDM_VIEW_WORDWRAPSYMBOLS, VIRTKEY, SHIFT, CONTROL, NOINVERT
"1", CMD_STRINGIFY, VIRTKEY, CONTROL, NOINVERT
@@ -111,8 +110,8 @@ BEGIN
"C", IDM_EDIT_COPYALL, VIRTKEY, ALT, NOINVERT
"C", IDM_EDIT_HEX2CHAR, VIRTKEY, CONTROL, ALT, NOINVERT
"C", IDM_EDIT_COPY, VIRTKEY, SHIFT, CONTROL, NOINVERT
- "D", IDM_EDIT_DUPLICATELINE, VIRTKEY, CONTROL, NOINVERT
- "D", IDM_EDIT_SELECTIONDUPLICATE, VIRTKEY, ALT, NOINVERT
+ "D", IDM_EDIT_DUPLINEORSELECTION, VIRTKEY, CONTROL, NOINVERT
+ "D", IDM_EDIT_LINETRANSPOSE, VIRTKEY, ALT, NOINVERT
"D", IDM_EDIT_DELETELINE, VIRTKEY, SHIFT, CONTROL, NOINVERT
"D", IDM_EDIT_REMOVEDUPLICATELINES, VIRTKEY, CONTROL, ALT, NOINVERT
"E", IDM_EDIT_COPYADD, VIRTKEY, CONTROL, NOINVERT
diff --git a/src/SciCall.h b/src/SciCall.h
index 41e65a5a5..3bd2a6f7c 100644
--- a/src/SciCall.h
+++ b/src/SciCall.h
@@ -199,7 +199,6 @@ DeclareSciCallV0(Clear, CLEAR)
DeclareSciCallV2(CopyRange, COPYRANGE, DocPos, start, DocPos, end)
DeclareSciCallV0(Cancel, CANCEL)
DeclareSciCallV0(CopyAllowLine, COPYALLOWLINE)
-DeclareSciCallV0(LineDelete, LINEDELETE)
DeclareSciCallV2(CopyText, COPYTEXT, DocPos, length, const char*, text)
DeclareSciCallV2(GetText, GETTEXT, DocPos, length, const char*, text)
@@ -278,8 +277,15 @@ DeclareSciCallV2(AutoCShow, AUTOCSHOW, int, len, const char*, list)
// Commands
//
DeclareSciCallV0(NewLine, NEWLINE)
+DeclareSciCallV0(LineDuplicate, LINEDUPLICATE)
+DeclareSciCallV0(SelectionDuplicate, SELECTIONDUPLICATE)
+DeclareSciCallV0(LineTranspose, LINETRANSPOSE)
DeclareSciCallV0(MoveSelectedLinesUp, MOVESELECTEDLINESUP)
DeclareSciCallV0(MoveSelectedLinesDown, MOVESELECTEDLINESDOWN)
+DeclareSciCallV0(LineDelete, LINEDELETE)
+DeclareSciCallV0(DelLineLeft, DELLINELEFT)
+DeclareSciCallV0(DelLineRight, DELLINERIGHT)
+
DeclareSciCallR2(FindText, FINDTEXT, DocPos, int, flags, struct Sci_TextToFind*, text)
diff --git a/src/TypeDefs.h b/src/TypeDefs.h
index 2594e163b..9700e6638 100644
--- a/src/TypeDefs.h
+++ b/src/TypeDefs.h
@@ -61,7 +61,7 @@ typedef struct _wi
int zoom;
} WININFO;
-#define INIT_WININFO { CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0 }
+#define INIT_WININFO { CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, 0, 100 }
inline RECT RectFromWinInfo(const WININFO* const pWinInfo) {
diff --git a/src/VersionEx.h b/src/VersionEx.h
index 9579fa3bb..a0a747cf6 100644
--- a/src/VersionEx.h
+++ b/src/VersionEx.h
@@ -6,8 +6,8 @@
#define APPNAME "Notepad3"
#define VERSION_MAJOR 4
#define VERSION_MINOR 18
-#define VERSION_REV 822
-#define VERSION_BUILD 1067
-#define SCINTILLA_VER 410
+#define VERSION_REV 912
+#define VERSION_BUILD 1098
+#define SCINTILLA_VER 411
#define ONIGMO_REGEX_VER 6.1.3
#define VERSION_PATCH " TinyExpr"