Message ID | 20170912123744.14730-4-berrange@redhat.com |
---|---|
State | New |
Headers | show |
Series | Convert over to use keycodemapdb | expand |
On Tue, 2017-09-12 at 13:37 +0100, Daniel P. Berrange wrote: > Always use QKeyCode in the InputKeyEvent struct, by converting key > numbers to QKeyCode at the time the event is created. > > Signed-off-by: Daniel P. Berrange <berrange@redhat.com> qmp_input_send_event() must be handled too as patches later in this series depend on never seeing any KEY_VALUE_KIND_NUMBER key events. cheers, Gerd @@ -157,9 +157,16 @@ void qmp_input_send_event(bool has_device, const char *device, } for (e = events; e != NULL; e = e->next) { - InputEvent *event = e->value; + InputEvent *evt = e->value; - qemu_input_event_send(con, event); + if (evt->type == INPUT_EVENT_KIND_KEY && + evt->u.key.data->key->type == KEY_VALUE_KIND_NUMBER) { + KeyValue *key = evt->u.key.data->key; + QKeyCode code = qemu_input_key_number_to_qcode(key- >u.qcode.data); + qemu_input_event_send_key_qcode(con, code, evt- >u.key.data->down); + } else { + qemu_input_event_send(con, evt); + } }
diff --git a/ui/input.c b/ui/input.c index 3422d4a8ef..9914daf0b4 100644 --- a/ui/input.c +++ b/ui/input.c @@ -400,10 +400,8 @@ void qemu_input_event_send_key(QemuConsole *src, KeyValue *key, bool down) void qemu_input_event_send_key_number(QemuConsole *src, int num, bool down) { - KeyValue *key = g_new0(KeyValue, 1); - key->type = KEY_VALUE_KIND_NUMBER; - key->u.number.data = num; - qemu_input_event_send_key(src, key, down); + QKeyCode code = qemu_input_key_number_to_qcode(num); + qemu_input_event_send_key_qcode(src, code, down); } void qemu_input_event_send_key_qcode(QemuConsole *src, QKeyCode q, bool down)
Always use QKeyCode in the InputKeyEvent struct, by converting key numbers to QKeyCode at the time the event is created. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- ui/input.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)