Fix "Enable current line highlighting" not working correctly
This is a regression of upgrading Scintilla from 4.x to 5.x due to concerning Scintilla APIs having changed their behaviour. This PR follows the new instructions of Scintilla documentation to make it work again. Fix #11433, close #11433
This commit is contained in:
parent
3afbf0ca14
commit
e094e99697
|
@ -273,9 +273,6 @@ LRESULT Notepad_plus::init(HWND hwnd)
|
|||
_mainEditView.setWrapMode(svp._lineWrapMethod);
|
||||
_subEditView.setWrapMode(svp._lineWrapMethod);
|
||||
|
||||
_mainEditView.execute(SCI_SETCARETLINEVISIBLE, svp._currentLineHilitingShow);
|
||||
_subEditView.execute(SCI_SETCARETLINEVISIBLE, svp._currentLineHilitingShow);
|
||||
|
||||
_mainEditView.execute(SCI_SETENDATLASTLINE, !svp._scrollBeyondLastLine);
|
||||
_subEditView.execute(SCI_SETENDATLASTLINE, !svp._scrollBeyondLastLine);
|
||||
|
||||
|
|
|
@ -3744,9 +3744,13 @@ void Notepad_plus::command(int id)
|
|||
|
||||
case IDM_VIEW_CURLINE_HILITING:
|
||||
{
|
||||
COLORREF colour = (NppParameters::getInstance()).getCurLineHilitingColour();
|
||||
_mainEditView.setCurrentLineHiLiting(!_pEditView->isCurrentLineHiLiting(), colour);
|
||||
_subEditView.setCurrentLineHiLiting(!_pEditView->isCurrentLineHiLiting(), colour);
|
||||
NppParameters& nppParams = NppParameters::getInstance();
|
||||
|
||||
COLORREF colour{ nppParams.getCurLineHilitingColour() };
|
||||
bool hilite{ nppParams.getSVP()._currentLineHilitingShow };
|
||||
|
||||
_mainEditView.setCurrentLineHiLiting(hilite, colour);
|
||||
_subEditView.setCurrentLineHiLiting(hilite, colour);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -2568,11 +2568,15 @@ void ScintillaEditView::performGlobalStyles()
|
|||
{
|
||||
NppParameters& nppParams = NppParameters::getInstance();
|
||||
StyleArray& stylers = nppParams.getMiscStylerArray();
|
||||
const Style* pStyle{};
|
||||
|
||||
const Style * pStyle = stylers.findByName(TEXT("Current line background colour"));
|
||||
if (nppParams.getSVP()._currentLineHilitingShow)
|
||||
{
|
||||
pStyle = stylers.findByName(TEXT("Current line background colour"));
|
||||
if (pStyle)
|
||||
{
|
||||
execute(SCI_SETCARETLINEBACK, pStyle->_bgColor);
|
||||
execute(SCI_SETELEMENTCOLOUR, SC_ELEMENT_CARET_LINE_BACK, pStyle->_bgColor);
|
||||
}
|
||||
}
|
||||
|
||||
COLORREF selectColorBack = grey;
|
||||
|
|
|
@ -469,14 +469,10 @@ public:
|
|||
|
||||
|
||||
void setCurrentLineHiLiting(bool isHiliting, COLORREF bgColor) const {
|
||||
execute(SCI_SETCARETLINEVISIBLE, isHiliting);
|
||||
if (!isHiliting)
|
||||
return;
|
||||
execute(SCI_SETCARETLINEBACK, bgColor);
|
||||
};
|
||||
|
||||
bool isCurrentLineHiLiting() const {
|
||||
return (execute(SCI_GETCARETLINEVISIBLE) != 0);
|
||||
if (isHiliting)
|
||||
execute(SCI_SETELEMENTCOLOUR, SC_ELEMENT_CARET_LINE_BACK, bgColor);
|
||||
else
|
||||
execute(SCI_RESETELEMENTCOLOUR, SC_ELEMENT_CARET_LINE_BACK, NULL);
|
||||
};
|
||||
|
||||
void performGlobalStyles();
|
||||
|
|
Loading…
Reference in New Issue