Restore multi-editing option on GUI
Make also Column To Multi-editing optional on GUI and cancel the usage of noColumnToMultiSelect.xml file. For users who have added "noColumnToMultiSelect.xml" for disabling "Column To Multi-editing" feature, please go to "Editing 2" section of Preferences to disable this feature. Ref: https://community.notepad-plus-plus.org/topic/25364/notepad-v8-6-2-release/11?_=1707952609907 Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14611#issuecomment-1937487607 Fix #14645, close #14734pull/14744/head
parent
75b239cf8a
commit
f2d66170fc
|
@ -339,8 +339,7 @@ LRESULT Notepad_plus::init(HWND hwnd)
|
|||
_mainEditView.execute(SCI_SETZOOM, svp._zoom);
|
||||
_subEditView.execute(SCI_SETZOOM, svp._zoom2);
|
||||
|
||||
_mainEditView.execute(SCI_SETMULTIPLESELECTION, true);
|
||||
_subEditView.execute(SCI_SETMULTIPLESELECTION, true);
|
||||
::SendMessage(hwnd, NPPM_INTERNAL_SETMULTISELCTION, 0, 0);
|
||||
|
||||
// Make backspace or delete work with multiple selections
|
||||
_mainEditView.execute(SCI_SETADDITIONALSELECTIONTYPING, true);
|
||||
|
|
|
@ -1904,6 +1904,14 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
case NPPM_INTERNAL_SETMULTISELCTION:
|
||||
{
|
||||
ScintillaViewParams& svp = const_cast<ScintillaViewParams&>(nppParam.getSVP());
|
||||
_mainEditView.execute(SCI_SETMULTIPLESELECTION, svp._multiSelection);
|
||||
_subEditView.execute(SCI_SETMULTIPLESELECTION, svp._multiSelection);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case NPPM_INTERNAL_SETCARETBLINKRATE:
|
||||
{
|
||||
const NppGUI & nppGUI = nppParam.getNppGUI();
|
||||
|
|
|
@ -1652,21 +1652,6 @@ bool NppParameters::load()
|
|||
_isRegForOSAppRestartDisabled = (::PathFileExists(filePath.c_str()) == TRUE);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------//
|
||||
// noColumnToMultiSelect.xml //
|
||||
// This empty xml file is optional - user adds this empty file //
|
||||
// manually in order to prevent Notepad++ transform column //
|
||||
// selection into multi-select. //
|
||||
//-------------------------------------------------------------//
|
||||
std::wstring disableColumn2MultiSelectPath = _userPath;
|
||||
pathAppend(disableColumn2MultiSelectPath, TEXT("noColumnToMultiSelect.xml"));
|
||||
|
||||
if (PathFileExists(disableColumn2MultiSelectPath.c_str()))
|
||||
{
|
||||
_column2MultiSelect = false;
|
||||
}
|
||||
|
||||
return isAllLaoded;
|
||||
}
|
||||
|
||||
|
@ -6634,6 +6619,24 @@ void NppParameters::feedScintillaParam(TiXmlNode *node)
|
|||
else if (!lstrcmp(nm, TEXT("no")))
|
||||
_svp._lineCopyCutWithoutSelection = false;
|
||||
}
|
||||
|
||||
nm = element->Attribute(TEXT("multiSelection"));
|
||||
if (nm)
|
||||
{
|
||||
if (!lstrcmp(nm, TEXT("yes")))
|
||||
_svp._multiSelection = true;
|
||||
else if (!lstrcmp(nm, TEXT("no")))
|
||||
_svp._multiSelection = false;
|
||||
}
|
||||
|
||||
nm = element->Attribute(TEXT("columnSel2MultiEdit"));
|
||||
if (nm)
|
||||
{
|
||||
if (!lstrcmp(nm, TEXT("yes")) && _svp._multiSelection)
|
||||
_svp._columnSel2MultiEdit = true;
|
||||
else if (!lstrcmp(nm, TEXT("no")))
|
||||
_svp._columnSel2MultiEdit = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -6909,6 +6912,11 @@ bool NppParameters::writeScintillaParams()
|
|||
(scintNode->ToElement())->SetAttribute(TEXT("paddingRight"), _svp._paddingRight);
|
||||
(scintNode->ToElement())->SetAttribute(TEXT("distractionFreeDivPart"), _svp._distractionFreeDivPart);
|
||||
(scintNode->ToElement())->SetAttribute(TEXT("lineCopyCutWithoutSelection"), _svp._lineCopyCutWithoutSelection ? TEXT("yes") : TEXT("no"));
|
||||
|
||||
(scintNode->ToElement())->SetAttribute(TEXT("multiSelection"), _svp._multiSelection ? TEXT("yes") : TEXT("no"));
|
||||
bool canEnableColumnSel2MultiEdit = _svp._multiSelection && _svp._columnSel2MultiEdit;
|
||||
(scintNode->ToElement())->SetAttribute(TEXT("columnSel2MultiEdit"), canEnableColumnSel2MultiEdit ? TEXT("yes") : TEXT("no"));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -993,6 +993,9 @@ struct ScintillaViewParams
|
|||
};
|
||||
|
||||
bool _lineCopyCutWithoutSelection = true;
|
||||
|
||||
bool _multiSelection = true; // if _multiSelection is false
|
||||
bool _columnSel2MultiEdit = true; // _columnSel2MultiEdit must be false
|
||||
};
|
||||
|
||||
const int NB_LIST = 20;
|
||||
|
@ -1888,7 +1891,6 @@ public:
|
|||
bool regexBackward4PowerUser() const { return _findHistory._regexBackward4PowerUser; }
|
||||
bool isSelectFgColorEnabled() const { return _isSelectFgColorEnabled; };
|
||||
bool isRegForOSAppRestartDisabled() const { return _isRegForOSAppRestartDisabled; };
|
||||
bool doColumn2MultiSelect() const { return _column2MultiSelect; };
|
||||
|
||||
private:
|
||||
bool _isAnyShortcutModified = false;
|
||||
|
@ -1956,7 +1958,6 @@ private:
|
|||
|
||||
bool _isSelectFgColorEnabled = false;
|
||||
bool _isRegForOSAppRestartDisabled = false;
|
||||
bool _column2MultiSelect = true;
|
||||
|
||||
bool _doNppLogNetworkDriveIssue = false;
|
||||
bool _doNppLogNulContentCorruptionIssue = false;
|
||||
|
|
|
@ -528,7 +528,7 @@ LRESULT ScintillaEditView::scintillaNew_Proc(HWND hwnd, UINT Message, WPARAM wPa
|
|||
SHORT alt = GetKeyState(VK_MENU);
|
||||
SHORT shift = GetKeyState(VK_SHIFT);
|
||||
bool isColumnSelection = (execute(SCI_GETSELECTIONMODE) == SC_SEL_RECTANGLE) || (execute(SCI_GETSELECTIONMODE) == SC_SEL_THIN);
|
||||
bool column2MultSelect = (NppParameters::getInstance()).doColumn2MultiSelect();
|
||||
bool column2MultSelect = (NppParameters::getInstance()).getSVP()._columnSel2MultiEdit;
|
||||
|
||||
if (wParam == VK_DELETE)
|
||||
{
|
||||
|
|
|
@ -120,6 +120,16 @@ BEGIN
|
|||
END
|
||||
|
||||
|
||||
IDD_PREFERENCE_SUB_EDITING2 DIALOGEX 115, 10, 460, 205
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "Multi-Editing",IDC_GB_STATIC_MULTIEDITING,80,25,290,50,BS_CENTER
|
||||
CONTROL "Enable Multi-Editing (Ctrl+Mouse click/selection)",IDC_CHECK_MULTISELECTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,85,40,270,10
|
||||
CONTROL "Enable Column Selection to Multi-Editing",IDC_CHECK_COLUMN2MULTIEDITING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,97,55,270,10
|
||||
END
|
||||
|
||||
|
||||
IDD_PREFERENCE_SUB_DARKMODE DIALOGEX 115, 10, 460, 205
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
|
|
|
@ -127,6 +127,9 @@ intptr_t CALLBACK PreferenceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||
_editingSubDlg.init(_hInst, _hSelf);
|
||||
_editingSubDlg.create(IDD_PREFERENCE_SUB_EDITING, false, false);
|
||||
|
||||
_editing2SubDlg.init(_hInst, _hSelf);
|
||||
_editing2SubDlg.create(IDD_PREFERENCE_SUB_EDITING2, false, false);
|
||||
|
||||
_darkModeSubDlg.init(_hInst, _hSelf);
|
||||
_darkModeSubDlg.create(IDD_PREFERENCE_SUB_DARKMODE, false, false);
|
||||
|
||||
|
@ -182,7 +185,8 @@ intptr_t CALLBACK PreferenceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||
_searchEngineSubDlg.create(IDD_PREFERENCE_SUB_SEARCHENGINE, false, false);
|
||||
|
||||
_wVector.push_back(DlgInfo(&_generalSubDlg, TEXT("General"), TEXT("Global")));
|
||||
_wVector.push_back(DlgInfo(&_editingSubDlg, TEXT("Editing"), TEXT("Scintillas")));
|
||||
_wVector.push_back(DlgInfo(&_editingSubDlg, TEXT("Editing 1"), TEXT("Scintillas")));
|
||||
_wVector.push_back(DlgInfo(&_editing2SubDlg, TEXT("Editing 2"), TEXT("Scintillas2")));
|
||||
_wVector.push_back(DlgInfo(&_darkModeSubDlg, TEXT("Dark Mode"), TEXT("DarkMode")));
|
||||
_wVector.push_back(DlgInfo(&_marginsBorderEdgeSubDlg, TEXT("Margins/Border/Edge"), TEXT("MarginsBorderEdge")));
|
||||
_wVector.push_back(DlgInfo(&_newDocumentSubDlg, TEXT("New Document"), TEXT("NewDoc")));
|
||||
|
@ -487,6 +491,7 @@ void PreferenceDlg::destroy()
|
|||
{
|
||||
_generalSubDlg.destroy();
|
||||
_editingSubDlg.destroy();
|
||||
_editing2SubDlg.destroy();
|
||||
_darkModeSubDlg.destroy();
|
||||
_marginsBorderEdgeSubDlg.destroy();
|
||||
_miscSubDlg.destroy();
|
||||
|
@ -1304,6 +1309,52 @@ intptr_t CALLBACK EditingSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
intptr_t CALLBACK Editing2SubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM /*lParam*/)
|
||||
{
|
||||
switch (message)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
NppParameters& nppParam = NppParameters::getInstance();
|
||||
ScintillaViewParams& svp = const_cast<ScintillaViewParams&>(nppParam.getSVP());
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_MULTISELECTION, BM_SETCHECK, svp._multiSelection, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_COLUMN2MULTIEDITING, BM_SETCHECK, svp._columnSel2MultiEdit, 0);
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_COLUMN2MULTIEDITING), svp._multiSelection);
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
case WM_COMMAND:
|
||||
{
|
||||
NppParameters& nppParam = NppParameters::getInstance();
|
||||
ScintillaViewParams& svp = const_cast<ScintillaViewParams&>(nppParam.getSVP());
|
||||
switch (wParam)
|
||||
{
|
||||
case IDC_CHECK_MULTISELECTION:
|
||||
{
|
||||
svp._multiSelection = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_MULTISELECTION, BM_GETCHECK, 0, 0));
|
||||
if (!svp._multiSelection)
|
||||
{
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_COLUMN2MULTIEDITING, BM_SETCHECK, FALSE, 0);
|
||||
svp._columnSel2MultiEdit = false;
|
||||
}
|
||||
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_COLUMN2MULTIEDITING), svp._multiSelection);
|
||||
::SendMessage(::GetParent(_hParent), NPPM_INTERNAL_SETMULTISELCTION, 0, 0);
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
case IDC_CHECK_COLUMN2MULTIEDITING:
|
||||
{
|
||||
svp._columnSel2MultiEdit = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_COLUMN2MULTIEDITING, BM_GETCHECK, 0, 0));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
void DarkModeSubDlg::enableCustomizedColorCtrls(bool doEnable)
|
||||
{
|
||||
|
|
|
@ -79,6 +79,17 @@ private :
|
|||
void changeLineHiliteMode(bool enableSlider);
|
||||
};
|
||||
|
||||
class Editing2SubDlg : public StaticDialog
|
||||
{
|
||||
friend class PreferenceDlg;
|
||||
public :
|
||||
Editing2SubDlg() = default;
|
||||
~Editing2SubDlg() = default;
|
||||
|
||||
private:
|
||||
intptr_t CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) override;
|
||||
};
|
||||
|
||||
class DarkModeSubDlg : public StaticDialog
|
||||
{
|
||||
public:
|
||||
|
@ -327,6 +338,7 @@ private :
|
|||
WindowVector _wVector;
|
||||
GeneralSubDlg _generalSubDlg;
|
||||
EditingSubDlg _editingSubDlg;
|
||||
Editing2SubDlg _editing2SubDlg;
|
||||
DarkModeSubDlg _darkModeSubDlg;
|
||||
MarginsBorderEdgeSubDlg _marginsBorderEdgeSubDlg;
|
||||
MiscSubDlg _miscSubDlg;
|
||||
|
|
|
@ -317,7 +317,12 @@
|
|||
//#define IDC_TABSIZEVAL_DISABLE_STATIC (IDD_PREFERENCE_SUB_LANGUAGE + 12)
|
||||
#define IDC_EDIT_TABSIZEVAL (IDD_PREFERENCE_SUB_LANGUAGE + 13)
|
||||
|
||||
#define IDD_PREFERENCE_SUB_HIGHLIGHTING 6550 //(IDD_PREFERENCE_BOX + 500)
|
||||
#define IDD_PREFERENCE_SUB_EDITING2 6520 //(IDD_PREFERENCE_BOX + 520)
|
||||
#define IDC_GB_STATIC_MULTIEDITING (IDD_PREFERENCE_SUB_EDITING2 + 1)
|
||||
#define IDC_CHECK_MULTISELECTION (IDD_PREFERENCE_SUB_EDITING2 + 2)
|
||||
#define IDC_CHECK_COLUMN2MULTIEDITING (IDD_PREFERENCE_SUB_EDITING2 + 3)
|
||||
|
||||
#define IDD_PREFERENCE_SUB_HIGHLIGHTING 6550 //(IDD_PREFERENCE_BOX + 550)
|
||||
|
||||
#define IDD_PREFERENCE_SUB_PRINT 6600 //(IDD_PREFERENCE_BOX + 600)
|
||||
#define IDC_CHECK_PRINTLINENUM (IDD_PREFERENCE_SUB_PRINT + 1)
|
||||
|
|
|
@ -611,7 +611,7 @@
|
|||
#define NPPM_INTERNAL_SETTING_TAB_SIZE (NOTEPADPLUS_USER_INTERNAL + 30)
|
||||
#define NPPM_INTERNAL_RELOADSTYLERS (NOTEPADPLUS_USER_INTERNAL + 31)
|
||||
#define NPPM_INTERNAL_DOCORDERCHANGED (NOTEPADPLUS_USER_INTERNAL + 32)
|
||||
//#define NPPM_INTERNAL_SETMULTISELCTION (NOTEPADPLUS_USER_INTERNAL + 33)
|
||||
#define NPPM_INTERNAL_SETMULTISELCTION (NOTEPADPLUS_USER_INTERNAL + 33)
|
||||
#define NPPM_INTERNAL_SCINTILLAFINDEROPENALL (NOTEPADPLUS_USER_INTERNAL + 34)
|
||||
#define NPPM_INTERNAL_RECENTFILELIST_UPDATE (NOTEPADPLUS_USER_INTERNAL + 35)
|
||||
#define NPPM_INTERNAL_RECENTFILELIST_SWITCH (NOTEPADPLUS_USER_INTERNAL + 36)
|
||||
|
|
Loading…
Reference in New Issue