Перейти к основному содержимому

Модификаторы и время нажатия

Триггер-жест может требовать модификаторы: клавиши клавиатуры или дополнительные кнопки мыши, которые вы удерживаете или нажимаете вместе с жестом. Тогда одна и та же нарисованная фигура может запускать разное действие с каждым модификатором. На этой странице сформулированы точные правила. У триггеров горячих клавиш тоже есть модификаторы, с более простыми правилами (см. Модификаторы горячей клавиши).

Выбор модификаторов​

Модификаторы — часть триггера-жеста в редакторе действий.

Триггеры
ЖЕСТСмахивание влево
Кнопка рисования
Любая кнопка рисованияПравая кнопка
Модификаторы
CtrlShiftAltWinЛевая кнопкаСредняя кнопкаПравая кнопкаБоковая кнопка 1Боковая кнопка 2
Момент
ДоПослеЛюбой
Удерживаемые модификаторы
Отпустить, затем восстановитьОставить нажатыми
  1. Откройте действие на странице Действия и разверните его триггер-жест.
  2. В разделе Модификаторы щёлкните каждую клавишу или кнопку, которая нужна жесту ①. Повторный щелчок её убирает.
  3. В расширенном режиме выберите Момент ②: До, После или Любой.
  4. В расширенном режиме, если выбран клавиатурный модификатор, выберите, что происходит с удерживаемыми клавишами во время выполнения действия ③ (см. Удерживаемые модификаторы).

Модификаторы, которые можно выбрать:

МодификаторЧто засчитывается
Ctrl, Shift, Alt, WinЛюбая клавиша пары: левый и правый Ctrl — оба Ctrl.
Левая кнопка, Средняя кнопка, Правая кнопка, Боковая кнопка 1, Боковая кнопка 2Кнопка мыши, отличная от той, которой вы рисуете.

Если в Windows кнопки мыши поменяны местами, названия кнопок следуют Windows: правая кнопка — та, что открывает контекстные меню.

примечание

Расширенный режим. Момент и Удерживаемые модификаторы отображаются только в расширенном режиме. В простом режиме новый триггер-жест использует Любой и Отпустить, затем восстановить. Простой режим никогда не меняет значения, заданные в расширенном режиме.

Правило точного совпадения​

Пока вы рисуете жест, он записывает два набора модификаторов:

  • Удерживаемые до: клавиши и кнопки мыши, удерживаемые в момент нажатия кнопки рисования, плюс недавний поворот колеса (Повороты колеса).
  • Нажатые во время: все клавиши и кнопки мыши, нажатые после начала жеста. Клавиша остаётся в этом наборе, даже если вы отпустите её до окончания. Клавиша, которую вы удерживали ещё до нажатия, не считается нажатой во время, сколько бы вы её ни держали.

Модификаторы триггера должны в точности совпадать с одним из этих наборов. Подмножества недостаточно, и лишние клавиши не игнорируются:

  • Триггер, которому нужен Shift, не совпадает, пока вы удерживаете Shift и Alt.
  • Триггер, которому нужны Shift и Alt, не совпадает, пока вы удерживаете только Shift.

Два набора никогда не объединяются. Удержание Shift до и нажатие Ctrl во время дают «Shift» до и «Ctrl» во время. Ни один из наборов не равен «Shift и Ctrl», поэтому триггер, которому нужны обе клавиши, не совпадает.

Момент​

Момент определяет, какой из двух наборов проверяет триггер:

МоментТриггер совпадает, когда
ДоКлавиши, удерживаемые до, равны его модификаторам. Нажатое во время не важно.
ПослеКлавиши, нажатые во время, равны его модификаторам. Удерживаемое до не важно.
ЛюбойЛюбой из наборов равен его модификаторам.

Новый триггер-жест, созданный в окне настройки, использует Любой. Триггер-жест, записанный в файле конфигурации без момента, использует До.

Без модификаторов — значит вообще без них​

Триггер без модификаторов — исключение из правила момента. Он совпадает, только когда оба набора пусты: при нажатии кнопки рисования ничего не удерживалось, во время рисования ничего не нажималось и не было недавнего поворота колеса. Его момент не важен.

Поэтому простой жест никогда не побеждает свой вариант с модификатором. Если у одного действия простое Смахивание влево, а у другого Смахивание влево с Ctrl, После, нажатие Ctrl во время рисования всегда запускает второе, какое бы ни стояло первым в списке.

Временные диаграммы​

В этих примерах кнопка рисования — правая, а Ctrl — игнорируемая клавиша-модификатор, как по умолчанию (Игнорируемые клавиши-модификаторы).

Что вы делаетеУдерживаемые доНажатые во времяСовпадаетНе совпадает
Удерживаете Shift. Нажимаете правую кнопку, рисуете, отпускаете. Отпускаете Shift.Shift(нет)Shift До, Shift ЛюбойShift После, без модификаторов
Нажимаете правую кнопку, начинаете рисовать, нажимаете и отпускаете Ctrl, заканчиваете, отпускаете.(нет)CtrlCtrl После, Ctrl ЛюбойCtrl До, без модификаторов
Удерживаете Shift. Нажимаете правую кнопку, во время рисования нажимаете Alt, отпускаете.ShiftAltShift До, Alt После, Shift Любой, Alt ЛюбойShift и Alt (любой момент)
Удерживаете Shift и Alt. Нажимаете правую кнопку, рисуете, отпускаете.Shift, Alt(нет)Shift и Alt До или ЛюбойShift До
Нажимаете правую кнопку, рисуете, нажимаете и отпускаете Shift, затем нажимаете Alt, отпускаете.(нет)Shift, AltShift и Alt После или ЛюбойShift После, Alt После
Удерживаете Ctrl. Нажимаете правую кнопку.Ничего: Ctrl — игнорируемая клавиша-модификатор, поэтому щелчок правой кнопкой уходит в окно как обычный щелчок, и жест не начинается.
Удерживаете левую кнопку. Нажимаете правую кнопку, рисуете, отпускаете.Левая кнопка(нет)Левая кнопка До или Любойбез модификаторов
Нажимаете правую кнопку, рисуете, щёлкаете средней кнопкой, отпускаете.(нет)Средняя кнопкаСредняя кнопка После или Любойбез модификаторов
Поворачиваете колесо, затем в течение полсекунды нажимаете правую кнопку и рисуете.Колесо(нет)Ни один триггер, созданный в окне настройкибез модификаторов

Если в одной группе приложений совпадает несколько триггеров, как в третьей строке, выполняется первый в порядке сопоставления (Сопоставление).

Кнопки мыши как модификаторы​

  • Удерживаемые до. Кнопка мыши, удерживаемая при нажатии кнопки рисования. Её нажатие уже дошло до окна под указателем, потому что жест ещё не выполнялся.
  • Нажатые во время. Кнопка мыши, нажатая во время рисования. Её нажатие и отпускание не доходят до окна под указателем и учитываются только для жеста. Это относится и ко второй кнопке рисования: нажатая во время жеста, она является модификатором, а не началом нового жеста.

Глобальное событие кнопки мыши всё равно срабатывает для кнопки, нажатой во время жеста (Глобальные события).

Клавиши, которые нельзя удерживать до жеста​

Два вида модификаторов никогда нельзя удерживать до начала жеста:

  • Игнорируемая клавиша-модификатор. Её удержание при нажатии кнопки рисования означает «в этот раз без жеста», поэтому жест не начинается (Игнорируемые клавиши-модификаторы).
  • Кнопка рисования. Нажатие кнопки рисования начинает собственный жест, поэтому её нельзя удерживать в ожидании другого.

С моментом До средство выбора модификаторов отклоняет оба варианта и показывает причину, если навести указатель на отклонённый элемент. С После или Любой их можно выбрать, потому что нажатие во время жеста работает. Уже настроенный так триггер (например, в файле конфигурации) показывает свой элемент красным с причиной ниже и никогда не совпадает по набору «до».

Повороты колеса​

Поворот колеса мыши незадолго до нажатия кнопки рисования считается модификатором, удерживаемым до: Интервал колеса как модификатора на странице Общие задаёт, насколько незадолго (по умолчанию 500 мс). Поворот колеса во время рисования считается нажатым во время. Колесо вверх и колесо вниз — разные модификаторы.

Движок сопоставляет модификаторы колеса, но средство выбора модификаторов их не предлагает, поэтому у триггера, созданного в окне настройки, их никогда нет. Такой триггер не совпадает с жестом, начатым в пределах интервала колеса после прокрутки: недавний поворот колеса — модификатор, которого нет в триггере. Так задумано. Если вы часто рисуете сразу после прокрутки, уменьшите Интервал колеса как модификатора (расширенный режим); при 0 прежние повороты колеса не учитываются. Повороты колеса внутри зоны исключения, охватывающей колесо, никогда не учитываются.

Удерживаемые модификаторы​

Когда действие начинается, клавиши, удерживаемые для его триггера, могут быть ещё нажаты. Действие, которое вводит текст или нажимает клавиши, тогда отправит их с ещё нажатым Ctrl или Alt. Удерживаемые модификаторы определяет, что происходит:

  • Отпустить, затем восстановить (по умолчанию для нового триггера). Перед выполнением действия движок отпускает клавиши-модификаторы, совпавшие с триггером. Когда действие, включая действия «до» и «после», завершилось, он снова нажимает только те клавиши, которые вы всё ещё физически удерживаете. Пока они отпущены, их автоповтор удерживается, поэтому удерживаемая клавиша не нажимается снова посреди действия. Клавиша, которую вы сами отпустили и снова нажали, остаётся на ваше усмотрение.
  • Оставить нажатыми. Ничего не отпускается. Скрипт действия сам обрабатывает клавиши. Триггер, записанный в файле конфигурации без этого параметра, использует Оставить нажатыми.

Для жеста отпускаются только клавиатурные модификаторы; удерживаемая кнопка мыши никогда не отпускается. Выбор отображается, только если у триггера есть клавиатурный модификатор. Если обработка ввода останавливается во время выполнения действия (например, движок отключён), ничего снова не нажимается.

Как модификаторы определяют, какое действие выполнится​

Модификаторы — одно из условий триггера, которое проверяется вместе с жестом, кнопкой рисования, активным профилем и, если группа приложений их использует, областями. Они никогда не меняют того, действия какой группы приложений пробуются первыми:

  1. Первой пробуется группа приложений окна, где начинается жест. Действие этой группы с совпавшим триггером выполняется, даже если совпало бы и глобальное действие.
  2. Внутри группы действия пробуются в порядке сопоставления, и побеждает первый совпавший триггер; если области включены, побеждает совпавший триггер с наименьшим числом ячеек, а порядок разрешает равенство (Область действия и правила отката).
  3. Только если в группе ничего не совпало, жест откатывается к глобальной группе, если откат включён (Область действия и правила отката).

Редактор действий помечает два триггера в одной группе, которым может удовлетворить один и тот же жест, если только первый не является более узким из двух, и сообщает, какой побеждает.

Модификаторы горячей клавиши​

Модификаторы горячей клавиши — Ctrl, Shift, Alt и Win, и они должны совпадать точно: Ctrl+K не срабатывает для Ctrl+Shift+K. У горячей клавиши нет момента и модификаторов-кнопок мыши. См. Горячие клавиши.