К распознаванию сочетания нескольких модификаторов
Posted: Tue 02 Aug, 2016 16:48
by sToLp
Результаты build 4746 весьма порадовали.
В их ключе и в развитие John Doe сделал, на мой взгляд, очередной полезный скрипт. Однако при испытании скрипта обнаружилось в т.ч. следующее.
RCtrlShift распознаётся как RCtrlShift. И LRCtrlShift тоже распознаётся как RCtrlShift (нажимаю оба Контрола и Левый или Правый Шифт, затем отпускаю Шифт).
RAltShift распознаётся как RAltShift. И LRAltShift тоже распознаётся как RAltShift (нажимаю оба Альта и Левый или Правый Шифт, затем отпускаю Шифт).
Желательна бы дифференциация и этих сочетаний модификаторов тоже.
К распознаванию сочетания нескольких модификаторов
Posted: Tue 02 Aug, 2016 17:07
by John Doe
sToLp wrote: И LRAltShift тоже распознаётся как RAltShift
Macro { description="LCtrlRCtrlShift проба (sToLp)";
-- area="Common";
-- Menu - временно отключена
area="Other Shell Viewer Editor Dialog Search Disks MainMenu Help Info QView Tree FindFolder UserMenu ShellAutoCompletion DialogAutoCompletion";
key="LCtrlRCtrlShift";
priority=40;
id="E160EE51-0E99-4590-9B75-A47ECC5AE35B";
action=function()
far.Message(mf.akey(1,1),Area.Current)
end; }
При отпускании шифта макрос не срабатывает. А при отпускании любого из контролов выдаёт сообщение об области, из которой был запущен, и о том как распознан ключ:
Disks
CtrlShift
и с последующим отпусканием другого контрола и шифта выдаёт ещё одно сообщение:
Dialog
CtrlShift
Идентичная ситуация с двумя альтами и шифтом.
К распознаванию сочетания нескольких модификаторов
Posted: Wed 03 Aug, 2016 10:52
by John Doe
sToLp wrote: LCtrlRCtrlShift
Нет такого в фаре. Считайте что вы написали LCtrlShift
sToLp wrote: При отпускании шифта макрос не срабатывает.
Есть такое.
Но пока в фаре не заявлена поддержка LCtrl+RCtrl и LAlt+RAlt жаловаться не на что.
Для интереса сравните и убедитесь что сейчас RCtrlLCtrlShift то же самое что RCtrlShift, и при этом с при отпускании шифта макрос срабатывает.
К распознаванию сочетания нескольких модификаторов
Posted: Wed 03 Aug, 2016 11:18
by sToLp
John Doe wrote:
sToLp wrote: LCtrlRCtrlShift
Нет такого в фаре
Из записи в changelog`е: "Распознавать нажатия сочетаний нескольких модификаторов" я этого не вижу, там не перечислены конкретные сочетания. Вот я и пробую по-разному.
Для интереса сравните и убедитесь что сейчас RCtrlLCtrlShift то же самое что RCtrlShift, и при этом с при отпускании шифта макрос срабатывает.
Не совсем то же самое. RCtrlShift срабатывает при отпускании и шифта, и котрола. А RCtrlLCtrlShift — только при отпускании шифта, но не контролов.
К распознаванию сочетания нескольких модификаторов
Posted: Wed 03 Aug, 2016 11:23
by John Doe
sToLp wrote: там не перечислены конкретные сочетания. Вот я и пробую по-разному.
Пробуйте lua:=mf.waitkey()
Всё остальное это несущественные особенности реализации.
К распознаванию сочетания нескольких модификаторов
Posted: Wed 03 Aug, 2016 11:40
by sToLp
John Doe wrote:Пробуйте lua:=mf.waitkey()
Всё остальное это несущественные особенности реализации
Хорошо. Спасибо. Учту.
Но ведь любопытно, что LCtrlRCtrlShift срабатывает только при отпускании любого из котролов, но не шифта, а RCtrlLCtrlShift наоборот — только при отпускании шифта, но не контролов. И при этом оба ключа хоть и срабатывают не так, как ожидается, но и не указываются Фаром как нелегитимные. И, кстати, в данном случае запись ключа LRCtrlShift, имхо, выглядит более естественно.