Не ловится Ctrl+Space в обработчике события EditorInput Topic is solved

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Не ловится Ctrl+Space в обработчике события EditorInput

Post by buniak_a_h »

Уважаемые знатоки! Объясните мне, это я делаю что-то не так, какая-то софтина мешает, так и задумано или баг.
  1. Сделайте следующий простенький скрипт, состоящий из одного макроса и одного ивента:
    1. local F = far.Flags
    2.  
    3. local Title = 'BAX.Test'
    4.  
    5. Macro{
    6.  
    7.   id="AA7AD888-E301-46D3-9CA9-24B3FE4E5383";
    8.  
    9.   area="Shell";
    10.  
    11.   key="CtrlAltF4";
    12.  
    13.   description = "CtrlSpace не ловится";
    14.  
    15.   action=function(data)
    16.  
    17.     editor.Editor(far.MkTemp('frc'), Title,nil,nil,nil,nil,
    18.  
    19.                   bor(F.EF_CREATENEW,F.EF_DELETEONCLOSE,F.EF_DISABLEHISTORY,F.EF_DISABLESAVEPOS,F.EF_NONMODAL),
    20.  
    21.                   1, panel.GetCmdLinePos(), win.GetConsoleCP() )
    22.  
    23.  
    24.  
    25.   end;
    26.  
    27. }
    28.  
    29. ---------------------------
    30.  
    31. Event {
    32.  
    33.   id = "F4418712-95AE-4BC5-A0E1-9DBE34736774";
    34.  
    35.   group       = "EditorInput";
    36.  
    37.   description = "CtrlSpace не ловится";
    38.  
    39.   condition = function(Rec)
    40.  
    41.     if editor.GetTitle() == Title then
    42.  
    43.       local key = far.InputRecordToName(Rec)
    44.  
    45.       return key and ((key:gsub('[LR]?Shift','')):gsub('[LR]?Alt','')):gsub('[LR]?Ctrl','') ~= ''
    46.  
    47.     end
    48.  
    49.   end;
    50.  
    51.   action = function(Rec)
    52.  
    53.     --[[*D*]]win.OutputDebugString('BAX.qqq.27: key='..far.InputRecordToName(Rec))
    54.  
    55.   end;
    56.  
    57. }
    ; загрузите макросы.
  2. Запустите какой-нить DbgViewer, для удобства установите фильтр на содержание в сообщении строки BAX;
  3. Нажмите в панелях Ctrl+Alt+F4 (откроется редактор временного файла с заголовком «BAX.Test»);
  4. Проверьте, что названия всех клавиш (кроме чисто шифтовых) ловятся ивентом (появляются в окне DbgViewer-а); например:
    BAX.qqq.27: key=ShiftSpace BAX.qqq.27: key=Space BAX.qqq.27: key=Esc
    ;
  5. Теперь нажмите Ctrl+пробел. Убедитесь, что сообщения в протоколе не появилось.
User avatar
HaRT
Moderator
Posts: 10858
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Не ловится Ctrl+Space в обработчике события EditorInput

Post by HaRT »

У меня ловится: BAX.qqq.27: key=CtrlSpace
Под ConEmu не пробовал.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Не ловится Ctrl+Space в обработчике события EditorInput

Post by buniak_a_h »

На чистом не повторяется… Всем - извините. Буду искать, кто перехватывает
Post Reply

Return to “Нужна помощь”