View Issue Details

IDProjectCategoryView StatusLast Update
0001144Far ManagerPanelpublic2009-11-03 14:34
ReporterMaximusAssigned Tozg 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformx86OSWindowsOS VersionXP SP2
Product Version2.0 
Target VersionFixed in Version2.0 
Summary0001144: Ctrl-G обрабатывает каждый выделенный файл несколько раз
DescriptionЕсли во время выполнения Ctrl-G на панели появляется файла, расположенный по сортировке перед обрабатываемым - то выделенный файл будет обработан более одного раза.
Steps To ReproduceИмеем:
0) 2.0 build 1183 x86
1) панель с двумя файлами *.txt, сортировка по имени
2) плагин PanelTabsW 1.0.4
Выделяем все *.wav и запускаем Ctrl-G-> copy !.! !.1
Получаем вывод
====================================
E:\Temp\3>copy objects.txt objects.1
1 file(s) copied.


E:\Temp\3>copy objtree.txt objtree.1
1 file(s) copied.


E:\Temp\3>copy objtree.txt objtree.1
1 file(s) copied.


E:\Temp\3>copy objtree.txt objtree.1
1 file(s) copied.
====================================
Резюме: для каждого выделенного файла команда может быть выполнена намного больше одного раза

Причина: PanelTabs вызывает через Synchro FCTL_GETPANELINFO, который принудительно обновляет панель.
В результате при GetSelName даже увеличение (GetSelPosition++) не помещает "курсор" на следующий файл,
а остается на предыдущем (т.к. перед ним уже появился новый файл).

Лечится: полным запретом обновления панели во время FileList::ApplyCommand().
Additional Information091030.zip - патч
TagsNo tags attached.
Build1192

Relationships

has duplicate 0000951 closedalexy Far Manager Far 2 пытается перерисовывать панели во время выполнения Ctrl-G (зачем?) 
related to 0000983 closedalexy Far Manager 1.7x Обрабатываются не все файлы в "Apply To" (Ctrl-G) при использовании del, move и т.д. 

Activities

Maximus

2009-10-30 00:28

reporter  

091030.zip (693 bytes)

alexy

2009-10-30 00:43

administrator   bugnote:0004375

Вадим, глянь на это. Может я что то не понимаю, но почему вообще во время работы CtrlG вызывается Synchro плагина? Выходит эдакая несинхронизированость.

alexy

2009-10-30 00:50

administrator   bugnote:0004376

Ахэм, там CheckForEsc() внутри ApplyCommand().
Этот момент может наверно вызвать и другие не предвиденные проблемы во всех тех местах где этот CheckForEsc() вызывают.
Может вырубать Synchro на время CheckForEsc()?

alexy

2009-10-30 01:56

administrator   bugnote:0004377

Ну и ещё не очень понятно зачем нужно обновление (перечитывание) панели при FCTL_GETPANELINFO.

zg

2009-11-01 18:02

developer   bugnote:0004423

1192.
решение как мне кажется на данный момент правильное. хотя ещё правильнее конечно сначала достать все выделенные файлы, а потом уже что-то делать.

> Ну и ещё не очень понятно зачем нужно обновление (перечитывание) панели при FCTL_GETPANELINFO.
в принципе для актуализации ItemsNumber, SelectedItemsNumber, CurrentItem, TopPanelItem.
> Этот момент может наверно вызвать и другие не предвиденные проблемы во всех тех местах где этот CheckForEsc() вызывают.
именно в этих местах проблемы надо чинить как мне кажется.

Issue History

Date Modified Username Field Change
2009-10-30 00:28 Maximus New Issue
2009-10-30 00:28 Maximus File Added: 091030.zip
2009-10-30 00:43 alexy Note Added: 0004375
2009-10-30 00:43 alexy Assigned To => zg
2009-10-30 00:43 alexy Status new => assigned
2009-10-30 00:50 alexy Note Added: 0004376
2009-10-30 01:56 alexy Note Added: 0004377
2009-10-30 13:27 alexy Relationship added related to 0000983
2009-11-01 18:02 zg Note Added: 0004423
2009-11-03 14:34 alexy Build => 1192
2009-11-03 14:34 alexy Status assigned => closed
2009-11-03 14:34 alexy Fixed in Version => 2.0
2009-11-03 14:34 alexy Resolution open => fixed
2009-11-20 13:13 alexy Relationship added has duplicate 0000951