input: support bindings with modifier keys for X input
commit67fd58d6f01ad84387421e2fc861c28dcf5c4f3c
authorUoti Urpala <uau@glyph.nonexistent.invalid>
Sun, 19 Dec 2010 10:12:20 +0000 (19 12:12 +0200)
committerUoti Urpala <uau@glyph.nonexistent.invalid>
Mon, 20 Dec 2010 17:02:24 +0000 (20 19:02 +0200)
treef1b93bc0ac9effc590771ce86aacc09eb050fbc1
parentb4564c2d4fdc14f1fcb6987b8f57a2c27a08bf54
input: support bindings with modifier keys for X input

Add support for binding commands to modifier+key combinations like
"Shift+Left" or "Ctrl+Alt+x", and support reading such combinations
from the output window of X VOs.

The recognized modifier names are Shift, Ctrl, Alt and Meta. Any
combination of those and then a non-modifier key name, separated by
'+', is accepted as a key name in input.conf. For non-special keys
that produce characters shift is ignored as a modifier. For example
"A" is handled as a key without modifiers even if you use shift to
write the capital letter; 'a' vs 'A' already distinguishes the
combinations with a normal keymap, and having separate 'a', 'Shift+A'
and 'A' (written with caps lock for example) would bring more
confusion than benefit.

Currently reading the modifier+key combinations is only supported in
the output window of those VOs that use x11_common.c event
handling. It's not possible to input the key combinations in other VOs
or in a terminal window.
etc/input.conf
input/input.c
libvo/x11_common.c
libvo/x11_common.h
osdep/keycodes.h