From: Anthony Liguori <anthony@codemonkey.ws>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] vnc: add no-lock-key-sync option
Date: Wed, 17 Mar 2010 11:59:04 -0500 [thread overview]
Message-ID: <4BA10A58.3090707@codemonkey.ws> (raw)
In-Reply-To: <1268237522-10603-1-git-send-email-kraxel@redhat.com>
On 03/10/2010 10:12 AM, Gerd Hoffmann wrote:
> Add an option to disable the heuristics which try to keep
> capslock and numlock state for guest and host in sync.
>
> Signed-off-by: Gerd Hoffmann<kraxel@redhat.com>
>
Applied. Thanks.
Regards,
Anthony Liguori
> ---
> vnc.c | 16 ++++++++++++----
> vnc.h | 1 +
> 2 files changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/vnc.c b/vnc.c
> index 38690e2..3cfe2ca 100644
> --- a/vnc.c
> +++ b/vnc.c
> @@ -1111,7 +1111,8 @@ static void vnc_disconnect_finish(VncState *vs)
> }
>
> vnc_remove_timer(vs->vd);
> - qemu_remove_led_event_handler(vs->led);
> + if (vs->vd->lock_key_sync)
> + qemu_remove_led_event_handler(vs->led);
> qemu_free(vs);
> }
>
> @@ -1543,7 +1544,8 @@ static void do_key_event(VncState *vs, int down, int keycode, int sym)
> break;
> }
>
> - if (keycode_is_keypad(vs->vd->kbd_layout, keycode)) {
> + if (vs->vd->lock_key_sync&&
> + keycode_is_keypad(vs->vd->kbd_layout, keycode)) {
> /* If the numlock state needs to change then simulate an additional
> keypress before sending this one. This will happen if the user
> toggles numlock away from the VNC window.
> @@ -1561,7 +1563,8 @@ static void do_key_event(VncState *vs, int down, int keycode, int sym)
> }
> }
>
> - if ((sym>= 'A'&& sym<= 'Z') || (sym>= 'a'&& sym<= 'z')) {
> + if (vs->vd->lock_key_sync&&
> + ((sym>= 'A'&& sym<= 'Z') || (sym>= 'a'&& sym<= 'z'))) {
> /* If the capslock state needs to change then simulate an additional
> keypress before sending this one. This will happen if the user
> toggles capslock away from the VNC window.
> @@ -2424,7 +2427,8 @@ static void vnc_connect(VncDisplay *vd, int csock)
> vnc_flush(vs);
> vnc_read_when(vs, protocol_version, 12);
> reset_keys(vs);
> - vs->led = qemu_add_led_event_handler(kbd_leds, vs);
> + if (vs->vd->lock_key_sync)
> + vs->led = qemu_add_led_event_handler(kbd_leds, vs);
>
> vnc_init_timer(vd);
>
> @@ -2545,6 +2549,7 @@ int vnc_display_open(DisplayState *ds, const char *display)
> int saslErr;
> #endif
> int acl = 0;
> + int lock_key_sync = 1;
>
> if (!vnc_display)
> return -1;
> @@ -2562,6 +2567,8 @@ int vnc_display_open(DisplayState *ds, const char *display)
> password = 1; /* Require password auth */
> } else if (strncmp(options, "reverse", 7) == 0) {
> reverse = 1;
> + } else if (strncmp(options, "no-lock-key-sync", 9) == 0) {
> + lock_key_sync = 0;
> #ifdef CONFIG_VNC_SASL
> } else if (strncmp(options, "sasl", 4) == 0) {
> sasl = 1; /* Require SASL auth */
> @@ -2707,6 +2714,7 @@ int vnc_display_open(DisplayState *ds, const char *display)
> return -1;
> }
> #endif
> + vs->lock_key_sync = lock_key_sync;
>
> if (reverse) {
> /* connect to viewer */
> diff --git a/vnc.h b/vnc.h
> index 0fc89bd..a4211ae 100644
> --- a/vnc.h
> +++ b/vnc.h
> @@ -99,6 +99,7 @@ struct VncDisplay
> int lsock;
> DisplayState *ds;
> kbd_layout_t *kbd_layout;
> + int lock_key_sync;
>
> struct VncSurface guest; /* guest visible surface (aka ds->surface) */
> DisplaySurface *server; /* vnc server surface */
>
prev parent reply other threads:[~2010-03-17 16:59 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-10 16:12 [Qemu-devel] [PATCH] vnc: add no-lock-key-sync option Gerd Hoffmann
2010-03-17 16:59 ` Anthony Liguori [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BA10A58.3090707@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.