summaryrefslogtreecommitdiffstats
path: root/ui/keymaps.h
diff options
context:
space:
mode:
authorPeter Maydell2018-02-22 15:44:42 +0100
committerPeter Maydell2018-02-22 15:44:42 +0100
commit0ce9cb913e32d7efed64dc1191a7a490d97cf56e (patch)
tree6f4031e47f540b0c3e7a6543b860f261a1384433 /ui/keymaps.h
parentMerge remote-tracking branch 'remotes/mcayland/tags/qemu-openbios-signed' int... (diff)
parentkeymap: consider modifier state when picking a mapping (diff)
downloadqemu-0ce9cb913e32d7efed64dc1191a7a490d97cf56e.tar.gz
qemu-0ce9cb913e32d7efed64dc1191a7a490d97cf56e.tar.xz
qemu-0ce9cb913e32d7efed64dc1191a7a490d97cf56e.zip
Merge remote-tracking branch 'remotes/kraxel/tags/ui-20180222-pull-request' into staging
ui: reverse keymap improvements. sdl2: hotkey fix. opengl: dmabuf fixes. # gpg: Signature made Thu 22 Feb 2018 10:22:58 GMT # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/ui-20180222-pull-request: keymap: consider modifier state when picking a mapping keymap: record multiple keysym -> keycode mappings keymap: numpad keysyms and keycodes are fixed keymap: use glib hash for kbd_layout_t keymap: make struct kbd_layout_t private to ui/keymaps.c egl-helpers: add alpha channel to texture format egl-headless: cursor_dmabuf: handle NULL cursor console/opengl: split up dpy_gl_cursor ops sdl2: fix hotkey keyup Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'ui/keymaps.h')
-rw-r--r--ui/keymaps.h30
1 files changed, 7 insertions, 23 deletions
diff --git a/ui/keymaps.h b/ui/keymaps.h
index 8757465529..0693588225 100644
--- a/ui/keymaps.h
+++ b/ui/keymaps.h
@@ -32,25 +32,6 @@ typedef struct {
int keysym;
} name2keysym_t;
-struct key_range {
- int start;
- int end;
- struct key_range *next;
-};
-
-#define MAX_NORMAL_KEYCODE 512
-#define MAX_EXTRA_COUNT 256
-typedef struct {
- uint16_t keysym2keycode[MAX_NORMAL_KEYCODE];
- struct {
- int keysym;
- uint16_t keycode;
- } keysym2keycode_extra[MAX_EXTRA_COUNT];
- int extra_count;
- struct key_range *keypad_range;
- struct key_range *numlock_range;
-} kbd_layout_t;
-
/* scancode without modifiers */
#define SCANCODE_KEYMASK 0xff
/* scancode without grey or up bit */
@@ -69,10 +50,13 @@ typedef struct {
#define SCANCODE_ALT 0x400
#define SCANCODE_ALTGR 0x800
+typedef struct kbd_layout_t kbd_layout_t;
-void *init_keyboard_layout(const name2keysym_t *table, const char *language);
-int keysym2scancode(void *kbd_layout, int keysym);
-int keycode_is_keypad(void *kbd_layout, int keycode);
-int keysym_is_numlock(void *kbd_layout, int keysym);
+kbd_layout_t *init_keyboard_layout(const name2keysym_t *table,
+ const char *language);
+int keysym2scancode(kbd_layout_t *k, int keysym,
+ bool shift, bool altgr, bool ctrl);
+int keycode_is_keypad(kbd_layout_t *k, int keycode);
+int keysym_is_numlock(kbd_layout_t *k, int keysym);
#endif /* QEMU_KEYMAPS_H */