[PATCH 4/5] xkb: Repurpose XkbCopyDeviceKeymap to apply a given keymap to a device
Peter Hutterer
peter.hutterer at who-t.net
Tue Mar 11 23:43:16 PDT 2014
On Fri, Mar 07, 2014 at 02:32:27PM -0800, Kristian Høgsberg wrote:
> From: Rui Matos <tiagomatos at gmail.com>
>
> This will also make it useful for cases when we have a new keymap to
> apply to a device but don't have a source device.
>
> Reviewed-by: Kristian Høgsberg <krh at bitplanet.net>
merged, thanks.
Cheers,
Peter
> ---
> Xi/exevents.c | 2 +-
> include/xkbsrv.h | 4 ++--
> xkb/xkb.c | 2 +-
> xkb/xkbUtils.c | 14 +++++++-------
> 4 files changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/Xi/exevents.c b/Xi/exevents.c
> index e9f670e..9c207eb 100644
> --- a/Xi/exevents.c
> +++ b/Xi/exevents.c
> @@ -230,7 +230,7 @@ CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master)
>
> mk->sourceid = device->id;
>
> - if (!XkbCopyDeviceKeymap(master, device))
> + if (!XkbDeviceApplyKeymap(master, device->key->xkbInfo->desc))
> FatalError("Couldn't pivot keymap from device to core!\n");
> }
>
> diff --git a/include/xkbsrv.h b/include/xkbsrv.h
> index 253612e..5d8e409 100644
> --- a/include/xkbsrv.h
> +++ b/include/xkbsrv.h
> @@ -820,8 +820,8 @@ extern _X_EXPORT void XkbSendNewKeyboardNotify(DeviceIntPtr /* kbd */ ,
> extern Bool XkbCopyKeymap(XkbDescPtr /* dst */ ,
> XkbDescPtr /* src */ );
>
> -extern _X_EXPORT Bool XkbCopyDeviceKeymap(DeviceIntPtr /* dst */ ,
> - DeviceIntPtr /* src */ );
> +extern _X_EXPORT Bool XkbDeviceApplyKeymap(DeviceIntPtr /* dst */ ,
> + XkbDescPtr /* src */ );
>
> extern void XkbFilterEvents(ClientPtr /* pClient */ ,
> int /* nEvents */ ,
> diff --git a/xkb/xkb.c b/xkb/xkb.c
> index 31bb8d3..6196a17 100644
> --- a/xkb/xkb.c
> +++ b/xkb/xkb.c
> @@ -5991,7 +5991,7 @@ ProcXkbGetKbdByName(ClientPtr client)
> continue;
>
> if (tmpd != dev)
> - XkbCopyDeviceKeymap(tmpd, dev);
> + XkbDeviceApplyKeymap(tmpd, xkb);
>
> if (tmpd->kbdfeed && tmpd->kbdfeed->xkb_sli) {
> old_sli = tmpd->kbdfeed->xkb_sli;
> diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
> index 6c6af60..1f8a839 100644
> --- a/xkb/xkbUtils.c
> +++ b/xkb/xkbUtils.c
> @@ -1999,28 +1999,28 @@ XkbCopyKeymap(XkbDescPtr dst, XkbDescPtr src)
> }
>
> Bool
> -XkbCopyDeviceKeymap(DeviceIntPtr dst, DeviceIntPtr src)
> +XkbDeviceApplyKeymap(DeviceIntPtr dst, XkbDescPtr desc)
> {
> xkbNewKeyboardNotify nkn;
> Bool ret;
>
> - if (!dst->key || !src->key)
> + if (!dst->key || !desc)
> return FALSE;
>
> memset(&nkn, 0, sizeof(xkbNewKeyboardNotify));
> nkn.oldMinKeyCode = dst->key->xkbInfo->desc->min_key_code;
> nkn.oldMaxKeyCode = dst->key->xkbInfo->desc->max_key_code;
> nkn.deviceID = dst->id;
> - nkn.oldDeviceID = dst->id; /* maybe src->id? */
> - nkn.minKeyCode = src->key->xkbInfo->desc->min_key_code;
> - nkn.maxKeyCode = src->key->xkbInfo->desc->max_key_code;
> + nkn.oldDeviceID = dst->id;
> + nkn.minKeyCode = desc->min_key_code;
> + nkn.maxKeyCode = desc->max_key_code;
> nkn.requestMajor = XkbReqCode;
> nkn.requestMinor = X_kbSetMap; /* Near enough's good enough. */
> nkn.changed = XkbNKN_KeycodesMask;
> - if (src->key->xkbInfo->desc->geom)
> + if (desc->geom)
> nkn.changed |= XkbNKN_GeometryMask;
>
> - ret = XkbCopyKeymap(dst->key->xkbInfo->desc, src->key->xkbInfo->desc);
> + ret = XkbCopyKeymap(dst->key->xkbInfo->desc, desc);
> if (ret)
> XkbSendNewKeyboardNotify(dst, &nkn);
>
> --
> 1.9.0
>
> _______________________________________________
> 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