mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
+fix: menu View: correct positioning of active marks
This commit is contained in:
parent
3a11c67242
commit
23df26b740
@ -4065,6 +4065,7 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
bool const mrs = Sci_IsMultiOrRectangleSelection();
|
||||
bool const te = Sci_IsDocEmpty();
|
||||
bool const mls = Sci_IsSelectionMultiLine();
|
||||
bool const moe = IsMarkOccurrencesEnabled();
|
||||
//bool const lfl = Flags.bHugeFileLoadState;
|
||||
|
||||
//~bool const sav = Globals.bCanSaveIniFile; ~ done by UpdateSaveSettingsCmds()
|
||||
@ -4282,19 +4283,6 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
EnableCmd(hmenu, IDM_VIEW_FONT, !IsWindow(Globals.hwndDlgCustomizeSchemes));
|
||||
EnableCmd(hmenu, IDM_VIEW_CURRENTSCHEME, !IsWindow(Globals.hwndDlgCustomizeSchemes));
|
||||
|
||||
EnableCmd(hmenu, IDM_VIEW_FOLDING, FocusedView.CodeFoldingAvailable && !FocusedView.HideNonMatchedLines);
|
||||
bool const fd = (FocusedView.CodeFoldingAvailable && FocusedView.ShowCodeFolding);
|
||||
CheckCmd(hmenu, IDM_VIEW_FOLDING, fd);
|
||||
EnableCmd(hmenu, IDM_VIEW_TOGGLEFOLDS, !te && fd);
|
||||
EnableCmd(hmenu, CMD_FOLDJUMPDOWN, !te && fd);
|
||||
EnableCmd(hmenu, CMD_FOLDJUMPUP, !te && fd);
|
||||
EnableCmd(hmenu, CMD_FOLDCOLLAPSE, !te && fd);
|
||||
EnableCmd(hmenu, CMD_FOLDEXPAND, !te && fd);
|
||||
bool const bF = (SC_FOLDLEVELBASE < (SciCall_GetFoldLevel(iCurLine) & SC_FOLDLEVELNUMBERMASK));
|
||||
bool const bH = (SciCall_GetFoldLevel(iCurLine) & SC_FOLDLEVELHEADERFLAG);
|
||||
EnableCmd(hmenu, IDM_VIEW_TOGGLE_CURRENT_FOLD, !te && fd && (bF || bH));
|
||||
CheckCmdPos(GetSubMenu(GetMenu(Globals.hwndMain), 2), 20, fd);
|
||||
|
||||
CheckCmd(hmenu, IDM_VIEW_USE2NDDEFAULT, Style_GetUse2ndDefault());
|
||||
|
||||
CheckCmd(hmenu, IDM_VIEW_READONLY, ro);
|
||||
@ -4306,8 +4294,9 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
CheckCmd(hmenu, IDM_VIEW_CHGHIST_TOGGLE_MARGIN, SciCall_GetMarginWidthN(MARGIN_SCI_CHGHIST) > 0);
|
||||
CheckCmd(hmenu, IDM_VIEW_CHASING_DOCTAIL, FileWatching.MonitoringLog);
|
||||
|
||||
CheckCmd(hmenu, IDM_VIEW_MARKOCCUR_ONOFF, IsMarkOccurrencesEnabled());
|
||||
CheckCmd(hmenu, IDM_VIEW_MARKOCCUR_ONOFF, moe);
|
||||
CheckCmd(hmenu, IDM_VIEW_MARKOCCUR_BOOKMARKS, Settings.MarkOccurrencesBookmark);
|
||||
EnableCmd(hmenu, IDM_VIEW_MARKOCCUR_BOOKMARKS, moe);
|
||||
CheckCmd(hmenu, IDM_VIEW_MARKOCCUR_VISIBLE, Settings.MarkOccurrencesMatchVisible);
|
||||
CheckCmd(hmenu, IDM_VIEW_MARKOCCUR_CASE, Settings.MarkOccurrencesMatchCase);
|
||||
|
||||
@ -4331,24 +4320,26 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
CheckCmd(hmenu, IDM_VIEW_HYPERLINKHOTSPOTS, Settings.HyperlinkHotspot);
|
||||
|
||||
int const _SUB_MNU_2 = 8; // menu:View -> base for parent of sub-menus (adj. offset accordingly)
|
||||
|
||||
int const chState = SciCall_GetChangeHistory();
|
||||
assert(chState == Settings.ChangeHistoryMode);
|
||||
i = IDM_VIEW_CHGHIST_NONE;
|
||||
i += (chState & SC_CHANGE_HISTORY_MARKERS) ? 1 : 0;
|
||||
i += (chState & SC_CHANGE_HISTORY_INDICATORS) ? 2 : 0;
|
||||
CheckMenuRadioItem(hmenu, IDM_VIEW_CHGHIST_NONE, IDM_VIEW_CHGHIST_ALL, i, MF_BYCOMMAND);
|
||||
CheckCmdPos(GetSubMenu(GetMenu(Globals.hwndMain), 2), 8, (i != IDM_VIEW_CHGHIST_NONE));
|
||||
CheckCmdPos(GetSubMenu(hmenu, 2), _SUB_MNU_2 + 0, (i != IDM_VIEW_CHGHIST_NONE));
|
||||
|
||||
i = IDM_VIEW_COLORDEFHOTSPOTS + Settings.ColorDefHotspot;
|
||||
CheckMenuRadioItem(hmenu, IDM_VIEW_COLORDEFHOTSPOTS, IDM_VIEW_COLOR_BGRA, i, MF_BYCOMMAND);
|
||||
CheckCmdPos(GetSubMenu(GetMenu(Globals.hwndMain), 2), 11, IsColorDefHotspotEnabled());
|
||||
CheckCmdPos(GetSubMenu(hmenu, 2), _SUB_MNU_2 + 4, IsColorDefHotspotEnabled());
|
||||
|
||||
CheckCmd(hmenu, IDM_VIEW_UNICODE_POINTS, Settings.HighlightUnicodePoints);
|
||||
CheckCmd(hmenu, IDM_VIEW_MATCHBRACES, Settings.MatchBraces);
|
||||
|
||||
i = IDM_VIEW_HILITCURLN_NONE + Settings.HighlightCurrentLine;
|
||||
CheckMenuRadioItem(hmenu, IDM_VIEW_HILITCURLN_NONE, IDM_VIEW_HILITCURLN_FRAME, i, MF_BYCOMMAND);
|
||||
CheckCmdPos(GetSubMenu(GetMenu(Globals.hwndMain), 2), 14, (i != IDM_VIEW_HILITCURLN_NONE));
|
||||
CheckCmdPos(GetSubMenu(hmenu, 2), _SUB_MNU_2 + 7, (i != IDM_VIEW_HILITCURLN_NONE));
|
||||
|
||||
#ifdef D_NP3_WIN10_DARK_MODE
|
||||
EnableCmd(hmenu, IDM_VIEW_WIN_DARK_MODE, IsDarkModeSupported());
|
||||
@ -4360,7 +4351,7 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
int const mnuMain = 2;
|
||||
int const mnuSubOcc = 15;
|
||||
int const mnuSubOcc = _SUB_MNU_2 + 8;
|
||||
int const mnuSubSubWord = 6;
|
||||
|
||||
if (Settings.MarkOccurrencesMatchWholeWords) {
|
||||
@ -4371,7 +4362,7 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
i = IDM_VIEW_MARKOCCUR_WNONE;
|
||||
}
|
||||
CheckMenuRadioItem(hmenu, IDM_VIEW_MARKOCCUR_WNONE, IDM_VIEW_MARKOCCUR_CURRENT, i, MF_BYCOMMAND);
|
||||
CheckCmdPos(GetSubMenu(GetSubMenu(GetMenu(Globals.hwndMain), mnuMain), mnuSubOcc), mnuSubSubWord, (i != IDM_VIEW_MARKOCCUR_WNONE));
|
||||
CheckCmdPos(GetSubMenu(GetSubMenu(hmenu, mnuMain), mnuSubOcc), mnuSubSubWord, (i != IDM_VIEW_MARKOCCUR_WNONE));
|
||||
|
||||
i = IsMarkOccurrencesEnabled();
|
||||
EnableCmd(hmenu, IDM_VIEW_MARKOCCUR_VISIBLE, i);
|
||||
@ -4379,8 +4370,24 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
EnableCmd(hmenu, IDM_VIEW_MARKOCCUR_WNONE, i);
|
||||
EnableCmd(hmenu, IDM_VIEW_MARKOCCUR_WORD, i);
|
||||
EnableCmd(hmenu, IDM_VIEW_MARKOCCUR_CURRENT, i);
|
||||
EnableCmdPos(GetSubMenu(GetSubMenu(GetMenu(Globals.hwndMain), mnuMain), mnuSubOcc), mnuSubSubWord, i);
|
||||
CheckCmdPos(GetSubMenu(GetMenu(Globals.hwndMain), mnuMain), mnuSubOcc, i);
|
||||
EnableCmdPos(GetSubMenu(GetSubMenu(hmenu, mnuMain), mnuSubOcc), mnuSubSubWord, i);
|
||||
CheckCmdPos(GetSubMenu(hmenu, mnuMain), mnuSubOcc, i);
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
bool const fd = (FocusedView.CodeFoldingAvailable && FocusedView.ShowCodeFolding);
|
||||
EnableCmd(hmenu, IDM_VIEW_FOLDING, FocusedView.CodeFoldingAvailable && !FocusedView.HideNonMatchedLines);
|
||||
CheckCmd(hmenu, IDM_VIEW_FOLDING, fd);
|
||||
EnableCmd(hmenu, IDM_VIEW_TOGGLEFOLDS, !te && fd);
|
||||
EnableCmd(hmenu, CMD_FOLDJUMPDOWN, !te && fd);
|
||||
EnableCmd(hmenu, CMD_FOLDJUMPUP, !te && fd);
|
||||
EnableCmd(hmenu, CMD_FOLDCOLLAPSE, !te && fd);
|
||||
EnableCmd(hmenu, CMD_FOLDEXPAND, !te && fd);
|
||||
bool const bF = (SC_FOLDLEVELBASE < (SciCall_GetFoldLevel(iCurLine) & SC_FOLDLEVELNUMBERMASK));
|
||||
bool const bH = (SciCall_GetFoldLevel(iCurLine) & SC_FOLDLEVELHEADERFLAG);
|
||||
EnableCmd(hmenu, IDM_VIEW_TOGGLE_CURRENT_FOLD, !te && fd && (bF || bH));
|
||||
CheckCmdPos(GetSubMenu(hmenu, 2), _SUB_MNU_2 + 14, fd);
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user