[xserver PATCH 2/2] dix: Send KeyPress and KeyRelease events to the XACE_KEY_AVAIL hook

Peter Hutterer peter.hutterer at who-t.net
Tue Jun 9 21:14:51 PDT 2015


On Thu, Jun 04, 2015 at 01:24:53PM -0500, Andrew Eikum wrote:
> While it's documented in the XACE spec, the XACE_KEY_AVAIL hook is
> currently never actually invoked by the xserver.
> 
> This hook was added in 13c6713c82 (25 Aug 2006), but as the keyboard
> processing was moved into XKB, the hook was forgotten and silently
> dropped. The code calling this hook was removed by 7af53799c (4 Jan
> 2009), but it was probably already unused before that.
> 
> This patch re-adds support for this hook. The "count" hook parameter is
> unused.
> 
> Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
> ---
> 
> Pending approval, updates to the XACE spec documentation for the "count"
> parameter, and to warn about duplicate events, will follow.

thanks, both merged.

Cheers,
   Peter

> ---
>  Xi/exevents.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/Xi/exevents.c b/Xi/exevents.c
> index 1c586d0..cd33f94 100644
> --- a/Xi/exevents.c
> +++ b/Xi/exevents.c
> @@ -1730,6 +1730,18 @@ ProcessDeviceEvent(InternalEvent *ev, DeviceIntPtr device)
>          break;
>      }
>  
> +    /* send KeyPress and KeyRelease events to XACE plugins */
> +    if (XaceHookIsSet(XACE_KEY_AVAIL) &&
> +            (event->type == ET_KeyPress || event->type == ET_KeyRelease)) {
> +        xEvent *core;
> +        int count;
> +
> +        if (EventToCore(ev, &core, &count) == Success && count > 0) {
> +            XaceHook(XACE_KEY_AVAIL, core, device, 0);
> +            free(core);
> +        }
> +    }
> +
>      if (DeviceEventCallback && !syncEvents.playingEvents) {
>          DeviceEventInfoRec eventinfo;
>          SpritePtr pSprite = device->spriteInfo->sprite;
> -- 
> 2.4.2


More information about the xorg-devel mailing list