+ fix: enable menu for aligning lines only if multiple lines are selected

This commit is contained in:
Rainer Kottenhoff 2018-10-22 13:51:30 +02:00
parent fe788d4f1b
commit 19144c7974
2 changed files with 12 additions and 15 deletions

View File

@ -2621,16 +2621,14 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
{
UNUSED(lParam);
//DocPos p;
bool b,e,s;
HMENU hmenu = (HMENU)wParam;
HMENU const hmenu = (HMENU)wParam;
bool const ro = SciCall_GetReadOnly();
DocPos const iCurPos = SciCall_GetCurrentPos();
DocLn const iCurLine = SciCall_LineFromPosition(iCurPos);
int i = (int)StringCchLenW(Globals.CurrentFile,COUNTOF(Globals.CurrentFile));
EnableCmd(hmenu,IDM_FILE_REVERT,i);
EnableCmd(hmenu, CMD_RELOADASCIIASUTF8, i);
EnableCmd(hmenu, CMD_RELOADFORCEDETECTION, i);
@ -2695,10 +2693,11 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
EnableCmd(hmenu,IDM_EDIT_UNDO,SciCall_CanUndo() && !ro);
EnableCmd(hmenu,IDM_EDIT_REDO,SciCall_CanRedo() && !ro);
s = SciCall_IsSelectionEmpty();
e = (SciCall_GetTextLength() == 0);
b = SciCall_CanPaste();
bool const s = SciCall_IsSelectionEmpty();
bool const e = (SciCall_GetTextLength() == 0);
bool const b = SciCall_CanPaste();
bool const mls = Sci_IsMultiLineSelection();
EnableCmd(hmenu,IDM_EDIT_CUT, !e && !ro); // allow Ctrl-X w/o selection
EnableCmd(hmenu,IDM_EDIT_COPY, !e); // allow Ctrl-C w/o selection
@ -2739,10 +2738,8 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
EnableCmd(hmenu, IDM_EDIT_COMPRESS_BLANKS, !ro);
EnableCmd(hmenu, IDM_EDIT_MODIFYLINES, !ro);
EnableCmd(hmenu, IDM_EDIT_ALIGN, !ro);
EnableCmd(hmenu, IDM_EDIT_SORTLINES,
(SciCall_LineFromPosition(SciCall_GetSelectionEnd()) -
SciCall_LineFromPosition(SciCall_GetSelectionStart())) >= 1);
EnableCmd(hmenu, IDM_EDIT_ALIGN, mls && !ro);
EnableCmd(hmenu, IDM_EDIT_SORTLINES, mls && !ro);
//EnableCmd(hmenu,IDM_EDIT_COLUMNWRAP,i /*&& IsWindowsNT()*/);
EnableCmd(hmenu,IDM_EDIT_SPLITLINES,!s && !ro);
@ -2797,8 +2794,6 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
EnableCmd(hmenu, IDM_EDIT_INSERT_GUID, !ro);
e = (SciCall_GetTextLength() == 0);
EnableCmd(hmenu,IDM_EDIT_FIND, !e);
EnableCmd(hmenu,IDM_EDIT_SAVEFIND, !e);
EnableCmd(hmenu,IDM_EDIT_FINDNEXT, !e);

View File

@ -466,7 +466,9 @@ DeclareSciCallR0(IsIMEModeCJK, ISIMEMODECJK, bool)
DeclareSciCallR0(IsSelectionEmpty, GETSELECTIONEMPTY, bool)
DeclareSciCallR0(IsSelectionRectangle, SELECTIONISRECTANGLE, bool)
#define Sci_IsSingleLineSelection() (SciCall_LineFromPosition(SciCall_GetCurrentPos()) == SciCall_LineFromPosition(SciCall_GetAnchor()))
#define Sci_IsSingleLineSelection() (SciCall_LineFromPosition(SciCall_GetSelectionEnd()) == SciCall_LineFromPosition(SciCall_GetSelectionStart()))
#define Sci_IsMultiLineSelection() ((SciCall_LineFromPosition(SciCall_GetSelectionEnd()) - SciCall_LineFromPosition(SciCall_GetSelectionStart())) >= 1)
#define Sci_IsForwardSelection() (SciCall_GetAnchor() <= SciCall_GetCurrentPos())
#define Sci_GetEOLLen() ((SciCall_GetEOLMode() == SC_EOL_CRLF) ? 2 : 1)