From 6f0a8e51f20073ea01ac5dae8e5c4d49076fc65e Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 15 Feb 2010 07:35:00 +0000 Subject: Git update 15/2/2010 --- xorg-server/Xi/exevents.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'xorg-server/Xi/exevents.c') diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c index 5f8e1fac5..7c105eb94 100644 --- a/xorg-server/Xi/exevents.c +++ b/xorg-server/Xi/exevents.c @@ -444,6 +444,26 @@ DeepCopyKeyboardClasses(DeviceIntPtr from, DeviceIntPtr to) to->key = NULL; } + /* If a SrvLedInfoPtr's flags are XkbSLI_IsDefault, the names and maps + * pointer point into the xkbInfo->desc struct. XkbCopySrvLedInfo + * didn't update the pointers so we need to do it manually here. + */ + if (to->kbdfeed) + { + KbdFeedbackPtr k; + + for (k = to->kbdfeed; k; k = k->next) + { + if (!k->xkb_sli) + continue; + if (k->xkb_sli->flags & XkbSLI_IsDefault) + { + k->xkb_sli->names = to->key->xkbInfo->desc->names->indicators; + k->xkb_sli->maps = to->key->xkbInfo->desc->indicators->maps; + } + } + } + /* We can't just copy over the focus class. When an app sets the focus, * it'll do so on the master device. Copying the SDs focus means losing * the focus. -- cgit v1.2.3