diff --git a/Build/Notepad3.ini b/Build/Notepad3.ini
index 8f6114feb..ea9bc4ceb 100644
--- a/Build/Notepad3.ini
+++ b/Build/Notepad3.ini
@@ -19,6 +19,7 @@ SettingsVersion=4
;MarkOccurrencesMaxCount=2000
;MultiFileArg=0
;NoCGIGuess=0
+;NoCopyLineOnEmptySelection=0
;NoFadeHidden=0
;NoFileVariables=0
;NoHTMLGuess=0
diff --git a/Versions/build.txt b/Versions/build.txt
index b7e8b6b87..cb632d551 100644
--- a/Versions/build.txt
+++ b/Versions/build.txt
@@ -1 +1 @@
-2646
+2647
diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf
index b4b34562e..7847566c6 100644
--- a/res/Notepad3.exe.manifest.conf
+++ b/res/Notepad3.exe.manifest.conf
@@ -3,7 +3,7 @@
Notepad3 BETA
diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp
index 87397aee3..aaa82368e 100644
--- a/src/Config/Config.cpp
+++ b/src/Config/Config.cpp
@@ -696,6 +696,9 @@ void LoadSettings()
Defaults2.CurrentLineVerticalSlop = 5;
Settings2.CurrentLineVerticalSlop = clampi(IniSectionGetInt(Settings2_Section, L"CurrentLineVerticalSlop", Defaults2.CurrentLineVerticalSlop), 0, 25);
+ Defaults2.NoCopyLineOnEmptySelection = false;
+ Settings2.NoCopyLineOnEmptySelection = IniSectionGetBool(Settings2_Section, L"NoCopyLineOnEmptySelection", Defaults2.NoCopyLineOnEmptySelection);
+
int const iARCLdef = 50;
Defaults2.AnalyzeReliableConfidenceLevel = (float)iARCLdef / 100.0f;
diff --git a/src/Notepad3.c b/src/Notepad3.c
index 2b5de1079..ca6f410c2 100644
--- a/src/Notepad3.c
+++ b/src/Notepad3.c
@@ -4004,7 +4004,8 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
}
//~_BEGIN_UNDO_ACTION_
if (SciCall_IsSelectionEmpty()) {
- if (!HandleHotSpotURLClicked(SciCall_GetCurrentPos(), COPY_HYPERLINK))
+ if (!HandleHotSpotURLClicked(SciCall_GetCurrentPos(), COPY_HYPERLINK) &&
+ !Settings2.NoCopyLineOnEmptySelection)
{
// VisualStudio behavior
SciCall_CopyAllowLine();
diff --git a/src/TypeDefs.h b/src/TypeDefs.h
index 050d5c3b1..fe25c2694 100644
--- a/src/TypeDefs.h
+++ b/src/TypeDefs.h
@@ -498,6 +498,7 @@ typedef struct _settings2_t
bool UseOldStyleBraceMatching;
int CurrentLineHorizontalSlop;
int CurrentLineVerticalSlop;
+ bool NoCopyLineOnEmptySelection;
float AnalyzeReliableConfidenceLevel;
//~float ReliableCEDConfidenceMapping; // = 0.85f;
diff --git a/src/VersionEx.h b/src/VersionEx.h
index a8cca7838..1369858b7 100644
--- a/src/VersionEx.h
+++ b/src/VersionEx.h
@@ -8,7 +8,7 @@
#define VERSION_MAJOR 5
#define VERSION_MINOR 19
#define VERSION_REV 923
-#define VERSION_BUILD 2646
+#define VERSION_BUILD 2647
#define SCINTILLA_VER 420
#define ONIGURUMA_REGEX_VER 6.9.3
#define UCHARDET_VER 2018.09.27