Why Shift+2 Can Behave Differently on a Windows Numpad

In Figma, Shift+2 on the number row zooms to your selection, but the same combo on the keypad sends a down arrow. How do you build a shortcut that works on both?

Why Shift+2 Can Behave Differently on a Windows Numpad
TLDR
  • The number row and numeric keypad need not produce equivalent shortcuts.
  • Windows can interpret Shift plus a keypad digit as navigation.
  • Inspect the key’s value and location separately.

Shift can change a keypad digit into navigation

On Windows, the keypad’s 2 doubles as a down-arrow key. Holding Shift can invoke its navigation behavior even with Num Lock enabled. A shortcut described as Shift+2 can therefore behave differently depending on which 2 you press.

The current Windows input implementation in winit documents this behavior. It also describes a synthetic Shift-release event delivered as part of the translation. An application cannot always infer the event sequence simply from the keys a person is physically holding.

A zoom shortcut exposed a decades-old convention

In his 2021 account, Marcin Wichary described a Figma report from 2019: Shift+2 zoomed to a selection on the main keyboard, while the keypad combination became a down arrow. He said browser information allowed Figma to distinguish the inputs and fix the problem.

Wichary traced the convention to IBM PC keyboards that shared numeric and navigation functions. Shift temporarily switched roles; the convention survived after dedicated arrow keys arrived. A modern design tool had encountered an inherited input rule.

Keep the selection fixed while comparing keys

For a similar symptom in your current app, compare the number row and keypad without changing the selected object or screen state. Then vary Num Lock and the Shift combination. Record whether the action inserts a digit, navigates or invokes the intended command. This narrows the input condition before you change application settings.

Figma’s layout setting addresses a separate variable. Its official help page says the default shortcuts use US QWERTY, with alternatives available through Preferences → Keyboard layout or the shortcuts panel’s Layout tab.

Match that preference to your system layout, especially after changing the latter. It selects layout-specific mappings; it is not a switch that disables Windows keypad navigation behavior.

A character value is not a physical key

Browser events expose distinct views of the input. key reflects modifiers and layout. code identifies the physical key, while location distinguishes positions such as the keypad.

QuestionFieldInterpretation
What value did the input produce?keyIncludes layout and modifier effects.
Which physical key was used?codeDoes not identify the resulting character.
Did it come from the keypad?locationThe numeric-keypad constant is 3.

A character-based command and a game control tied to a physical position need different matching rules. Using a code value as a visible key label can mislead someone with another layout; checking only the character can conceal the difference between two physical keys.

Record location and interpreted input together. That gives a shortcut report enough detail to distinguish an application mapping problem from a layout mismatch or inherited operating-system behavior.