[PATCH evdev] Write a SYN_REPORT after the last LED

Daniel Stone daniel at fooishbar.org
Tue Aug 13 01:02:22 PDT 2013


Hi,

On 13 August 2013 06:29, Peter Hutterer <peter.hutterer at who-t.net> wrote:
> When writing LED values to the device, append a SYN_REPORT to the list to
> ensure other clients are updated immediately. Otherwise, the LED events
> will be queued and not sent to other clients until the next input event
> arrives.
>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

Reviewed-by: Daniel Stone <daniel at fooishbar.org>

>  src/evdev.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/src/evdev.c b/src/evdev.c
> index ba2a98c..456c7aa 100644
> --- a/src/evdev.c
> +++ b/src/evdev.c
> @@ -1157,7 +1157,7 @@ EvdevKbdCtrl(DeviceIntPtr device, KeybdCtrl *ctrl)
>      };
>
>      InputInfoPtr pInfo;
> -    struct input_event ev[ArrayLength(bits)];
> +    struct input_event ev[ArrayLength(bits) + 1];
>      int i;
>
>      memset(ev, 0, sizeof(ev));
> @@ -1169,6 +1169,10 @@ EvdevKbdCtrl(DeviceIntPtr device, KeybdCtrl *ctrl)
>          ev[i].value = (ctrl->leds & bits[i].xbit) > 0;
>      }
>
> +    ev[i].type = EV_SYN;
> +    ev[i].code = SYN_REPORT;
> +    ev[i].value = 0;
> +
>      write(pInfo->fd, ev, sizeof ev);
>  }
>
> --
> 1.8.2.1
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel


More information about the xorg-devel mailing list