[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 10/10] ui/gtk: use native keyboard scancodes on Windows
From: |
Daniel P . Berrangé |
Subject: |
Re: [PATCH 10/10] ui/gtk: use native keyboard scancodes on Windows |
Date: |
Tue, 12 May 2020 12:31:27 +0100 |
User-agent: |
Mutt/1.13.4 (2020-02-15) |
On Sun, May 10, 2020 at 08:43:04PM +0200, Volker Rümelin wrote:
> Since GTK 3.22 the function gdk_event_get_scancode() is
> available. On Windows this function returns keyboard scancodes
> and some extended flags. These raw keyboard scancodes are much
> better suited for this use case than the half-cooked win32
> virtual-key codes because scancodes report the key position on
> the keyboard and the positions are independent of national
> language settings.
>
> Signed-off-by: Volker Rümelin <address@hidden>
> ---
> ui/gtk.c | 33 +++++++++++++++++++++++++++++----
> 1 file changed, 29 insertions(+), 4 deletions(-)
>
> diff --git a/ui/gtk.c b/ui/gtk.c
> index a43fddc57f..242b378bf1 100644
> --- a/ui/gtk.c
> +++ b/ui/gtk.c
> @@ -1016,8 +1016,13 @@ static const guint16 *gd_get_keymap(size_t *maplen)
> #ifdef GDK_WINDOWING_WIN32
> if (GDK_IS_WIN32_DISPLAY(dpy)) {
> trace_gd_keymap_windowing("win32");
> +#if GTK_CHECK_VERSION(3, 22, 0)
> + *maplen = qemu_input_map_atset1_to_qcode_len;
> + return qemu_input_map_atset1_to_qcode;
> +#else
> *maplen = qemu_input_map_win32_to_qcode_len;
> return qemu_input_map_win32_to_qcode;
> +#endif
Our current min GTK is 3.14, which I picked here:
commit 58296cb61866195297510e946a51acc5f0b9639e
Author: Daniel P. Berrangé <address@hidden>
Date: Wed Aug 22 14:15:53 2018 +0100
ui: increase min required GTK3 version to 3.14.0
Per supported platforms doc[1], the various min GTK3 on relevant distros is:
RHEL-7.0: 3.8.8
RHEL-7.2: 3.14.13
RHEL-7.4: 3.22.10
RHEL-7.5: 3.22.26
Debian (Stretch): 3.22.11
Debian (Jessie): 3.14.5
OpenBSD (Ports): 3.22.30
FreeBSD (Ports): 3.22.29
OpenSUSE Leap 15: 3.22.30
SLE12-SP2: Unknown
Ubuntu (Xenial): 3.18.9
macOS (Homebrew): 3.22.30
This suggests that a minimum GTK3 of 3.14.0 is a reasonable target,
as users are unlikely to be stuck on RHEL-7.0/7.1 still
since that time, we no longer support Debian Jessie, since Debian Buster
is now released. We also no longer support Ubuntu Xenial (16.04), since
we now only need Ubuntu Bionic (18.04) and Focal (20.04).
So we can justify moving the minium Gtk in QEMU to 3.22 at this time.
This will avoid you needing to do versioned ifdef for this new functionality.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
- Re: [PATCH 05/10] ui/gtk: remove unused variable ignore_keys, (continued)
- [PATCH 06/10] ui/sdl2: fix handling of AltGr key on Windows, Volker Rümelin, 2020/05/10
- [PATCH 04/10] ui/gtk: remove unused code, Volker Rümelin, 2020/05/10
- [PATCH 07/10] ui/sdl2: start in full screen with grab enabled, Volker Rümelin, 2020/05/10
- [PATCH 08/10] ui/sdl2-input: use trace-events to debug key events, Volker Rümelin, 2020/05/10
- [PATCH 09/10] ui/gtk: don't pass on win keys without keyboard grab, Volker Rümelin, 2020/05/10
- [PATCH 10/10] ui/gtk: use native keyboard scancodes on Windows, Volker Rümelin, 2020/05/10
- Re: [PATCH 10/10] ui/gtk: use native keyboard scancodes on Windows,
Daniel P . Berrangé <=
- Re: Patches for ui/gtk and ui/sdl, Howard Spoelstra, 2020/05/11