Результаты build 4746 весьма порадовали.
В их ключе и в развитие John Doe сделал, на мой взгляд, очередной полезный скрипт. Однако при испытании скрипта обнаружилось в т.ч. следующее.
RCtrlShift распознаётся как RCtrlShift. И LRCtrlShift тоже распознаётся как RCtrlShift (нажимаю оба Контрола и Левый или Правый Шифт, затем отпускаю Шифт).
RAltShift распознаётся как RAltShift. И LRAltShift тоже распознаётся как RAltShift (нажимаю оба Альта и Левый или Правый Шифт, затем отпускаю Шифт).
Желательна бы дифференциация и этих сочетаний модификаторов тоже.
К распознаванию сочетания нескольких модификаторов
- John Doe
- Бюрократ
- Posts: 13860
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
К распознаванию сочетания нескольких модификаторов
Это совершенно нормально пока сам фар не распознаёт LCtrl+RCtrl и LAlt+RAlt.
Будет ли распознавать узнаем тут http://bugs.farmanager.com/view.php?id=2857#c14685
А пока вот вам warkaround: добавить к макросу на RAltShift condition проверяющий состояние LAlt.
Как-то так:
Code: Select all
condition=function() return band(Mouse.LastCtrlState,far.Flags.LEFT_ALT_PRESSED)==0 end;
К распознаванию сочетания нескольких модификаторов
Вполне поддерживаю просьбу по возможности сделать распознаваемыми сочетания LCtrl+RCtrl и LAlt+RAlt.
И, к слову сказать, полагаю их обозначения LRCtrl и LRAlt понятными и удобными.
И, к слову сказать, полагаю их обозначения LRCtrl и LRAlt понятными и удобными.
К распознаванию сочетания нескольких модификаторов
Спасибо.John Doe wrote:А пока вот вам warkaround: добавить к макросу на RAltShift condition проверяющий состояние LAlt.
Как-то так:Code: Select all
condition=function() return band(Mouse.LastCtrlState,far.Flags.LEFT_ALT_PRESSED)==0 end;
По аналогии сделал кондишен и к RCtrlShift. И сразу стало видно, что LRCtrlShift и LRAltShift сейчас попросту не распознаются.
К распознаванию сочетания нескольких модификаторов
Повесил макрос на оба контрола и шифт, прописав ключ как key="LCtrlRCtrlShift";
При отпускании шифта макрос не срабатывает. А при отпускании любого из контролов выдаёт сообщение об области, из которой был запущен, и о том как распознан ключ:
При отпускании шифта макрос не срабатывает. А при отпускании любого из контролов выдаёт сообщение об области, из которой был запущен, и о том как распознан ключ:
и с последующим отпусканием другого контрола и шифта выдаёт ещё одно сообщение:Disks
CtrlShift
Идентичная ситуация с двумя альтами и шифтом.Dialog
CtrlShift
- John Doe
- Бюрократ
- Posts: 13860
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
К распознаванию сочетания нескольких модификаторов
Нет такого в фаре. Считайте что вы написали LCtrlShift
Есть такое.
Но пока в фаре не заявлена поддержка LCtrl+RCtrl и LAlt+RAlt жаловаться не на что.
Для интереса сравните и убедитесь что сейчас RCtrlLCtrlShift то же самое что RCtrlShift, и при этом с при отпускании шифта макрос срабатывает.
К распознаванию сочетания нескольких модификаторов
Из записи в changelog`е: "Распознавать нажатия сочетаний нескольких модификаторов" я этого не вижу, там не перечислены конкретные сочетания. Вот я и пробую по-разному.
Не совсем то же самое. RCtrlShift срабатывает при отпускании и шифта, и котрола. А RCtrlLCtrlShift — только при отпускании шифта, но не контролов.Для интереса сравните и убедитесь что сейчас RCtrlLCtrlShift то же самое что RCtrlShift, и при этом с при отпускании шифта макрос срабатывает.
- John Doe
- Бюрократ
- Posts: 13860
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
К распознаванию сочетания нескольких модификаторов
Пробуйте lua:=mf.waitkey()
Всё остальное это несущественные особенности реализации.
К распознаванию сочетания нескольких модификаторов
Хорошо. Спасибо. Учту.John Doe wrote:Пробуйте lua:=mf.waitkey()
Всё остальное это несущественные особенности реализации
Но ведь любопытно, что LCtrlRCtrlShift срабатывает только при отпускании любого из котролов, но не шифта, а RCtrlLCtrlShift наоборот — только при отпускании шифта, но не контролов. И при этом оба ключа хоть и срабатывают не так, как ожидается, но и не указываются Фаром как нелегитимные. И, кстати, в данном случае запись ключа LRCtrlShift, имхо, выглядит более естественно.