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

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

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

Post by John Doe » Sun 28 Jul, 2019 14:33

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

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

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

Даже после отключения фильтра дефекты сохраняются.

User avatar
DrKnS
Posts: 5401
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 230 times

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

Post by DrKnS » Sun 28 Jul, 2019 15:09

John Doe wrote:
Sun 28 Jul, 2019 14:33
последний элемент больше не в конце списка, это хорошо видно
А где? (У меня в конце, мне не видно.)

User avatar
John Doe
Бюрократ
Posts: 12458
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 192 times

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

Post by John Doe » Sun 28 Jul, 2019 17:08

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

Результат:
- из всего списка на экране отображается одна строка, и находится она в верхней позиции

User avatar
zg
zero-gravity
Posts: 5620
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 104 times
Contact:

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

Post by zg » Sun 28 Jul, 2019 17:11

у меня тоже не воспроизводится. макросов никаких нет?

User avatar
John Doe
Бюрократ
Posts: 12458
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 192 times

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

Post by John Doe » Sun 28 Jul, 2019 17:16

Да, действительно, без плагинов не вопроизводится, буду искать у себя.

User avatar
John Doe
Бюрократ
Posts: 12458
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 192 times

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

Post by John Doe » Mon 29 Jul, 2019 08:36

На воспроизведение влиял скрипт, скрывающий сепараторы: 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: 5620
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 104 times
Contact:

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

Post by zg » Wed 31 Jul, 2019 12:31

5440.

Post Reply

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