diff mbox

input (curses): mask keycodes to remove modifier bits

Message ID 1400890569-30822-1-git-send-email-andrew@aoates.org
State New
Headers show

Commit Message

Andrew Oates May 24, 2014, 12:16 a.m. UTC
Without the mask, control bits are passed on in the keycode, generating
incorrect PS/2 sequences when SHIFT, ALT, etc are held down.

Signed-off-by: Andrew Oates <andrew@aoates.org>
---
 ui/curses.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Michael Tokarev May 24, 2014, 7:02 a.m. UTC | #1
24.05.2014 04:16, Andrew Oates wrote:
> Without the mask, control bits are passed on in the keycode, generating
> incorrect PS/2 sequences when SHIFT, ALT, etc are held down.

While the patch itself appears to be trivial, it may have
non-trivial effect.  Cc'ing Gerd for comments.

Thank you!

/mjt

> Signed-off-by: Andrew Oates <andrew@aoates.org>
> ---
>  ui/curses.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/ui/curses.c b/ui/curses.c
> index b044790..de85f76 100644
> --- a/ui/curses.c
> +++ b/ui/curses.c
> @@ -288,8 +288,8 @@ static void curses_refresh(DisplayChangeListener *dcl)
>                  qemu_input_event_send_key_number(NULL, GREY | ALT_CODE, true);
>              }
>  
> -            qemu_input_event_send_key_number(NULL, keycode, true);
> -            qemu_input_event_send_key_number(NULL, keycode, false);
> +            qemu_input_event_send_key_number(NULL, keycode & KEY_MASK, true);
> +            qemu_input_event_send_key_number(NULL, keycode & KEY_MASK, false);
>  
>              if (keycode & ALTGR) {
>                  qemu_input_event_send_key_number(NULL, GREY | ALT_CODE, false);
>
Gerd Hoffmann May 26, 2014, 7:51 a.m. UTC | #2
On Sa, 2014-05-24 at 11:02 +0400, Michael Tokarev wrote:
> 24.05.2014 04:16, Andrew Oates wrote:
> > Without the mask, control bits are passed on in the keycode, generating
> > incorrect PS/2 sequences when SHIFT, ALT, etc are held down.
> 
> While the patch itself appears to be trivial, it may have
> non-trivial effect.  Cc'ing Gerd for comments.

Patch is correct, picked it up.

cheers,
  Gerd
diff mbox

Patch

diff --git a/ui/curses.c b/ui/curses.c
index b044790..de85f76 100644
--- a/ui/curses.c
+++ b/ui/curses.c
@@ -288,8 +288,8 @@  static void curses_refresh(DisplayChangeListener *dcl)
                 qemu_input_event_send_key_number(NULL, GREY | ALT_CODE, true);
             }
 
-            qemu_input_event_send_key_number(NULL, keycode, true);
-            qemu_input_event_send_key_number(NULL, keycode, false);
+            qemu_input_event_send_key_number(NULL, keycode & KEY_MASK, true);
+            qemu_input_event_send_key_number(NULL, keycode & KEY_MASK, false);
 
             if (keycode & ALTGR) {
                 qemu_input_event_send_key_number(NULL, GREY | ALT_CODE, false);