[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