GdkModifierType

A set of bit-flags to indicate the state of modifier keys and mouse buttons in various event types. Typical modifier keys are Shift, Control, Meta, Super, Hyper, Alt, Compose, Apple, CapsLock or ShiftLock.

Like the X Window System, GDK supports 8 modifier keys and 5 mouse buttons.

Since 2.10, GDK recognizes which of the Meta, Super or Hyper keys are mapped to Mod2 - Mod5, and indicates this by setting GDK_SUPER_MASK, GDK_HYPER_MASK or GDK_META_MASK in the state field of key events.

Note that GDK may add internal values to events which include reserved values such as GDK_MODIFIER_RESERVED_13_MASK. Your code should preserve and ignore them. You can use GDK_MODIFIER_MASK to remove all reserved values.

Also note that the GDK X backend interprets button press events for button 4-7 as scroll events, so GDK_BUTTON4_MASK and GDK_BUTTON5_MASK will never be set.

Values

ValueMeaning
SHIFT_MASK1

the Shift key.

LOCK_MASK2

a Lock key (depending on the modifier mapping of the X server this may either be CapsLock or ShiftLock).

CONTROL_MASK4

the Control key.

MOD1_MASK8

the fourth modifier key (it depends on the modifier mapping of the X server which key is interpreted as this modifier, but normally it is the Alt key).

MOD2_MASK16

the fifth modifier key (it depends on the modifier mapping of the X server which key is interpreted as this modifier).

MOD3_MASK32

the sixth modifier key (it depends on the modifier mapping of the X server which key is interpreted as this modifier).

MOD4_MASK64

the seventh modifier key (it depends on the modifier mapping of the X server which key is interpreted as this modifier).

MOD5_MASK128

the eighth modifier key (it depends on the modifier mapping of the X server which key is interpreted as this modifier).

BUTTON1_MASK256

the first mouse button.

BUTTON2_MASK512

the second mouse button.

BUTTON3_MASK1024

the third mouse button.

BUTTON4_MASK2048

the fourth mouse button.

BUTTON5_MASK4096

the fifth mouse button.

MODIFIER_RESERVED_13_MASK8192

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_14_MASK16384

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_15_MASK32768

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_16_MASK65536

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_17_MASK131072

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_18_MASK262144

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_19_MASK524288

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_20_MASK1048576

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_21_MASK2097152

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_22_MASK4194304

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_23_MASK8388608

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_24_MASK16777216

A reserved bit flag; do not use in your own code

MODIFIER_RESERVED_25_MASK33554432

A reserved bit flag; do not use in your own code

SUPER_MASK67108864

the Super modifier. Since 2.10

HYPER_MASK134217728

the Hyper modifier. Since 2.10

META_MASK268435456

the Meta modifier. Since 2.10

MODIFIER_RESERVED_29_MASK536870912

A reserved bit flag; do not use in your own code

RELEASE_MASK1073741824

not used in GDK itself. GTK+ uses it to differentiate between (keyval, modifiers) pairs from key press and release events.

MODIFIER_MASK1543512063

a mask covering all modifier types.