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