vnc.c (5e8d6a12d643a38b82a0a713a77d1192117dbdca) vnc.c (abb4f2c9655503f14dc55064f29c4f59b07e96ff)
1/*
2 * QEMU VNC display driver
3 *
4 * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
5 * Copyright (C) 2006 Fabrice Bellard
6 * Copyright (C) 2009 Red Hat, Inc
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy

--- 1720 unchanged lines hidden (view full) ---

1729 qemu_input_event_send_key_delay(vs->vd->key_delay_ms);
1730 vs->modifiers_state[i] = 0;
1731 }
1732 }
1733}
1734
1735static void press_key(VncState *vs, int keysym)
1736{
1/*
2 * QEMU VNC display driver
3 *
4 * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
5 * Copyright (C) 2006 Fabrice Bellard
6 * Copyright (C) 2009 Red Hat, Inc
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy

--- 1720 unchanged lines hidden (view full) ---

1729 qemu_input_event_send_key_delay(vs->vd->key_delay_ms);
1730 vs->modifiers_state[i] = 0;
1731 }
1732 }
1733}
1734
1735static void press_key(VncState *vs, int keysym)
1736{
1737 int keycode = keysym2scancode(vs->vd->kbd_layout, keysym) & SCANCODE_KEYMASK;
1737 int keycode = keysym2scancode(vs->vd->kbd_layout, keysym,
1738 false, false, false) & SCANCODE_KEYMASK;
1738 qemu_input_event_send_key_number(vs->vd->dcl.con, keycode, true);
1739 qemu_input_event_send_key_delay(vs->vd->key_delay_ms);
1740 qemu_input_event_send_key_number(vs->vd->dcl.con, keycode, false);
1741 qemu_input_event_send_key_delay(vs->vd->key_delay_ms);
1742}
1743
1744static void vnc_led_state_change(VncState *vs)
1745{

--- 242 unchanged lines hidden (view full) ---

1988
1989static const char *code2name(int keycode)
1990{
1991 return QKeyCode_str(qemu_input_key_number_to_qcode(keycode));
1992}
1993
1994static void key_event(VncState *vs, int down, uint32_t sym)
1995{
1739 qemu_input_event_send_key_number(vs->vd->dcl.con, keycode, true);
1740 qemu_input_event_send_key_delay(vs->vd->key_delay_ms);
1741 qemu_input_event_send_key_number(vs->vd->dcl.con, keycode, false);
1742 qemu_input_event_send_key_delay(vs->vd->key_delay_ms);
1743}
1744
1745static void vnc_led_state_change(VncState *vs)
1746{

--- 242 unchanged lines hidden (view full) ---

1989
1990static const char *code2name(int keycode)
1991{
1992 return QKeyCode_str(qemu_input_key_number_to_qcode(keycode));
1993}
1994
1995static void key_event(VncState *vs, int down, uint32_t sym)
1996{
1997 bool shift = vs->modifiers_state[0x2a] || vs->modifiers_state[0x36];
1998 bool altgr = vs->modifiers_state[0xb8];
1999 bool ctrl = vs->modifiers_state[0x1d] || vs->modifiers_state[0x9d];
1996 int keycode;
1997 int lsym = sym;
1998
1999 if (lsym >= 'A' && lsym <= 'Z' && qemu_console_is_graphic(NULL)) {
2000 lsym = lsym - 'A' + 'a';
2001 }
2002
2000 int keycode;
2001 int lsym = sym;
2002
2003 if (lsym >= 'A' && lsym <= 'Z' && qemu_console_is_graphic(NULL)) {
2004 lsym = lsym - 'A' + 'a';
2005 }
2006
2003 keycode = keysym2scancode(vs->vd->kbd_layout, lsym & 0xFFFF) & SCANCODE_KEYMASK;
2007 keycode = keysym2scancode(vs->vd->kbd_layout, lsym & 0xFFFF,
2008 shift, altgr, ctrl) & SCANCODE_KEYMASK;
2004 trace_vnc_key_event_map(down, sym, keycode, code2name(keycode));
2005 do_key_event(vs, down, keycode, sym);
2006}
2007
2008static void ext_key_event(VncState *vs, int down,
2009 uint32_t sym, uint16_t keycode)
2010{
2011 /* if the user specifies a keyboard layout, always use it */

--- 2150 unchanged lines hidden ---
2009 trace_vnc_key_event_map(down, sym, keycode, code2name(keycode));
2010 do_key_event(vs, down, keycode, sym);
2011}
2012
2013static void ext_key_event(VncState *vs, int down,
2014 uint32_t sym, uint16_t keycode)
2015{
2016 /* if the user specifies a keyboard layout, always use it */

--- 2150 unchanged lines hidden ---