Косметические дефекты позиционирования в отфильтрованном списке Topic is solved

Здесь можно сообщить о найденных багах в Far.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Косметические дефекты позиционирования в отфильтрованном списке

Post by John Doe »

Для примера можно использовать список истории AltF11 (он обычно многократно превышает высоту окна, поэтому годится для демонстрации))

Обычно список всегда заполняет доступное пространство, т.е. если мы переместимся на последний его элемент, то этот элемент будет в самом низу.

Однако если в списке присутствуют скрытые элементы, то всё становится необычно: последний элемент больше не в конце списка, это хорошо видно при переходе в конец с помощью Ctrl-End, или (в замкнутом списке) с первого элемента на последний по клавише Up.

Даже после отключения фильтра дефекты сохраняются.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Косметические дефекты позиционирования в отфильтрованном списке

Post by DrKnS »

John Doe wrote: Sun 28 Jul, 2019 14:33 последний элемент больше не в конце списка, это хорошо видно
А где? (У меня в конце, мне не видно.)
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Косметические дефекты позиционирования в отфильтрованном списке

Post by John Doe »

DrKnS wrote: Sun 28 Jul, 2019 15:09 А где? (У меня в конце, мне не видно.)
Действия в простейшем варианте такие:
- отфильтровать минимально, чтобы видимая область окна оставалась заполнена
- находясь на первом элементе нажать Up

Результат:
- из всего списка на экране отображается одна строка, и находится она в верхней позиции
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Косметические дефекты позиционирования в отфильтрованном списке

Post by zg »

у меня тоже не воспроизводится. макросов никаких нет?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Косметические дефекты позиционирования в отфильтрованном списке

Post by John Doe »

Да, действительно, без плагинов не вопроизводится, буду искать у себя.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Косметические дефекты позиционирования в отфильтрованном списке

Post by John Doe »

На воспроизведение влиял скрипт, скрывающий сепараторы: http://forum.farmanager.com/viewtopic.p ... 47#p129347

Для простоты, вместо него можно использовать макрос:

Code: Select all

local F = far.Flags

Macro {
  area="Menu"; key="F1";
  action=function()
    local hDlg = far.AdvControl(F.ACTL_GETWINDOWINFO).Id
    local Item = hDlg:send(F.DM_GETDLGITEM,1)
    if Item and Item[1]==F.DI_LISTBOX then
      for i,v in ipairs(Item[6]) do
        if bit64.band(v.Flags,F.LIF_SEPARATOR)~=0 then
          v.Index = i
          v.Flags = bit64.bor(v.Flags,F.LIF_HIDDEN)
          hDlg:send(F.DM_LISTUPDATE,1,v)
        end
      end
    end
  end;
}
На мой взгляд код вполне честный, и ошибка в фаре.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Косметические дефекты позиционирования в отфильтрованном списке

Post by zg »

5440.
Post Reply

Return to “Глюки и баги”