View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000881 | Far Manager | Macro | public | 2009-05-27 11:09 | 2012-03-28 10:56 |
Reporter | JohnDoe | Assigned To | vskirdin | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Fixed in Version | 3.0 | ||||
Summary | 0000881: Неправильная работа $AKey | ||||
Description | http://forum.farmanager.com/viewtopic.php?p=44873#p44873 | ||||
Steps To Reproduce | 1. необходимо минимальный набор плагинов PlugMenu 2. необходимо минимальный набор макросов [HKEY_CURRENT_USER\Software\Far2\KeyMacros\Dialog\Enter] "Sequence"="$MMode 1 $AKey" "DisableOutput"=dword:00000001 3. последовательность действий (как то, а) нажать это б) сделать то с) видим не то что надо...) far.exe /p PlugMenu F11 Enter Видим что Enter проскочил в панели. т.е. произойдёт запуск файла или смена директории | ||||
Tags | No tags attached. | ||||
Build | 2566 | ||||
|
Max Rusov Ср 27 май, 2009 11:14 Плагин PlugMenu по нажатию Enter постит макрос типа: F11 $if(Menu.Select("ИмяПлагина") > 0) $MMode 1 Enter $else Esc $end т.е. чтобы выполнить команду плагина зовется стандартный диалог F11. Если я правильно понимаю ход вещей, то получается что изнутри одного макроса постится другой. Может при этом что-то ломается... |
|
В Far 1.75 баг не проявляется |
|
"ИмяПлагина" - это че? |
|
PlugMenu выдаёт список плагинов. Мы выбираем из списка какой-то плагин "ИмяПлагина", и жмём Enter. PlugMenu в ответ постит свой макрос. И вот как-то между собой 2 макроса взаимодейтствуют странно. |
|
чей-то недопонимаю... в нормальном режиме что должно быть? что ожидается? и точно одного этого плагина достаточно? |
|
1) При нажатии Enter cрабатывает макрос из реестра- "$MMode 1 $AKey" и передаёт Enter дальше. 2) PlugMenu постит макрос для выбора плагина (в данном случае он выбирает сам себя) F11 $if(Menu.Select("Plugin commands") > 0) $MMode 1 Enter $else Esc $end В нормальном режиме Enter никак не может возникнуть в панелях. |
|
>и точно одного этого плагина достаточно? Точно Уточню последовательность действий: не "F11 Enter", а "F11 Enter Enter" "DisableOutput"=dword:00000001 - не влияет, можно убрать из условий |
|
Так, я думаю опция "NoSendKeysToPlugins" спасет отцов... [HKEY_CURRENT_USER\Software\Far\KeyMacros\Common\F11] "Sequence"="F11 m" "Description"="Advanced Plugin Menu" "DisableOutput"=dword:1 "NoSendKeysToPlugins"=dword:00000001 [HKEY_CURRENT_USER\Software\Far\KeyMacros\Dialog\Enter] "Sequence"="$MMode 1 $AKey" "DisableOutput"=dword:00000001 "NoSendKeysToPlugins"=dword:00000001 |
|
почему так - объяснять долго,но пока это так |
|
Ага. Вот почему это не проявлялось в far 1.75... Дело в том, что на Enter эта опция всё время у меня и стояла. Только в far 1.75 она работает, а в far 2 - нет |
|
В общем тикет надо переформулировать в "NoSendKeysToPlugins не работает в Far 2" Кстати, нельзя ли разжевать подробнее тайный смысл этой опции? Никогда её толком не понимал, и в хелпе нет никаких примеров. |
|
в плане работы с NoSendKeysToPlugins разницы в сорцах между 1.7 и 2.0 нет. |
|
>Так, я думаю опция "NoSendKeysToPlugins" спасет отцов... Она спасает отцов только в 1.75. Без неё глючит, с ней - порядок В 2.0 разницы нет - опция не влияет. Глючит. Вывод: или в 2.0 опция не работает, или дело не в ней |
|
в 1.7х фича паразитировала на функции OpenPlugin в 2.х это "обесточили" (hint: CurPluginItem) |
|
CurPluginItem в Писании не упоминается, а исходники читать мы не научены... |
|
это не для тебя :-) |
|
трабла на месте? если да - поподробнее |
|
Трабла на месте, воспроизводится как в 2.x, так и в 3.x: http://conemu-maximus5.googlecode.com/files/far3.2208bis.x86.x64.7z http://conemu-maximus5.googlecode.com/files/Far3Wrap.1.20.(2204).7z http://far-plugins.googlecode.com/files/UCharMap.v5.rar Макрос на Enter: mmode(1,2) $AKey Вызываем Unicode Charmap и жмём Enter. В результате Enter "проваливается" в панель, т.е. помимо действия выполняемого плагином (вставка символа в комстроку) происходит и неожиданное действие в панели (запуск файла или переход в директорию). P.S. Не зависит от NoSendKeysToPlugins. |
|
1. плагин от Far 2 2. двойку мы не обсуждаем 3. вопросы про врапер - не сюда, к автору плагина 4. вопросы про Far 3 bis - не сюда, к автору bis`а Приведи корректный пример, без промежуточных звеньев. |
|
99% что враппер и bis непричём, но в любом случае: тройки у меня нет, и плагинов под неё тоже. Как появятся - проверю, да. |
|
? |
|
JohnDoe, тройка появилась. Закрываем? |
|
Но проблемного плагина под тройку всё ещё нет. |
|
Новости есть? |
|
Всё по старому: Far 3.0 build 2556 x86, http://far-plugins.googlecode.com/files/PlugMenu.far3.1.17.rar <?xml version="1.0" encoding="UTF-8" ?> <farconfig version="3.0.2556"> <keymacros> <macro area="Dialog" key="Enter" flags="DisableOutput|NoSendKeysToPlugins"> <text>mmode(1,2) $AKey</text> </macro> </keymacros> </macros> </farconfig> far.exe /pPlugMenu Становимся на папку, жмём F11 Enter Enter Enter Enter Enter В процессе наблюдаем на панели смену папок. Без макроса этого не происходит! |
|
> Становимся на папку, жмём F11 Enter получаю пустое меню "Plugin commands (0)" что не так? |
|
Всё так. А теперь ещё Enter Enter Enter Enter [...] И процессе внимание НА ПАНЕЛИ. |
|
либо лыжи, либо... ты макрос для диалога привел? и где в "Plugin commands (0)" диалог? |
|
Впрочем пофигу - не вижу проблемы |
|
|
|
"Plugin commands (0)" это диалог. Только почему "(0)"? Должно быть как минимум 1. Приаттачил мультик. На мультике я выбираю пункт "Plugin commands", и далее жму только Enter. |
|
> Только почему "(0)"? Должно быть как минимум 1 покажи как сделать, чтобы был "1". FAR запускал только с PlugMenu.far3.1.17.rar |
|
|
|
|
|
Я ничего не делаю. Просто запускаю чистый фар с единственным макросом и единственным плагином. Приаттачил 2 скриншота. после нажатия F11 - Image 1 (меню плагинов с единственным плагином) после нажатия Enter - Image 2 (диалог плагина, со списком, и сам плагин в этом списке) Все дальнейшие нажатия Enter вызывают странный побочный эффект - Enter "проваливается" в панели (см. мультик) |
|
убил нах весь профиль импортнул твой макрос Far 2560/2561/2562/2563 добавил плагин из указанной ссылки запустил весь этот комбайн получил "Plugin commands (0)" мульт не смотрел, ибо... "Не верю" (c) :-) |
|
Это странно, потому что у меня всё-таки (1) Но может не это важно: макрос-то точно импортировался без ошибок? Потому что выше в тексте я пропустил таг <macros>, и при импорте должно было ругаться: XML Error (8,6): Error reading end tag. |
|
DialogEnter.xml (326 bytes)
<?xml version="1.0" encoding="UTF-8" ?> <farconfig version="3.0.2556"> <macros> <keymacros> <macro area="Dialog" key="Enter" flags="DisableOutput|NoSendKeysToPlugins"> <text>mmode(1,2) $AKey</text> </macro> </keymacros> </macros> </farconfig> |
|
> Потому что выше в тексте я пропустил таг <macros>, это такая тонкая издевка, да? :-) |
|
Честно говоря у меня похожее ощущение. Скриншоты, мультики, а всё бестолку. Между тем как багу уже много лет, и у других он прекрасно повторяется (см. форум) |
|
Я просил что? Как повторить. Ок. Ты мне дал макрос (занес его руками, так что отсутствие <macros> мне по барабану) и плагин, показал что ждать. Все как бы ништяк, но мы уперлись в некую траблу, которая мне не позволяет повторить баг. Пока он у меня не повторится, я нихрена ничего сделать не смогу (потому и говорю, что твои мультики+скрины все в пустую, для меня по крайней мере, сейчас). Выход в принципе есть - показывай какой-нить другой вариант повторения. |
|
|
|
Приложил тестовый набор, на котором проявляется ошибка. Распаковать, запустить Far, встать на любой каталог, F11, Enter Макрос бибикнет, откроется текущий плагин, а в панели произойдет вход в каталог. Последнее - проблема, про которую пишет JohnDoe (не уверен, что ошибка) Макрос такой: farmacro area="Dialog" key="Enter" {{ Beep(0x40) $AKey }} |
|
>> Только почему "(0)"? Должно быть как минимум 1 > покажи как сделать, чтобы был "1". Диалог при пустой? Как на приаттаченом image 3? Ctrl-H? |
|
|
|
Ctrl-H тут не причем. Собственно повторил, только... ...что-то не понял, как 0000466 (а точнее опция компиляции MANTIS_0000466) влияет на "(0)" и "(1)"... ну да не суть (не здесь). Ок. Теперь идем дальше. ...Как бы "нечестный" эксперимент. Вот смотрю в лог и вижу, что плагин фару послал макрос: "F11 $if(Menu.Select("Plugin commands", 2) > 0) Enter $else Esc $end" Вместе с $AKey получаем двойной Enter... Один из них как раз в и проваливается в панели... Если все еще считается багом, то давайте "честный" плагин :-) |
|
Не совсем так. По логике, $AKey - запускает последовательность действий, которая приводит к Post'у второго макроса, так что этот Enter он уже "выбран". Формально кажется, что при установленном на Enter макросе, типа приведенного выше, Far должен работать так, будто макроса нет, а получается - не совсем... |
|
PlugMenu.far3.1.17.rar что-то перехватывает? Это к тому, что я нажал Enter. Макрос еще не запустился (только проинициализировалась машина), плагин запостил макрос. Далее запускается макрос Enter=$AKey (т.к. он первый в очереди), но текущее окружение (текущий фрейм) уже панели, а не диалог. В итоге $AKey передается в панели. Панели меняют каталог как и положено, потом приходит очередь второго макроса (который постил плагин)... Кого будет к стенке ставить? |
|
так, хрень какая-то. к стенке судя по всему ставить ФАР. если $AKey непоследний, то все ок... т.е. 1) mmode(1,2) $AKey - бага 2) mmode(1,2) $AKey %a=1; - нет баги пошёл рыть... |
|
Срань то какая... Делаем так: 1. macro.cpp 2. в конце обоих функций KeyMacro::PostNewMacro вместо "==" делаем ">", т.е. if (Work.ExecLIBPos > Work.MacroWORK[0].BufferSize) Кто не "в танке" :-) юзают готовый тест - http://skirda-file.googlecode.com/files/m881.n1.7z |
|
Ушла проблема, спасибо. |
|
build 2566 |
Date Modified | Username | Field | Change |
---|---|---|---|
2009-05-27 11:09 | JohnDoe | New Issue | |
2009-05-27 11:11 | JohnDoe | Note Added: 0003293 | |
2009-05-27 11:13 | JohnDoe | Note Edited: 0003293 | |
2009-05-27 11:14 | JohnDoe | Note Added: 0003294 | |
2009-05-27 11:43 | JohnDoe | Note Edited: 0003293 | |
2009-05-27 12:20 | vskirdin | Note Added: 0003295 | |
2009-05-27 12:21 | vskirdin | Status | new => assigned |
2009-05-27 12:21 | vskirdin | Assigned To | => vskirdin |
2009-05-27 12:48 | JohnDoe | Note Added: 0003296 | |
2009-05-27 13:12 | JohnDoe | Note Edited: 0003296 | |
2009-05-27 14:56 | vskirdin | Note Added: 0003297 | |
2009-05-27 15:08 | JohnDoe | Note Added: 0003298 | |
2009-05-27 15:19 | JohnDoe | Note Added: 0003299 | |
2009-05-27 15:48 | vskirdin | Note Added: 0003303 | |
2009-05-27 15:48 | vskirdin | Status | assigned => feedback |
2009-05-27 15:49 | vskirdin | Note Added: 0003304 | |
2009-05-27 16:03 | JohnDoe | Note Added: 0003305 | |
2009-05-27 16:16 | JohnDoe | Note Edited: 0003305 | |
2009-05-27 16:19 | JohnDoe | Note Added: 0003306 | |
2009-06-03 16:27 | JohnDoe | Status | feedback => resolved |
2009-06-03 16:27 | JohnDoe | Resolution | open => reopened |
2009-06-03 16:29 | JohnDoe | Status | resolved => assigned |
2009-06-03 17:00 | vskirdin | Note Added: 0003486 | |
2009-06-03 21:35 | JohnDoe | Note Added: 0003489 | |
2010-09-27 17:45 | vskirdin | Note Added: 0005835 | |
2010-09-27 17:50 | JohnDoe | Note Added: 0005836 | |
2010-09-27 17:52 | JohnDoe | Note Edited: 0005836 | |
2010-09-27 18:31 | vskirdin | Note Added: 0005837 | |
2011-10-01 08:40 | vskirdin | Note Added: 0007800 | |
2011-10-03 14:54 | JohnDoe | Note Added: 0007820 | |
2011-10-03 14:57 | JohnDoe | Note Edited: 0007820 | |
2011-10-04 07:07 | vskirdin | Note Added: 0007823 | |
2011-10-04 09:11 | JohnDoe | Note Added: 0007825 | |
2011-12-23 11:09 | alexy | Note Added: 0008210 | |
2011-12-31 08:41 | vskirdin | Note Added: 0008291 | |
2011-12-31 08:41 | vskirdin | Status | assigned => feedback |
2012-01-02 09:57 | JohnDoe | Note Added: 0008303 | |
2012-01-02 09:57 | JohnDoe | Status | feedback => assigned |
2012-03-17 11:14 | vskirdin | Note Added: 0008780 | |
2012-03-17 11:14 | vskirdin | Status | assigned => feedback |
2012-03-20 08:43 | JohnDoe | Note Added: 0008786 | |
2012-03-20 08:43 | JohnDoe | Status | feedback => assigned |
2012-03-20 10:34 | vskirdin | Note Added: 0008789 | |
2012-03-20 11:39 | JohnDoe | Note Added: 0008790 | |
2012-03-20 11:40 | JohnDoe | Note Edited: 0008790 | |
2012-03-20 12:26 | vskirdin | Note Added: 0008792 | |
2012-03-20 12:32 | vskirdin | Note Added: 0008793 | |
2012-03-21 09:33 | JohnDoe | File Added: sshoot_000.fss | |
2012-03-21 09:42 | JohnDoe | Note Added: 0008798 | |
2012-03-21 09:45 | JohnDoe | Note Edited: 0008798 | |
2012-03-21 09:45 | JohnDoe | Note Edited: 0008798 | |
2012-03-22 06:30 | vskirdin | Note Added: 0008800 | |
2012-03-22 09:46 | JohnDoe | File Added: Image 1.png | |
2012-03-22 09:46 | JohnDoe | File Added: Image 2.png | |
2012-03-22 09:51 | JohnDoe | Note Added: 0008803 | |
2012-03-22 09:53 | JohnDoe | Note Edited: 0008803 | |
2012-03-22 10:35 | vskirdin | Note Added: 0008805 | |
2012-03-22 11:37 | JohnDoe | Note Added: 0008806 | |
2012-03-22 11:38 | JohnDoe | File Added: DialogEnter.xml | |
2012-03-22 13:17 | vskirdin | Note Added: 0008807 | |
2012-03-22 13:52 | JohnDoe | Note Added: 0008808 | |
2012-03-22 14:20 | vskirdin | Note Added: 0008809 | |
2012-03-22 15:06 | max rusov | File Added: FarTest.7z | |
2012-03-22 15:10 | max rusov | Note Added: 0008810 | |
2012-03-22 16:02 | JohnDoe | Note Added: 0008811 | |
2012-03-22 16:05 | JohnDoe | File Added: Image 3.png | |
2012-03-22 16:06 | JohnDoe | Note Edited: 0008811 | |
2012-03-23 06:43 | vskirdin | Note Added: 0008814 | |
2012-03-23 07:15 | max rusov | Note Added: 0008815 | |
2012-03-23 08:17 | vskirdin | Note Added: 0008816 | |
2012-03-23 08:47 | vskirdin | Note Added: 0008817 | |
2012-03-23 09:34 | vskirdin | Note Added: 0008818 | |
2012-03-23 12:13 | JohnDoe | Note Added: 0008819 | |
2012-03-23 13:12 | vskirdin | Note Added: 0008821 | |
2012-03-23 13:12 | vskirdin | Status | assigned => feedback |
2012-03-27 12:22 | JohnDoe | Status | feedback => resolved |
2012-03-28 10:56 | vskirdin | Build | => 2566 |
2012-03-28 10:56 | vskirdin | Status | resolved => closed |
2012-03-28 10:56 | vskirdin | Resolution | reopened => fixed |
2012-03-28 10:56 | vskirdin | Fixed in Version | => 3.0 |