far2l icon indicating copy to clipboard operation
far2l copied to clipboard

Problem with displaying information where is no access when starting Far2l

Open Zeroes1 opened this issue 9 months ago • 2 comments

Проблема с отображением информации где нет доступа при старте Far2l проверен far2l 2.6.5-2025-04-03-fb42f6f-beta TTY/GUI

Пример воспроизведения:

заходим например в /root введя пароль под ограниченной учётной записью сохраняем состояние (shift-f9) [по умолчанию у нас и так [x] Auto save setup] F10 - выходим из Far2l запускаем его заново видим запрос на повышение прав чтобы прочитать данные директории

Operation requires privileges elevation Enter sudo password Confirm by <Enter> Cancel by <Esc>

Если жмём Esc, то ложно начинает показываться "левая" информация: если у нас активная правая панель то ложно отображается информация - с пассивной панели если она отображаться должна если у нас активная левая панель то ложно отображается информация - домашняя директория Far2l

если у нас пассивная не отображается при старте, то сразу без запроса повышения прав будет ложно показываться домашняя директория Far2l.

воспроизведение проблемы 100%.

Как вариант: Ничего не отображать на панели, активность передаём другой панели, но при попытке перехода на неё опять запрашивать повышение прав. Но тогда непонятно что делать если должна восстановится одна панель...

Zeroes1 avatar Apr 18 '25 01:04 Zeroes1

@shmuz в Far2m почти всё тоже самое, только "левая информация" начинает отображаться если нажать CtrlR (принудительно перечитать директорию) а так типа правильно - ничего не отображается (т.е. пусто).

Zeroes1 avatar Apr 18 '25 01:04 Zeroes1

Навскидку, нужны фиксы / корректировка логики в CheckShortcutFolder() и TestFolder() — вызываются в данном случае из PrepareOptFolder().

Поведение с недоступными директориями, наверное, должно быть схожим с тем, как это делается для отсутствующих директорий, т.е. поднимаемся вверх по файловому дереву, пока не наткнёмся на доступную директорию, и открываем на панели её. По-хорошему, ещё и курсор спозиционировать на той директории, в которую не смогли попасть.

Кстати, TestFolder() возвращает TSTFLD_NOTEMPTY для директории с битами drw-rw-rw-. А не стоило бы в таком случае (когда x нет) также возвращать TSTFLD_NOTACCESS? 🤔

spnethw avatar Aug 08 '25 10:08 spnethw