Required Modifier Order of key_sequence

Gweneph
Long Handed Inserter
Long Handed Inserter
Posts: 57
Joined: Thu Nov 14, 2019 11:51 pm
Contact:

Required Modifier Order of key_sequence

Post by Gweneph »

From my testing below when multiple modifier keys are specified in a key_sequence of a CustomInputPrototype, they must be ordered: CONTROL < SHIFT < COMMAND < ALT or the sequence will not be recognized by the engine.

I tested this by adding all possible orderings of all subsets of the four listed modifiers followed by A. (attached data.lua)

This resulted in 65 custom inputs, 16 of which functioned:

Code: Select all

	A
	ALT + A
	COMMAND + A
	COMMAND + ALT + A
	SHIFT + A
	SHIFT + ALT + A
	SHIFT + COMMAND + A
	SHIFT + COMMAND + ALT + A
	CONTROL + A
	CONTROL + ALT + A
	CONTROL + COMMAND + A
	CONTROL + COMMAND + ALT + A
	CONTROL + SHIFT + A
	CONTROL + SHIFT + ALT + A
	CONTROL + SHIFT + COMMAND + A
	CONTROL + SHIFT + COMMAND + ALT + A
As 2⁴ = 16 this is all of the actual possibilities without reordering.

The other inputs that did not follow the required ordering above produced the following errors in startup:

Code: Select all

  28.463 Error ControlSettings.cpp:1042: ALT-COMMAND-A (custom-input): unknown key_sequence: ALT + COMMAND + A
  28.463 Error ControlSettings.cpp:1042: ALT-COMMAND-CONTROL-A (custom-input): unknown key_sequence: ALT + COMMAND + CONTROL + A
  28.463 Error ControlSettings.cpp:1042: ALT-COMMAND-CONTROL-SHIFT-A (custom-input): unknown key_sequence: ALT + COMMAND + CONTROL + SHIFT + A
  28.464 Error ControlSettings.cpp:1042: ALT-COMMAND-SHIFT-A (custom-input): unknown key_sequence: ALT + COMMAND + SHIFT + A
  28.464 Error ControlSettings.cpp:1042: ALT-COMMAND-SHIFT-CONTROL-A (custom-input): unknown key_sequence: ALT + COMMAND + SHIFT + CONTROL + A
  28.464 Error ControlSettings.cpp:1042: ALT-CONTROL-A (custom-input): unknown key_sequence: ALT + CONTROL + A
  28.464 Error ControlSettings.cpp:1042: ALT-CONTROL-COMMAND-A (custom-input): unknown key_sequence: ALT + CONTROL + COMMAND + A
  28.464 Error ControlSettings.cpp:1042: ALT-CONTROL-COMMAND-SHIFT-A (custom-input): unknown key_sequence: ALT + CONTROL + COMMAND + SHIFT + A
  28.464 Error ControlSettings.cpp:1042: ALT-CONTROL-SHIFT-A (custom-input): unknown key_sequence: ALT + CONTROL + SHIFT + A
  28.464 Error ControlSettings.cpp:1042: ALT-CONTROL-SHIFT-COMMAND-A (custom-input): unknown key_sequence: ALT + CONTROL + SHIFT + COMMAND + A
  28.464 Error ControlSettings.cpp:1042: ALT-SHIFT-A (custom-input): unknown key_sequence: ALT + SHIFT + A
  28.464 Error ControlSettings.cpp:1042: ALT-SHIFT-COMMAND-A (custom-input): unknown key_sequence: ALT + SHIFT + COMMAND + A
  28.465 Error ControlSettings.cpp:1042: ALT-SHIFT-COMMAND-CONTROL-A (custom-input): unknown key_sequence: ALT + SHIFT + COMMAND + CONTROL + A
  28.465 Error ControlSettings.cpp:1042: ALT-SHIFT-CONTROL-A (custom-input): unknown key_sequence: ALT + SHIFT + CONTROL + A
  28.465 Error ControlSettings.cpp:1042: ALT-SHIFT-CONTROL-COMMAND-A (custom-input): unknown key_sequence: ALT + SHIFT + CONTROL + COMMAND + A
  28.465 Error ControlSettings.cpp:1042: COMMAND-ALT-CONTROL-A (custom-input): unknown key_sequence: COMMAND + ALT + CONTROL + A
  28.465 Error ControlSettings.cpp:1042: COMMAND-ALT-CONTROL-SHIFT-A (custom-input): unknown key_sequence: COMMAND + ALT + CONTROL + SHIFT + A
  28.465 Error ControlSettings.cpp:1042: COMMAND-ALT-SHIFT-A (custom-input): unknown key_sequence: COMMAND + ALT + SHIFT + A
  28.465 Error ControlSettings.cpp:1042: COMMAND-ALT-SHIFT-CONTROL-A (custom-input): unknown key_sequence: COMMAND + ALT + SHIFT + CONTROL + A
  28.465 Error ControlSettings.cpp:1042: COMMAND-CONTROL-A (custom-input): unknown key_sequence: COMMAND + CONTROL + A
  28.465 Error ControlSettings.cpp:1042: COMMAND-CONTROL-ALT-A (custom-input): unknown key_sequence: COMMAND + CONTROL + ALT + A
  28.465 Error ControlSettings.cpp:1042: COMMAND-CONTROL-ALT-SHIFT-A (custom-input): unknown key_sequence: COMMAND + CONTROL + ALT + SHIFT + A
  28.465 Error ControlSettings.cpp:1042: COMMAND-CONTROL-SHIFT-A (custom-input): unknown key_sequence: COMMAND + CONTROL + SHIFT + A
  28.466 Error ControlSettings.cpp:1042: COMMAND-CONTROL-SHIFT-ALT-A (custom-input): unknown key_sequence: COMMAND + CONTROL + SHIFT + ALT + A
  28.466 Error ControlSettings.cpp:1042: COMMAND-SHIFT-A (custom-input): unknown key_sequence: COMMAND + SHIFT + A
  28.466 Error ControlSettings.cpp:1042: COMMAND-SHIFT-ALT-A (custom-input): unknown key_sequence: COMMAND + SHIFT + ALT + A
  28.466 Error ControlSettings.cpp:1042: COMMAND-SHIFT-ALT-CONTROL-A (custom-input): unknown key_sequence: COMMAND + SHIFT + ALT + CONTROL + A
  28.466 Error ControlSettings.cpp:1042: COMMAND-SHIFT-CONTROL-A (custom-input): unknown key_sequence: COMMAND + SHIFT + CONTROL + A
  28.466 Error ControlSettings.cpp:1042: COMMAND-SHIFT-CONTROL-ALT-A (custom-input): unknown key_sequence: COMMAND + SHIFT + CONTROL + ALT + A
  28.466 Error ControlSettings.cpp:1042: CONTROL-ALT-COMMAND-A (custom-input): unknown key_sequence: CONTROL + ALT + COMMAND + A
  28.467 Error ControlSettings.cpp:1042: CONTROL-ALT-COMMAND-SHIFT-A (custom-input): unknown key_sequence: CONTROL + ALT + COMMAND + SHIFT + A
  28.467 Error ControlSettings.cpp:1042: CONTROL-ALT-SHIFT-A (custom-input): unknown key_sequence: CONTROL + ALT + SHIFT + A
  28.467 Error ControlSettings.cpp:1042: CONTROL-ALT-SHIFT-COMMAND-A (custom-input): unknown key_sequence: CONTROL + ALT + SHIFT + COMMAND + A
  28.467 Error ControlSettings.cpp:1042: CONTROL-COMMAND-ALT-SHIFT-A (custom-input): unknown key_sequence: CONTROL + COMMAND + ALT + SHIFT + A
  28.467 Error ControlSettings.cpp:1042: CONTROL-COMMAND-SHIFT-A (custom-input): unknown key_sequence: CONTROL + COMMAND + SHIFT + A
  28.467 Error ControlSettings.cpp:1042: CONTROL-COMMAND-SHIFT-ALT-A (custom-input): unknown key_sequence: CONTROL + COMMAND + SHIFT + ALT + A
  28.467 Error ControlSettings.cpp:1042: CONTROL-SHIFT-ALT-COMMAND-A (custom-input): unknown key_sequence: CONTROL + SHIFT + ALT + COMMAND + A
  28.467 Error ControlSettings.cpp:1042: SHIFT-ALT-COMMAND-A (custom-input): unknown key_sequence: SHIFT + ALT + COMMAND + A
  28.467 Error ControlSettings.cpp:1042: SHIFT-ALT-COMMAND-CONTROL-A (custom-input): unknown key_sequence: SHIFT + ALT + COMMAND + CONTROL + A
  28.467 Error ControlSettings.cpp:1042: SHIFT-ALT-CONTROL-A (custom-input): unknown key_sequence: SHIFT + ALT + CONTROL + A
  28.467 Error ControlSettings.cpp:1042: SHIFT-ALT-CONTROL-COMMAND-A (custom-input): unknown key_sequence: SHIFT + ALT + CONTROL + COMMAND + A
  28.468 Error ControlSettings.cpp:1042: SHIFT-COMMAND-ALT-CONTROL-A (custom-input): unknown key_sequence: SHIFT + COMMAND + ALT + CONTROL + A
  28.468 Error ControlSettings.cpp:1042: SHIFT-COMMAND-CONTROL-A (custom-input): unknown key_sequence: SHIFT + COMMAND + CONTROL + A
  28.468 Error ControlSettings.cpp:1042: SHIFT-COMMAND-CONTROL-ALT-A (custom-input): unknown key_sequence: SHIFT + COMMAND + CONTROL + ALT + A
  28.468 Error ControlSettings.cpp:1042: SHIFT-CONTROL-A (custom-input): unknown key_sequence: SHIFT + CONTROL + A
  28.468 Error ControlSettings.cpp:1042: SHIFT-CONTROL-ALT-A (custom-input): unknown key_sequence: SHIFT + CONTROL + ALT + A
  28.468 Error ControlSettings.cpp:1042: SHIFT-CONTROL-ALT-COMMAND-A (custom-input): unknown key_sequence: SHIFT + CONTROL + ALT + COMMAND + A
  28.468 Error ControlSettings.cpp:1042: SHIFT-CONTROL-COMMAND-A (custom-input): unknown key_sequence: SHIFT + CONTROL + COMMAND + A
  28.468 Error ControlSettings.cpp:1042: SHIFT-CONTROL-COMMAND-ALT-A (custom-input): unknown key_sequence: SHIFT + CONTROL + COMMAND + ALT + A
  28.472 Custom inputs active: 65
  
It would be nice if this required order was included in the key_sequence documentation (or if key_sequence was changed to be order agnostic)

As a related request, I was confused to find that CONTROL and COMMAND seemed to be treated the same on my Windows 10 computer while my keyboard is set to English (US).
The controls settings page showing three groups of commands that all appear with control even though some use command.
The controls settings page showing three groups of commands that all appear with control even though some use command.
temp.png (71.58 KiB) Viewed 141 times
So I think a note about how COMMAND is treated on windows computers would also be helpful here.

Relevant help thread: 114748
Attachments
data.lua
(8.35 KiB) Downloaded 12 times
User avatar
Therenas
Factorio Staff
Factorio Staff
Posts: 311
Joined: Tue Dec 11, 2018 2:10 pm
Contact:

Re: Required Modifier Order of key_sequence

Post by Therenas »

Thanks for the detailed and researched report, that's very appreciated. I gave key_sequence as a whole an overhaul for the next release, including noting both your concerns explicitly.

If you want the sequence to be order-agnostic, you could make a feature suggestion in the appropriate subforum. Edit: Actually, Rseding took it upon himself to make it load order-agnostically for the next release!
Post Reply

Return to “Resolved Requests”