Улучшение позиционирования при открытии историй

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Улучшение позиционирования при открытии историй

Post by John Doe »

Реализация https://bugs.farmanager.com/view.php?id=2690

Если например выбрать в истории просмотра/редактирования непоследний элемент, и снова нажать 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
Last edited by John Doe on Tue 27 May, 2025 20:18, edited 1 time in total.
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Обсуждение макросов”