Для примера можно использовать список истории AltF11 (он обычно многократно превышает высоту окна, поэтому годится для демонстрации))
Обычно список всегда заполняет доступное пространство, т.е. если мы переместимся на последний его элемент, то этот элемент будет в самом низу.
Однако если в списке присутствуют скрытые элементы, то всё становится необычно: последний элемент больше не в конце списка, это хорошо видно при переходе в конец с помощью Ctrl-End, или (в замкнутом списке) с первого элемента на последний по клавише Up.
Даже после отключения фильтра дефекты сохраняются.
Косметические дефекты позиционирования в отфильтрованном списке Topic is solved
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Косметические дефекты позиционирования в отфильтрованном списке
А где? (У меня в конце, мне не видно.)
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Косметические дефекты позиционирования в отфильтрованном списке
Действия в простейшем варианте такие:
- отфильтровать минимально, чтобы видимая область окна оставалась заполнена
- находясь на первом элементе нажать Up
Результат:
- из всего списка на экране отображается одна строка, и находится она в верхней позиции
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Косметические дефекты позиционирования в отфильтрованном списке
у меня тоже не воспроизводится. макросов никаких нет?
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Косметические дефекты позиционирования в отфильтрованном списке
Да, действительно, без плагинов не вопроизводится, буду искать у себя.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Косметические дефекты позиционирования в отфильтрованном списке
На воспроизведение влиял скрипт, скрывающий сепараторы: 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;
}