diff --git a/Versions/build.txt b/Versions/build.txt
index caef62796..137c70ae4 100644
--- a/Versions/build.txt
+++ b/Versions/build.txt
@@ -1 +1 @@
-2238
+2239
diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf
index 72a94b581..ee8e9ff95 100644
--- a/res/Notepad3.exe.manifest.conf
+++ b/res/Notepad3.exe.manifest.conf
@@ -3,7 +3,7 @@
Notepad3 ONIGURUMA
diff --git a/src/Edit.c b/src/Edit.c
index d283735c3..83d6ef501 100644
--- a/src/Edit.c
+++ b/src/Edit.c
@@ -8238,6 +8238,30 @@ cpi_enc_t FileVars_GetEncoding(LPFILEVARS lpfv)
}
+//=============================================================================
+//
+// EditBookmarkClick()
+//
+void EditBookmarkClick(const DocLn ln, const int modifiers)
+{
+ UNUSED(modifiers);
+
+ int const bitmask = SciCall_MarkerGet(ln);
+
+ if (bitmask & (1 << MARKER_NP3_BOOKMARK))
+ {
+ SciCall_MarkerDelete(ln, MARKER_NP3_BOOKMARK); // unset
+ }
+ else {
+ SciCall_MarkerAdd(ln, MARKER_NP3_BOOKMARK); // set
+ }
+
+ if (modifiers & SCMOD_ALT) {
+ SciCall_GotoLine(ln);
+ }
+}
+
+
//==============================================================================
//
// Folding Functions
diff --git a/src/Edit.h b/src/Edit.h
index 6ea5ecefc..2c9760863 100644
--- a/src/Edit.h
+++ b/src/Edit.h
@@ -113,6 +113,7 @@ bool EditAutoCompleteWord(HWND hwnd,bool);
void EditShowZeroLengthCallTip(HWND hwnd, DocPos iPosition);
void EditGetBookmarkList(HWND hwnd,LPWSTR pszBookMarks,int cchLength);
void EditSetBookmarkList(HWND hwnd,LPCWSTR pszBookMarks);
+void EditBookmarkClick(const DocLn ln, const int modifiers);
void EditMarkAllOccurrences(HWND hwnd, bool bForceClear);
void EditHideNotMarkedLineRange(HWND hwnd, bool bHideLines);
void EditSelectionMultiSelectAll();
diff --git a/src/Notepad3.c b/src/Notepad3.c
index ece1d4354..7dc32707d 100644
--- a/src/Notepad3.c
+++ b/src/Notepad3.c
@@ -4691,12 +4691,12 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_EDIT_SELTOMATCHINGBRACE:
- {
- _BEGIN_UNDO_ACTION_
+ {
+ _BEGIN_UNDO_ACTION_
EditSelectToMatchingBrace(Globals.hwndEdit);
- _END_UNDO_ACTION_
- }
- break;
+ _END_UNDO_ACTION_
+ }
+ break;
// Main Bookmark Functions
@@ -4718,8 +4718,8 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
SciCall_GotoLine(iNextLine);
SciCall_ScrollCaret();
}
- break;
}
+ break;
case BME_EDIT_BOOKMARKPREV:
{
@@ -4739,31 +4739,23 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
SciCall_GotoLine(iNextLine);
SciCall_ScrollCaret();
}
- break;
}
+ break;
+
case BME_EDIT_BOOKMARKTOGGLE:
- {
- const DocPos iPos = SciCall_GetCurrentPos();
- const DocLn iLine = SciCall_LineFromPosition(iPos);
+ {
+ const DocLn ln = Sci_GetCurrentLineNumber();
+ EditBookmarkClick(ln, 0);
+ }
+ break;
- int bitmask = SciCall_MarkerGet(iLine);
-
- if (bitmask & (1 << MARKER_NP3_BOOKMARK)) {
- SciCall_MarkerDelete(iLine, MARKER_NP3_BOOKMARK); // unset
- }
- else {
- SciCall_MarkerAdd(iLine, MARKER_NP3_BOOKMARK); // set
- }
- break;
- }
case BME_EDIT_BOOKMARKCLEAR:
SciCall_MarkerDeleteAll(MARKER_NP3_BOOKMARK);
break;
-
case IDM_EDIT_FIND:
if (!IsWindow(Globals.hwndDlgFindReplace)) {
Globals.bFindReplCopySelOrClip = true;
@@ -6783,6 +6775,7 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
case SCN_CALLTIPCLICK:
return 0;
+
case SCN_MODIFIED:
{
int const iModType = scn->modificationType;
@@ -6818,12 +6811,14 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
+
case SCN_STYLENEEDED: // this event needs SCI_SETLEXER(SCLEX_CONTAINER)
{
EditFinalizeStyling(Globals.hwndEdit, scn->position);
}
break;
+
case SCN_UPDATEUI:
{
int const iUpd = scn->updated;
@@ -6872,6 +6867,7 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
+
case SCN_DWELLSTART:
case SCN_DWELLEND:
{
@@ -6879,12 +6875,14 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
+
case SCN_INDICATORCLICK:
{
_s_indic_click_modifiers = scn->modifiers;
}
break;
+
case SCN_INDICATORRELEASE:
{
if (_s_indic_click_modifiers & SCMOD_CTRL) {
@@ -6899,6 +6897,7 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
+
case SCN_CHARADDED:
{
int const ich = scn->ch;
@@ -6929,6 +6928,7 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
+
case SCN_AUTOCCHARDELETED:
if ((Settings.AutoCompleteWords || Settings.AutoCLexerKeyWords))
{
@@ -6936,27 +6936,43 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
+
case SCN_NEEDSHOWN:
{
- DocLn const iFirstLine = SciCall_LineFromPosition((DocPos)scn->position);
- DocLn const iLastLine = SciCall_LineFromPosition((DocPos)(scn->position + scn->length - 1));
+ DocLn const iFirstLine = SciCall_LineFromPosition(scn->position);
+ DocLn const iLastLine = SciCall_LineFromPosition(scn->position + scn->length - 1);
for (DocLn i = iFirstLine; i <= iLastLine; ++i) { SciCall_EnsureVisible(i); }
UpdateVisibleUrlIndics();
}
break;
+
case SCN_MARGINCLICK:
- if (scn->margin == MARGIN_SCI_FOLDING) {
- EditFoldClick(SciCall_LineFromPosition((DocPos)scn->position), scn->modifiers);
- }
+ switch (scn->margin)
+ {
+ case MARGIN_SCI_FOLDING:
+ EditFoldClick(SciCall_LineFromPosition(scn->position), scn->modifiers);
+ break;
+ case MARGIN_SCI_BOOKMRK:
+ EditBookmarkClick(SciCall_LineFromPosition(scn->position), scn->modifiers);
+ break;
+ case MARGIN_SCI_LINENUM:
+ default:
+ break;
+ }
+ break;
+
+
+ case SCN_MARGINRIGHTCLICK:
break;
- // ~~~ Not used in Windows ~~~
- // see: CMD_ALTUP / CMD_ALTDOWN
- //case SCN_KEY:
- // // Also see the corresponding patch in scintilla\src\Editor.cxx
- // FoldAltArrow(scn->ch, scn->modifiers);
- // break;
+
+ // ~~~ Not used in Windows ~~~
+ // see: CMD_ALTUP / CMD_ALTDOWN
+ //case SCN_KEY:
+ // // Also see the corresponding patch in scintilla\src\Editor.cxx
+ // FoldAltArrow(scn->ch, scn->modifiers);
+ // break;
case SCN_SAVEPOINTREACHED:
@@ -6973,6 +6989,7 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
UpdateMarginWidth();
break;
+
case SCN_URIDROPPED:
{
// see WM_DROPFILES
diff --git a/src/SciCall.h b/src/SciCall.h
index 02b8eeb69..d4b3444da 100644
--- a/src/SciCall.h
+++ b/src/SciCall.h
@@ -407,6 +407,7 @@ DeclareSciCallV2(SetMarginWidthN, SETMARGINWIDTHN, int, margin, int, pixelWidth)
DeclareSciCallV2(SetMarginMaskN, SETMARGINMASKN, int, margin, int, mask)
DeclareSciCallV2(SetMarginSensitiveN, SETMARGINSENSITIVEN, int, margin, bool, sensitive)
DeclareSciCallV2(SetMarginBackN, SETMARGINBACKN, int, margin, COLORREF, colour)
+DeclareSciCallV2(SetMarginCursorN, SETMARGINCURSORN, int, margin, int, cursor)
DeclareSciCallV2(SetFoldMarginColour, SETFOLDMARGINCOLOUR, bool, useSetting, COLORREF, colour)
DeclareSciCallV2(SetFoldMarginHiColour, SETFOLDMARGINHICOLOUR, bool, useSetting, COLORREF, colour)
DeclareSciCallV1(MarkerEnableHighlight, MARKERENABLEHIGHLIGHT, bool, flag)
diff --git a/src/Styles.c b/src/Styles.c
index 9a0231037..2cfa18558 100644
--- a/src/Styles.c
+++ b/src/Styles.c
@@ -1616,6 +1616,7 @@ void Style_SetMargin(HWND hwnd, int iStyle, LPCWSTR lpszStyle)
{
if (iStyle == STYLE_LINENUMBER) {
Style_SetStyles(hwnd, iStyle, lpszStyle, false); // line numbers
+ //~SciCall_SetMarginSensitiveN(MARGIN_SCI_LINENUM, true);
}
COLORREF clrFore = SciCall_StyleGetFore(STYLE_LINENUMBER);
@@ -1654,6 +1655,8 @@ void Style_SetMargin(HWND hwnd, int iStyle, LPCWSTR lpszStyle)
SciCall_MarkerSetBack(MARKER_NP3_BOOKMARK, bmkBack);
SciCall_MarkerSetAlpha(MARKER_NP3_BOOKMARK, alpha);
SciCall_SetMarginBackN(MARGIN_SCI_BOOKMRK, clrBack);
+ SciCall_SetMarginSensitiveN(MARGIN_SCI_BOOKMRK, true);
+ SciCall_SetMarginCursorN(MARGIN_SCI_BOOKMRK, SC_NP3_CURSORHAND);
// --- Code folding ---
diff --git a/src/VersionEx.h b/src/VersionEx.h
index be37d66c5..e5980a607 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 531
-#define VERSION_BUILD 2238
+#define VERSION_REV 602
+#define VERSION_BUILD 2239
#define SCINTILLA_VER 415+
#define ONIGURUMA_REGEX_VER 6.9.2
#define VERSION_PATCH ONIGURUMA