Если например выбрать в истории просмотра/редактирования непоследний элемент, и снова нажать
AltF11, то курсор будет стоять этом самом элементе, но с одним нюансом: он будет отображён в самом низу списка, и о том, что ниже его есть и более новые элементы догадаться будет сложно.Аналогично и в истории папок (
AltF12), если выбирать элемент сочетанием ShiftEnter.Исправить это неудобство и призван данный макрос, при открытии меню он пытается позиционировать его так, чтобы были видны и нижние элементы.
Хотя по-хорошему это надо бы в фаре править.
Code: Select all
F = far.Flags
histories = { win.Uuid(far.Guids[id]), id for id in *{"HistoryEditViewId", "HistoryFolderId"} }
Event
id:"E277B47A-D17A-4279-8FE7-4E47704D01EE"
group:"DialogEvent"
description:"Fix positioning in histories: ensure that last item is visible"
action: (Event,Param) ->
if Event==F.DE_DLGPROCEND
{:hDlg,:Msg,:Param1,:Param2} = Param
if Msg==F.DN_INITDIALOG
if info = hDlg\GetDialogInfo!
if histories[info.Id]
{:SelectPos} = hDlg\ListGetCurPos 1
hDlg\ListSetCurPos 1, :SelectPos,TopPos:SelectPos
nil